(转载)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 ...
随机推荐
- pycharm设置文件编码
原文链接
- Ubuntu学习之路
一. Ubuntu简介 Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的“ubuntu”一词,意思是“人性”.“我的存在是因为大 ...
- 微信小程序的一些小知识点
1. <text>hello</text> 只有包含在<text>标签内的文字,在手机上才可以长按选中. 2. 单位px:自适应rpx = 1:1 物理像素除以2得 ...
- 第三周助教工作总结——NWNU李泓毅
本周点评作业数量:第一部分是第一篇博客的剩余部分,给出了共计22份作业的具体分数.第二部分是第二篇博客的已提交部分共计19份作业. 这是我的博客地址:https://www.cnblogs.com/N ...
- 读《赋能》有感zz
听樊登18年春节后第一本新书<赋能>,学到了几个新的管理词语,深井病.还原论.乌卡时代: 下面谈谈自己的学习收获. 深井病就是随着组织发展的壮大,当然是传统的企业,其部门或个人都会变得越来 ...
- 2019.03.25 bzoj4539: [Hnoi2016]树(主席树+倍增)
传送门 题意:给一棵大树,令一棵模板树与这棵树相同,然后进行mmm次操作,每次选择模板树中的一个节点aaa和大树中一个节点bbb,把aaa这棵子树接在bbb上面,节点编号顺序跟aaa中的编号顺序相同. ...
- Web缓存和静态化
Web缓存和静态化 目录 Web缓存基础... 1 什么是Web缓存... 1 Web缓存的类型... 1 为何要使用Web缓存... 1 重验证... 1 更新... 2 浏览器缓存... 2 工作 ...
- nginx的锁
一.原理 nginx的锁是基于共享内存实现的,这点跟redis中利用一个存储(也就是一个键值对)来实现锁的原理是一致的,每一项操作通过检查锁对象的lock域是否为0,来判断能否获取锁并尝试获取锁. 二 ...
- h5上传视频文件
从一开始我就掉坑里了,<input type="file" style="display: block;" id="img-upload&quo ...
- 0723掰棒子记录--vue的数据渲染
问题1:想要在一个panel标签中添加一个图片,panel中有一个datalist属性.如何设计标签可以插入想要的图片. template: <panel :list="dataLis ...