第一章 计算机工作原理

简介:

1.1 现代计算机五大部件

  运算器

  控制器

  存储器

  输入设备

  输出设备

1.1.1 计算机各部件的功用

  运算器是用来做计算的,只能做二进制计算,做简单的算术运算和逻辑运算。如加、减、乘、除、取模等等。运算器的核心就是一个加法器。

  控制器是用来控制计算机各部件之间的协调的。

  比如运算器要想做运算,必须先把数据从存储器中取出来,交给运算器计算以后再在存储器中找一块空闲的存储单元把计算后的结果给存储起来。而这仅仅是控制器的工作之一。

  现代计算机已经将运算器和控制器合二为一,就是我们所熟知的中央处理器(CPU)。

  人的大脑有存储记忆的能力,但是计算机不行,计算机要想存储记忆则需要一个部件来实现。运算器是一个部件、控制器是一个部件、存储器也是一个部件,而部件与部件之间的数据交换则需要通过线路来实现,也就是接下来要说的总线(bus)。

  现代计算器有三种总线,分别是控制总线、数据总线、地址总线。

  地址总线的功能是实现寻址。那么什么是寻址呢?

  数据是存储在存储器中的,而运算器要想运算则必须通过控制器将数据从存储器上调出来再进行运算,运算完以后还要把结果给存储到存储器中。那么控制器怎么知道要运算的数据是存储在存储器的哪个存储单元中呢?我们先来说说存储器。

  存储器(Memory)是一种编址存储设备。

wKiom1i1HLHha3KlAAAeIcQNdkE924.jpg

  如图所示,存储器中每8位(8bit=1Byte)为一个存储单元,每个存储单元(8bit)可以存储8bit数据。存储器就是由众多的存储单元组成的一个整体的存储空间。

  我们把数据存储在存储器中,我们需要的时候要在存储器中找到它,而这个找到存储器中数据的过程就是寻址。

  存储器中的每一个存储单元都是有地址的,那么这个地址能有多少种变化形式呢?

  计算机只能识别二进制,所以存储器是通过二进制进行编址的。如果我们要使用4G内存空间,那么就需要2的32次方bit来进行编址。

  之所以32位操作系统只支持4G内存空间就是因为其只有32根地址总线,每根总线只能表示0和1两种数字。所以我们要表示4G种变化,就需要32个二进制数字排在一块,一直从00000000000000000000000000000000到11111111111111111111111111111111,这中间有4294967296种变化。假如你的计算机是64位的,那么就有2的64次方种变化。

1.1.2 I/O设备

  I/O设备已经不算计算机的核心部件了,I/O存在的目的是为了与外部交互。

  假如CPU和内存是一个自循环系统,不需要与外部交互,其所有的工作都能在其内部完成,那么就不需要I/O设备了。但这是不可能的。

  由于内存是一种易失性存储器,断电后其所有内容会丢失。另外计算机还需要跟其他计算机进行交互,这些都需要用到I/O设备。

  I/O设备说白了就是一个与外部部件(如磁盘、网卡、键盘、鼠标等)进行交互的组件。

  I/O设备通常是最慢的设备。

1.1.3 主板

  计算机内各部件需要通过线缆给连接起来,如果弄一大堆线缆就非常麻烦了,不好整理,于是就有了主板(motherboard)。主板就负责把计算机内各部件给连接起来。

1.1.4 传统硬盘

  传统硬盘是一种固定角度的设备。硬盘是有盘片的,盘片上面有磁条,磁条悬浮在盘片上面,大约5微米的间隙。通过磁盘碰触盘片的方式读写数据。

  硬盘从外向内分了很多磁道,一个盘片2面都能读写,不同盘面上面,相同磁道的编号我们称之为柱面。分区就是按柱面由内向外进行的。


