CPU、内存、硬盘、指令以及他们之间的关系

最近读完《程序是怎样跑起来的》以及《深入理解计算机系统》的3、6、9章节后对计算机的组成有了更深入细致的了解,现总结一下对CPU、内存、硬盘、指令的理解及他们之间的关系。

1、CPU

CPU是英文Central Processing Unit(中央处理器)的缩写,相当于计算机的大脑,它是解释和运行程序的。CPU的内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。 
● 寄存器可用来暂存指令、数据等处理对象。 
● 控制器负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机。 
● 运算器负责运算从内存读入寄存器的数据。 
● 时钟负责发出CPU开始计时的时钟信号。时钟信号英文叫做clock puzzle。Pentium 2GHz表示时钟信号的频率为2GHz(1GHz = 10亿次/秒)。也就是说,时钟信号的频率越高,CPU的运行速度越快。 

到目前为止,我们看到的计算机系统只限于机器语言程序级。我们知道处理器必须执行一系列指令,每条指令执行某个简单操作。指令被编码为由一个或多个字节序列组成的二进制格式。一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(Instruction-Set Architecture,ISA)。一个程序编译成在一种机器上运行,就不能再另一种机器上运行。

2 内存

通常所说的内存指的是计算机的主存储器(main memory),简称主存。主存通过控制芯片等与CPU相连,主要负责存储指令和数据。主存由可读写的元素构成,每个字节(1字节 = 8位)都带有一个地址编号。CPU可以通过地址读取主存中的指令和数据,当然也可以写入数据。但是,主存中存储的指令和数据会随着计算机的关机而自动清除。 
《深入理解计算机系统》第6章介绍了存储器层次结构,从中可以了解到内存内部也是有层次结构的,即:L1高速缓存、L2高速缓存、L3高速缓存以及主存。存储器层次结构的中心思想是,每一层都缓存来自较低一层的数据对象。例如主存作为本地磁盘上数据的缓存,L1作为L2的数据缓存,依次类推,直到最小的缓存——CPU寄存器集合。

3硬盘

磁盘是广为应用的保存大量数据的存储设备,存储数据的数量级可以达到几百到几千千兆字节,而内存的容量却只能有几百或几千兆字节。不过从磁盘上读信息的时间为毫秒级,从内存读信息比磁盘快10万倍或100万倍。 
磁盘是由盘片(platter)构成的。每个盘片有两面,其表面覆盖着磁性记录材料。盘片中英有一个可以旋转的主轴,它使得盘片以固定的旋转速率旋转,通常是5400~15000转每分钟。磁盘通常包含一个或多个这样的盘片,并封装在一个密封的容器内。 
如下图展示了一个典型的磁盘表面的结构。每个表面是由一组称为磁道的同心圆组成的。每个磁道被划分为一组扇区。每个扇区包含相等数量的数据位(通常是512字节)。 

磁盘用读/写头来读写存储在磁性表面的位,而读写头连接到一个转动臂一端,如下图a所示。通过沿着半径轴前后移动这个转动臂,驱动器可以将读/写头定位在盘面上的任何磁道上。这样的机械运动成为寻道。 

4、指令

指令是计算机CPU真正运行的数据,也就是计算机执行的机器代码,用字节序列编码低级的操作。 
指令是由指令集架构定义的单个的CPU操作。在更广泛的意义上,指令可以是任何可执行程序元素的表属,例如字节码。指令包括一个操作码——它指定了要进行什么样的操作。

它们之间的关系如下图所示:

了解了它们的概念后 
为什么CPU要从内存中取数据而不直接从硬盘取数据呢?因为CPU的运算速度太快,而硬盘是通过机械的方式读取数据因此速度很慢。如果直接从硬盘读取数据CPU的工作效率就很低。为了提高CPU的工作效率,就设计出了存储器的层次结构,在CPU处理程序的过程中,可以将下一步要执行的指令预加载并缓存。 
当计算机运行程序时(如下图所示),首先,会通过IO总线将程序指令和数据加载到内存中,其次,CPU通过总线从内存中获取指令和数据并将其存放在CPU内部的寄存器中。最后,在CPU内部根据指令在运算器中对数据进行操作。 

文章转载自:http://blog.csdn.net/renirvana/article/details/57412373

 
 

