(转载)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 ...
随机推荐
- String StringBuilder 包装类
1. String 概述 程序中直接写上双引号的字符串就在字符串常量池中,new的不在池当中 java6之前常量池在方法区,java7以后将字符串常量池放在堆中 因为字符串是对象,应该在堆中 相同的字 ...
- oracle中的日期函数的使用
TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 ...
- TJOI2010中位数
中位数 上面是题目链接. 这一题比较水. 思路非常显然. 用mid查询时,只要返回中间值就行了. 主要就是add操作. 我们肯定不能插在末尾,然后用系统快排,这样只有30分. 那么正确的操作应该是二分 ...
- JavaScript变量声明var,let.const
var声明变量的作用域限制在其声明位置的上下文中 var x = 0; // x是全局变量,并且赋值为0. console.log(typeof z); // undefined,因为z还不存在. f ...
- MySQL数据库(一)
一:MySQL的简单介绍 MySQL属于关系型数据库,数据是以行和列的形式去存储(表),表中的每一行叫一条记录,表中的每一列叫一个字段,表和表之间的逻辑关联叫关系. 二:MySQL的基本操作 (一)M ...
- 解决Eclipse中无法直接使用Base64Encoder的问题(转载)
资源出处:https://blog.csdn.net/u011514810/article/details/72725398 Base64的加密解密都是使用sun.misc包下的BASE64Encod ...
- winform窗体退出
winform主窗体退出需要在FormClosing事件里写入程序退出代码,防止程序明明退出了,而程序进程还没杀掉: private void FormMain_FormClosing(object ...
- karaf 控制台 常用linux指令(2)
11,查看onos风格注解实例列表 -bash代码 scr:list ACTIVE代表实例已生成,REGISTERED代表实例未注入生成 12,查看组件列表,查看组件信息,查看组件提供的服务 -bas ...
- SecureCRT使用帮助
文件上传下载 1. 安装 yum -y install lrzsz (参数-y中"y"的意思是:当安装过程提示选择全部为"yes") 2.上传 第一种方式:rz ...
- Python序列结构--集合
集合:元素之间不允许重复 集合属于Python无序可变序列,元素之间不允许重复 集合对象的创建与删除 直接将值赋值给变量即可创建一个集合 >>> a = {3,5}>>& ...