1.2 缓存

  如果存储器与运算器之间的操作一个快一个慢的话,最终速度取决于慢的操作。那么为什么会有快慢的概念呢?

  很多人可能知道,CPU是有时钟频率的,时钟频率是指其在单位时间内电频可以变化的次数。4GHz指的是在1秒内能够变化40多亿次,这也就意味着1秒内可以完成40多亿bit数据的传输。

  众所周知,现代的CPU工作速率很高,动辄3GHz是很常见的。但是内存通常是1500MHz、1866MHz。其速率比起CPU来说要慢很多。而数据处理的速度是以慢的为准,假如内存处理的速度过于缓慢的话就很影响计算机处理的效率,为了解决这个问题,缓存应运而生。

  CPU有一级缓存、二级缓存、三级缓存等,这些缓存的工作方式很独特,其能以几乎接近CPU工作频率的速度来工作,但是其造价非常高,所以缓存空间一般都很小。

  缓存能够极大的加速CPU与内存的交互,因为计算机程序的运行具有局部性的特性。通常数据有两种局部性,分别是空间局部性和时间局部性。

1.2.1 数据的局部性

  如果你访问一个数据,离这个数据很近的其他数据也可能很快就会被访问到,所以加载数据的时候就把其后面的数据提前加载好,这就是预取(read ahead)。先把其加载到缓存中去,等用到的时候由CPU直接去缓存中取。如此就不必等CPU去内存中取,速度就加快了很多。此为数据的空间局部性。

  刚刚访问过的数据,过一会可能还会被访问到,把多次需要用到的数据放到缓存中,等需要的时候就不必去内存中取。此为数据的时间局部性。


1.3 CPU工作原理

  CPU被逻辑切割成N个时间片,让每个程序在CPU中执行一段时间,假定是5毫秒,不管程序是否执行完毕,均使其退出并记录执行状态。

  假如有2个程序需要同时运行,第1个程序执行5毫秒以后,由CPU中止其运行,并记录其运行到哪里了,然后将第2个程序放到CPU中运行,运行5毫秒以后,由CPU中止其运行,并记录其运行到哪里了,然后将第1个程序调到CPU中,从上次运行结束的位置继续执行该程序,以此类推。通过这种分时机制实现多任务同时运行的目的。


  前面已经说过了,CPU是由运算器和控制器组成的,且只能运行二进制指令。那么CPU能够进行什么运算取决于什么呢?CPU为什么能够执行运算?

wKioL1i1HYjTHzyGAACbCTLeJhU368.jpg

  如上图所示,CPU有很多针脚,每根针脚对应不同的功能。CPU的运算其实就是由控制器到存储器中取出数据和运算符,并在CPU中找到该运算符所对应的针脚,调用该针脚的功能的过程。

  每个CPU的功能都通过CPU的指令来实现,多个CPU指令联合起来我们称之为CPU指令集。同一颗CPU当中,为了完成不同的运算功能,很多时候可能由多个不同的芯片组成。比如完成多媒体处理和完成整数运算那是两回事,完全是由2个不同的芯片完成的。同一个CPU内部,可能有多种功能上各自独立的芯片,而且每一组芯片提供的运算能力和指令都不一样。所以,同一个CPU内部所能够提供的指令集有很多。不同厂商的CPU指令集的功能可能各不相同。

  cpu的指令集中的指令分为两种:

    a) 特权指令(拥有管理功能,只能被操作系统调用)

    b) 普通指令

  一般来说,程序员写的程序只能调用普通指令,只有操作系统才能够调用特权指令。

wKiom1i1PO3wMN9lAAAnvrn2LCw574.jpg

  如上图所示,CPU生产厂商把整个CPU所能够实现的指令集分成了4个环,环0所包含的指令都是特权指令,只有操作系统才有权限去运行。所有的普通指令都在环3上,出于历史原因,环1和环2没有使用。

  操作系统运行时通常运行环0和环3中的指令,而应用程序只能运行环3上的指令。但是有些应用程序可能要做管理操作,比如要在系统中创建一个目录(mkdir命令),这个目录要存储在硬盘上,而操作硬盘写数据就属于特权指令,只有操作系统才有权限执行。

  任何情况下,一个普通程序要想完成一个特权操作,是没办法直接进行的,它必须向内核申请。