(转载)CPU、内存、硬盘、指令以及他们之间的关系的更多相关文章

  1. Windows 性能监视器的基本指标(CPU,内存,硬盘参数)

    转载:http://kms.lenovots.com/kb/article.php?id=7045 Windows 性能监视器的基本指标(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的 ...

  2. Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数)

    [转]Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题.我是在运维过程中要用到的.因此,今天给出Wind ...

  3. VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试

    现在便宜的VPS主机越来越多了,一些美国的VPS主机甚至给出1美元一月的VPS,堪比虚拟主机还要便宜,巨大的价格优势吸引不少人购买和使用,而近些年来国内的主机商也开始意识到便宜的VPS对草根站长的诱惑 ...

  4. 一个统计 CPU 内存 硬盘 使用率的shell脚本

    一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 #!/bin/bash #This script is use for describle CPU Hard Memery Uti ...

  5. centOS7下实践查询版本/CPU/内存/硬盘容量等硬件信息

    1.系统 1.1版本 uname -a 能确认是64位还是32位,其它的信息不多 [root@localhost ~]# uname -a Linux localhost.localdomain 3. ...

  6. 介绍CPU,内存,硬盘,指令以及他们之间的关系

    CPU:CPU,又称CPU芯片,中央处理器.是计算机上最重要的集成电路,位于计算机的主板上面,其主要任务是从主存上面提取指令和对指令进行执行,CPU包括运算逻辑部件.寄存器部件,运算器和控制部件等.C ...

  7. linux 查看cpu 内存 硬盘 文件夹大小

    文件夹大小 显示cpu使用率 top 1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | w ...

  8. DSAPI 获取实时统计信息CPU/内存/硬盘/网络

    有时,我们需要获取当前计算机中CPU.内存.硬盘.网络等实时信息,如下图:\ 要实现上述几项信息的获取,通常需要使用Timer控件来间隔获取,以便刷新最新的数据. 本示例中,放一个Timer控件,放一 ...

  9. 查看CPU 内存 硬盘 网络 查看进程使用的文件 uptime top ps -aux vmstat iostat iotop nload iptraf nethogs

    #安装命令 yum install  sysstat #包含 iostat vmstat yum install iotop yum install  nload yum install iptraf ...

随机推荐

  1. ASP.NET Core使用EntityFrameworkCore CodeFrist

    1,安装环境: 如果是VS2015,确保已经升级至 update3或以上 .net core sdk (https://www.microsoft.com/net/download/core) vs2 ...

  2. spring自带测试配置

    spring自带的测试注解 @ContextConfiguration(locations="classpath:applicationContext.xml")@RunWith( ...

  3. lnmp 搭建 svn服务

    服务器环境 lnmp  环境搭建地址:https://lnmp.org/install.html 注意事项  服务器必须开放3690端口 安装过程 1.yum install subversion(安 ...

  4. python语法之函数1

    函数 计算机中的函数和数学中的函数不是一回事,而是一个subroutine .子程序.procedures.过程. 作用: 1.减少重复代码: 2.方便修改,更易扩展: 3.保持代码的一致性. 最简单 ...

  5. 81、iOS本地推送与远程推送详解

    一.简介 分为本地推送和远程推送2种.可以在应用没打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户石否同意,如果同意则正常使用:如果用户不同意则下次打开程序 ...

  6. 使用mobx项目开发总结(不再更新)

      mobx的优点 1,使用@observer的组件真正实现按需更新,只有监听的数据发生变化,它才会re-render,尽管父组件发生更新,但是子组件只要有@observer,则不会触发更新,类似于实 ...

  7. Codeforces 863 简要题解

    文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 简要题解?因为最后一题太毒不想写了所以其实是部分题解... A题 传送门 题意简述:给你一个数,问你能不能通过加前导000使其成为一个回文数 ...

  8. vscode 添加 includePath

    使用vscode打开C项目时,vscode无法找到头文件路径,提示:configure includePath for better intellisense results 解决: 编辑~/.vsc ...

  9. UEditor可以如何直接复制word的图文内容到编辑器中?

    下载并打开工程: 文档的上传 运行: 复制随便一篇文档,粘贴进去. 通过粘贴后,文档以及图片被粘贴进来了,看看html代码:   图片全部使用img标签统一.传输进度条的效果也不错. 文档图片被放置在 ...

  10. 2019浙大校赛--A--Thanks, TuSimple!(简单模拟题)

    这题前三段都是一堆吹爆赞助商的屁话,正式题目在图片下边,一个简单模拟题. 题目大意: 有n个男生,m个女生在进行舞会,其中一部分男生祥和比自己矮的女生跳舞,一部分男生想和比自己高的女生跳舞,一部分女生 ...