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. Linux 网络编程 入门-常用函数

    网络连接无外乎服务器和客户端两方面的编程. 对于服务器大致的流程是:1---调用socket函数创建套接字 2---调用bind函数分配IP地址和端口号 3---调用listsen函数将套接字转为可接 ...

  2. mysql & sqlserver语法差异

    isnull   vs   ifnull dateadd  vs date_add limit vs  top

  3. nginx常用服务配置

    一.nginx.conf的配置方式,创建新vhost user nginx; worker_processes ; worker_cpu_affinity ; worker_rlimit_nofile ...

  4. # 2019-2020-4 《Java 程序设计》结对项目总结

    2019-2020-4 <Java 程序设计>结对项目阶段总结---<四则运算--整数> 一.需求分析 实现一个命令行程序 要求: 自动生成小学四则运算题目(加,减,乘,除): ...

  5. xpath json操作符说明

    XPath JSONPath Description / $ the root object/element . @ the current object/element / . or [] chil ...

  6. (PMP)第4章-----项目整合管理

    4.1 制定项目章程 输入 工具与技术 输出 1.商业文件 (商业论证,效益管理计划) 1.专家判断 1.项目章程 2.协议 2.数据收集 (头脑风暴,焦点小组,访谈) 2.假设日志 3.事业环境因素 ...

  7. im4java+GraphicsMagick 的问题

    1.convert.exe: non-conforming drawing primitive definition `' @ error/draw.c/RenderMVGContent/3901. ...

  8. hdu 4370

    这个题说实话我没看出来,我看的别人的博客 https://blog.csdn.net/u013761036/article/details/39377499 这个人讲的很清楚,可以直接去看他的 题目给 ...

  9. react native (2) 嵌入h5页面 设置顶部导航

    嵌入h5页面 1.新建好页面 2. import { WebView } from 'react-native'; 3.<WebView source={{ uri: '要引入的页面路径' }} ...

  10. Reader和Writer