1.4 内存工作原理

  内存的存储空间是固定的。如果有10个程序需要运行,第一个程序占据了一部分内存,第二个程序有可能把第一个程序的内存给覆盖了,这就是内存溢出。内存溢出是不被允许的,所以我们必须把有限的内存给逻辑切割以后分配给多个程序使用。

  现代计算机中的内存存储空间本来就是虚拟的,给每个程序分配的空间都是假的。在程序看来自己是唯一的,程序看不到其他的程序。假定其运行在一根512M的内存上,但程序却可以认为其有4G内存空间可用。但事实上其所能用的空间可能仅仅就是几M,多则几十M。这种就称之为线性地址空间。










本文转自 忘情OK  51CTO博客,原文链接:http://blog.51cto.com/itchentao/1902012,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
存储
计算机的工作原理
计算机的工作原理可以分为以下几个主要步骤: 1. 输入:用户通过输入设备(如键盘、鼠标)将数据输入到计算机系统中。 2. 处理:计算机系统接收到输入的数据后,使用中央处理器(CPU)进行处理。CPU包括算术逻辑单元(ALU)和控制单元(CU),ALU执行算术和逻辑运算,而CU控制和协调整个计算机系统的操作。 3. 存储:计算机系统使用内存存储数据和指令。内存分为主存储器(RAM)和辅助存储器(如硬盘、固态硬盘)。RAM用于临时存储正在处理的数据和程序,而辅助存储器用于永久存储数据和程序。 4. 输出:计算机系统将处理后的数据通过输出设备(如显示器、打印机)展示给用户。 5. 控制:计算机系统使
65 0
|
6月前
|
存储 算法 数据处理
计算机的基本组成及工作原理
一、计算机的基本组成及工作原理 计算机的基本组成包括以下几个部分: 1. 中央处理器(CPU):CPU是计算机的核心部件,负责执行指令和进行数据处理。它包括算术逻辑单元(ALU)、控制单元(CU)和寄存器等组件。 2. 存储器:存储器用于存储计算机的指令和数据。常见的存储器包括随机存取存储器(RAM)和只读存储器(ROM)。 3. 输入设备:输入设备用于将外部数据输入到计算机中,如键盘、鼠标、扫描仪等。 4. 输出设备:输出设备用于将计算机处理的结果输出到外部,如显示器、打印机、音频设备等。 5. 总线:总线是计算机内部各个部件之间传输数据和控制信号的通道。它包括数据总线、地址总线和控制总线。
334 0
|
3月前
|
算法 前端开发 网络协议
【计算机网络第一章知识点总结】 - - - 我为何钟情于计算机:一段有趣的选择之旅
【计算机网络第一章知识点总结】 - - - 我为何钟情于计算机:一段有趣的选择之旅
27 0
|
9月前
|
网络架构 数据格式
计算机网络原理的基本概念
计算机网络原理的基本概念
|
4月前
|
存储 Java 程序员
计算机组成原理概述篇
计算机发展简史 计算机发展的四个阶段 image-20220107145623934 第一个阶段:电子管计算机 ENIAC 集成度小,空间占用大 功耗高,运行速度慢 操作复杂,更换程序需要接线;
18 0
|
5月前
|
安全
计算机的组成及工作原理
计算机的组成及工作原理。
22 1
|
7月前
|
数据处理
计算机的基础知识1
计算机的基础知识1
25 0
|
12月前
|
人工智能 编解码 网络协议
计算机实验基础要点
第一台计算机ENIAC 1946年 计算机发展:电子管计算机,晶体管计算机,集成电路计算机,大规模集成电路计算机 计算机分类:超级计算机,大型计算机,小型计算机,微型计算机,嵌入式计算机, 计算机特点:速度快,精度高,存储容量大,具有逻辑判断能力,自动化程度高,可与通信网络互联 计算机应用:1科学计算2数据处理3辅助技术4过程控制5人工智能 计算机系统组成:1硬件2指令3程序4软件
66 0
|
芯片 异构计算
计算机组成原理实验第一章
计算机组成原理实验第一章
102 0
|
缓存 Oracle IDE
计算机入门基础知识大全
计算机入门基础知识大全
193 0

热门文章

最新文章