(转载)CPU、内存、硬盘、指令以及他们之间的关系
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、内存、硬盘、指令以及他们之间的关系的更多相关文章
- Windows 性能监视器的基本指标(CPU,内存,硬盘参数)
转载:http://kms.lenovots.com/kb/article.php?id=7045 Windows 性能监视器的基本指标(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的 ...
- Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数)
[转]Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题.我是在运维过程中要用到的.因此,今天给出Wind ...
- VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试
现在便宜的VPS主机越来越多了,一些美国的VPS主机甚至给出1美元一月的VPS,堪比虚拟主机还要便宜,巨大的价格优势吸引不少人购买和使用,而近些年来国内的主机商也开始意识到便宜的VPS对草根站长的诱惑 ...
- 一个统计 CPU 内存 硬盘 使用率的shell脚本
一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 #!/bin/bash #This script is use for describle CPU Hard Memery Uti ...
- centOS7下实践查询版本/CPU/内存/硬盘容量等硬件信息
1.系统 1.1版本 uname -a 能确认是64位还是32位,其它的信息不多 [root@localhost ~]# uname -a Linux localhost.localdomain 3. ...
- 介绍CPU,内存,硬盘,指令以及他们之间的关系
CPU:CPU,又称CPU芯片,中央处理器.是计算机上最重要的集成电路,位于计算机的主板上面,其主要任务是从主存上面提取指令和对指令进行执行,CPU包括运算逻辑部件.寄存器部件,运算器和控制部件等.C ...
- linux 查看cpu 内存 硬盘 文件夹大小
文件夹大小 显示cpu使用率 top 1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | w ...
- DSAPI 获取实时统计信息CPU/内存/硬盘/网络
有时,我们需要获取当前计算机中CPU.内存.硬盘.网络等实时信息,如下图:\ 要实现上述几项信息的获取,通常需要使用Timer控件来间隔获取,以便刷新最新的数据. 本示例中,放一个Timer控件,放一 ...
- 查看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 ...
随机推荐
- Linux下mysql定时自动备份并FTP到远程脚本
1.添加backupmysqleveryday.sh(vi /data/shell/backupmysqleveryday.sh) #!/bin/sh #this shell is user for ...
- 初识大数据(二. Hadoop是什么)
hadoop是一个由Apache基金会所发布的用于大规模集群上的分布式系统并行编程基础框架.目前已经是大数据领域最流行的开发架构.并且已经从HDFS.MapReduce.Hbase三大核心组件成长为一 ...
- 20155326《网路对抗》Exp8 WEB基础实践
20155326<网路对抗>Exp8 WEB基础实践 实践内容 (1).Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写 ...
- 第十一章 DNS服务器管理与配置
1.如何在WindowsServer 2008 系统中使用IIS进行多站点配置与管理? 1)运行“开始”–“程序”–“管理工具”–“服务器管理器”打开: 选择“WEB服务器(IIS)”,注意:首次安装 ...
- HDU5813 Elegant Construction
Elegant Construction Time Li ...
- 转 Tomcat+redis+nginx配置
为客户开发的一个绩效系统,采用了java web的开发方式,使用了一些spring mvc, mybatis之类的框架.相比于oracle ebs的二次开发,这种开发更加灵活,虽然和ebs集成的时候遇 ...
- Entity Framework 自动生成代码 如何用继承
分部类 用接口
- 使用bat脚本部署hexo到coding和github
因项目的不同适当的改造吧,本文以hexo为例. 拉取coding.net的代码和github的代码到本地 确保代码能够正常的运行,commit,push 在项目的目录外新建一个push.bat文件 快 ...
- Linux基本命令-ls
ls 作用:显示目标列表,在Linux中是使用率较高的命令.ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件. 参数: -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影 ...
- 实用:Git 中的一些常见错误
无论是数据科学家.算法工程师还是普通开发人员,在每个团队协作开发任务中,Git 都是必不可少的版本控制工具,因此掌握它的基本操作十分有必要.但即便是教程满天飞的今天,开发人员在使用 Git 时也还是会 ...