美文网首页杂七杂八程序员开源工具技巧
计算机组成原理学习(一)

计算机组成原理学习(一)

作者: 虾笑勇 | 来源:发表于2017-01-05 21:19 被阅读742次

    前言
    本次计算机组成原理学习主要分为两块

    通过计算机编程语言的基本数据类型设计的知识学习,如果你还想深度了解一下编程语言如何通过编译器在计算机中运行,那么请接着看下面的内容:

    一、冯诺依曼结构

    冯诺依曼结构
    • 冯·诺依曼结构组成
    运算器、控制器、存储器(一个)、输入设备和输出设备
    
    • 冯·诺依曼结构体系结构上主要特点有:
    1、以运算单元为中心
    2、采用存储程序原理
    3、存储器是按地址访问、线性编址的空间
    4、控制流由指令流产生
    5、指令由操作码和地址码组成
    6、数据以二进制编码
    

    冯·诺依曼结构提出后的贡献就是存储程序概念的提出,并且得到了实现,因为指令和数据都是二进制码,指令和操作数的地址又密切关联,所以基于当时的电子电路结构水平,选择这种结构是必然的。
    缺点就是这种指令和数据共享同一总线的结构,而且必须按照顺序执行,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度的提高。

    • 完整执行一条指令结果流程如下:
    冯诺依曼指令运行

    目前大多数的计算机运行都遵守冯诺依曼结构。

    二、哈佛结构

    哈佛结构
    • 哈佛结构组成
    运算器、控制器、指令存储器(一个)、数据存储器(一个)、输入设备和输出设备
    

    个人认为哈佛结构特点继承了冯诺依曼结构的特点。

    哈佛结构是将程序指令存储和数据存储分开的处理器结构,两条总线数据宽度可以不一致。

    • 完整执行一条指令结果流程如下:
    哈佛指令运行

    注意
    1、一些51单片机,还有部分DSP芯片是哈佛结构模式,所以它们只能执行较少的任务。
    2、随着科技的发展,目前的计算机基本上混用两种结构模式,多核心多处理器高级处理芯片大多外围采用冯诺依曼结构,局部采用哈佛结构.
    3、哈佛结构与冯诺依曼最大的区别在于存储器分切割应用上,因为哈佛结构将存储器分为指令和数据两种,从而CPU与存储器之间有两条总线。

    二、CPU

    在上面中,我们已经简单的了解了CPU与存储器之间的通信,接下来我尽可能把自己的一些认知加进去,一起共同深度学习CPU的工作原理

    1、CPU功能

    现在市面上的CPU都有下图的四大功能

    CPU功能

    注意:
    现在新的CPU都有多个核心以及多级内部复杂的缓存设计,这样的设计可以同时取到多条指令执行,从而体现并行处理的目的,即便是这样程序指令的顺序执行一直是一条严谨的规则。

    2、CPU的组成

    为了实现上面的功能,CPU一般有运算器,控制器,寄存器三大组成部分,其内部可以分的更细,如下图所示:

    CPU的组成

    他们之间的逻辑处理如下图所示:


    CPU主要组成部分逻辑结构图

    尽管我们熟悉了CPU的运作流程,但是必须要对以下几个概念要熟悉掌握

    • 指令周期
      1、指令周期:执行一条指令所需要的时间,一般由若干个[机器周期]组成,是从取指令、分析指令到执行完所需的全部时间。指令周期的长短与指令的复杂程度有关。
      2、CPU周期:又称机器周期,机器内部各种操作大致可归属为对CPU内部的操作和对主存的操作两大类,由于CPU内部操作速度较快,CPU访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义,这个基准时间就是CPU周期(机器周期)。一指令周期常常用若干个CPU周期数来表示。
      3、时钟周期:也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。时钟周期表示了SDRAM所能运行的最高频率。更小的时钟周期就意味着更高的工作频率。一个CPU周期包含有若干个时钟周期。
    • 时序产生器
      CPU中一个类似"作息时间"的东西,使计算机可以准确、迅速、有条不紊地工作。机器一旦被启动,即CPU开始取指令并执行指令时,操作控制器就利用定时脉冲的顺序和不同的脉冲间隔,提供计算机各部分工作时所需的各种微操作定时控制信号,有条理、有节奏地指挥机器的动作,规定在这个脉冲到来时做什么,在那个脉冲到来时又做什么,给计算机各部分提供工作所需的时间标志。

    注意:
    1、一条指令分为两部分:操作码+地址码。
    2、执行一条指令的顺序是:CPU先把该指令从主存读取到数据寄存器中,然后再传送至指令寄存器。
    3、执行任何给定的指令:首先必须对操作码进行测试,目的是识别所要求的操作,而指令译码器(Instruction Decoder,ID)就是完成这项工作的。
    4、执行指令时:CPU能自动递增PC的内容,使其始终保持将要执行的下一条指令的主存地址,为取下一条指令做好准备。
    5、一个CPU至少要有一个累加寄存器
    6、这里的数据缓冲寄存器就是数据寄存器
    7、微操作:控制器在实现一条指令的功能时,总是把每一条指令分解成一系列时间上先后有序的最基本、最简单、不可再分的操作控制动作,这种最基本、最简单、不可再分的操作称为微操作
    8、数据通路:通常把许多寄存器之间传输信息的通路称为数据通路(Data Path),它控制信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器。

    相关文章

      网友评论

      本文标题:计算机组成原理学习(一)

      本文链接:https://www.haomeiwen.com/subject/qtozvttx.html