计算机原理概述

目录

计算机的发展史(稍作了解即可)

从硬件方面来了解计算机

程序的存储

广义数据在内存的存储问题

CPU的基本工作原理


让我们来从以下两个方面来了解计算机:

1.从硬件角度学习计算机的基本原理————CPU的基本工作原理

2.从操作系统软件角度,学习程序是如何工作起来的的————进程管理

计算机的发展史(稍作了解即可)

第一阶段:一个国家组织共同使用一台计算机

第二阶段:一个商业组织共同使用一台或多台计算机

第三阶段:PC(Personal Computer)以家庭为单位开始使用计算机了

第四阶段:以个人为单位开始使用计算机(手机)

未来:        一个会有很多台计算机

从硬件方面来了解计算机

冯诺依曼体系:指令只是一种特殊的数据

处理器(cpu)= 运算器 + 控制器

存储器(Memory) = 内存

外部数据(物理数据)进入到存储器主要通过输入设备(Input Device)

存储器内的数据传输到外部世界主要是通过输出设备(Output Device)

运算器 + 控制器 + 存储器 + 输入设备 + 输出设备

硬件体系下 CPU + 内存 + I/O 内部的数据交换通过 总线(BUS)

程序的存储

我们都知道 程序 = 指令 + 数据 那么指令和数据又是怎样在内存中进行存储的呢?

1.程序中的指令是一组预规定的动作,主要表现为一种特殊的数据需要我们存储在内存中,但是我     们的计算机只能存储操作码(Opcode)也就是以二进制的形式存数,所以我们要给CPU支持的所有动作都编码一个唯一的 数     字,然后利用编码的规定就可以成功的将指令存入我们的计算机了。

2.数据只需要转为二进制再存入内存即可

广义数据在内存的存储问题

我们的数据主要分为数和非数的数据

我们先来了解一下非数数据是怎样存储的,非数数据包括字符串,声音,图片……我们要在计算机中进行"非数数据"的存储就需要把"非数数据"通过编码表转换成数据类型的数据

举个栗子:

字符串 ===> 字符     通过Unicode 编码

                                  'A'     003

                                  '我'    1003098

图片                           通过RGB编码 

                                  红绿蓝    0~255/0~255/0~255    

我们再来了解一下数类型的数据在内存中的表示方法,数类型主要就是整数和小数

有限范围内整数的表示:正码,反码,补码  ===> 整型数

有限范围内的小数表示:IE标准 ===> 浮点数

接下来我们局限在整型中,但表示的数据可能是 整数,指令,字符,图片,声音……

CPU的基本工作原理

计算机的主要组成

1.cpu——又称为逻辑算数运算器可以处理(与,或,非,加,减,乘,除,取余)

2.控制器

3.寄存器——临时存储数据的存储单元(每个都只能保存一个整型数)现代的高级CPU为了提升性能,一般都带有缓存(CPU内缓存)

CPU的基本组成

首先我们来组建一下 与门(and gate),或门(or gate),非门(not gate),异或门(xor gate)

那计算机中的核心部件算数逻辑单元(ALU)是如何工作的呢?

算数逻辑单元主要处理两大方面的运算

算数方面: 加法,减法,乘法,除法,取余

逻辑方面: 与,或,非。

半加器

全加器

有全加器和半加器我们就可以组建一个八位数的加法器

 

 ALU运算器的内部结构

三个输入:

A:要参与计算的第一个数

B:要参与计算的第二个数

C:本次的运算是什么opcode

输出:

正常输出以及三个标志位(溢出,为0,负数)

CPU是计算机的核心  ===>  ALU是CPU的核心

所有程序的执行,本质上都是计算 + 读取 + 存入

    读取:memory -> register

    存入:register -> memory

所以我们的程序也就可以抽象为:opcode + a1 + b1

    a,b都是需要寄存器来临时保存数据的,计算结果也是需要寄存器来保存的

    要计算的opcode是控制单元CU告诉ALU的

CPU的执行过程

我们的程序是怎样运行的呢?其实只要有个起始位置填充到PC里,执行流就可以正常的运行起来了,而这个就是我们平时的main方法,我们程序的启动需要有“人”把我们的程序翻译出来的指令的第一条地址放到PC中,我们的程序就可以正常的跑起来了。至于为什么我们的程序中有函数(方法)等概念,并不是计算机硬件要用到这些概念,这些概念是为了方便程序员而诞生的。

1.取码阶段

  CU根据PC寄存器的值,去内存的相应位置,把数据(指令)读取到IR寄存器中,正常情况下,    PC寄存器中的值自动加1(PC寄存器中的值在这个指令周期中很关键,可以控制执行哪一条指     令,由于硬件中PC在自动 + 1,所以代码变成指令才能顺序的往下去执行,且代码中的一条语       句,很可能是需要多条指令才能完成)

2.解码阶段

  CU按照预先设定的指令集解读指令数据(opcode + 操作数)

    例如:0010 1110

                人为规定:0010是opcode

                查询指令表,知道0010代表的意思:从后边地址指定内存出,将数据读取到A寄存器

                地址:0b1110 -> 14

3.执行阶段

  LOAD指令应该由CU执行,所以按照规定执行指令

  从内存的14地址处,将数据读取到A寄存器中

CPU的运算快慢,就是看CPU执行指令周期的频率。

CPU主频可以粗略的看作:每秒钟CPU能执行多少个指令周期。

CPU中往往会提供一些指令,这些指令可以去修改PC的值,进而影响执行流,也就是我们的分支语句:if,else,while,for,break,continue

CPU的中断模式(Interrupt Mode)

正常模式下,CPU可以顺序执行,可以分支执行。但总归只能按照既定顺序去执行。但现实中,很多时候,需要暂时中断CPU的当前执行流,先让CPU去做点其他工作,再回过头来继续原来的执行流。

CPU硬件中提供了一种机制(中断)让CPU停下,主要有以下四个步骤

    1.保存当前的PC的值到内存的某个位置

    2.修改PC的值,让执行其他的执行流

    3.其他执行流执行结束之后,通过将刚才保存的PC值恢复到PC寄存器

    4.继续原来的执行流

中断经常用作:

    1.IO设备的处理

    当有外部数据到达Input设备时,触发某个中断让当前正在执行的执行流暂停,切换到Input驱动      对应的执行流,把Input设备中读取到的数据,放到内存的某个位置,然后再恢复之前的执行流

    2.操作系统中用来作进程调度(线程调度)

以上就是CPU的主要工作模式

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值