zoukankan      html  css  js  c++  java
  • 寄存器基本原理介绍(上篇)

    存储器被划分为多个存储单元,从零开始编号,就像是一条街上的门牌号一样,那么 CPU 要读取这些数据,就像是在这一条街里找这个门牌号一样,先要确定在哪里住。

    由此可见,CPU 要相对数据进行读写,必须和芯片进行下面 3 类交互:

    • 存储单元的地址(地址信息)
    • 器件的选择,读或者写命令(控制信息)
    • 读或写的数据(数据信息)

    那么,CPU 是如何让将这些新词传输到存储器的芯片中的,这就涉及到一个概念,我们都知道,计算机能够处理的信息都是电信号,也就是高低电平,电信号当然是由导线来传送。在计算机中,由专门连接 CPU 和其他芯片的导线,我们通常称为总线,总线从物理的概念来讲,就是一根根导线的集合。根据传出信息的不同,总线从逻辑上讲主要分为 3 类:地址总线,控制总线以及数据总线。

    寄存器基本原理介绍(上篇)

    分析上图,三个基础导线首先 CPU 通过地址线将信息发出,然后通过控制线发出内存读写任务,选中存储器芯片,并命令从中读取数据,最后通过数据线将数据送入 CPU。

    接下来,详细介绍一下。

    地址总线

    现在,我们知道 CPU 是通过地址总线来指定存储单元的,那么可见地址总线上能传递多少不同的信息,就能对多少个存贮单元进行寻址。

    现在假设,一个 CPU 有 10 根地址线,一根导线能传递的状态只有两种,一种是高电平,一种是低电平,就是二进制的 0 和 1,那么 10 根导线就是 10 位 2 进制数据,那么 10 位进制能组成多少不同的数据呢?2 的 10 次方个,最小为 0,最大是 1023。如果一个 CPU 由 N 根地址总线,那么可以说这个 CPU 的地址总线的宽度为 N,这样的 CPU 最多可以寻找 2 的 N 次方个内存单元。

    地址总线由微处理器产生,主要用来存储输入输出接口,传送地址信息,是一条单向总线。

    寄存器基本原理介绍(上篇)

    上图就是对地址总线一个简单的概述,帮助大家理解。上图共有 5 条地址线,一次传输五位二进制数。

    数据总线

    数据总线主要负责 CPU 与其他部件的数据传送,数据总线的宽度决定了 CPU 和外界的数据传输速度,8 根数据线一次性可传送一个 8 位二进制数,也就是一根一个数据,共一个字节,16 根就是传输两个字节。

    数据总线是一条双向总线,CPU 和其他部件的双向传输信号。

    8088CPU 的数据总线宽度为 8,8086CPU 的数据总线宽度为 16,8086 的数据传送要快一些。

    控制总线

    控制总线控制外部器件,控制总线只是一个总称,其实是由一些不同的控制线集合,有多少根控制总线就意味着对外部器件有多少种控制,控制总线决定着 CPU 对外部器件的控制能力。

    控制总线主要传输控制信号、时序信号和状态信号,也是一条双向总线。

    https://www.infoq.cn/article/1j3QiETdjtBbSjeKV6Wi

  • 相关阅读:
    如何查看openssl支持的所有TLS/SSL版本
    讲故事,学(AHK)设计模式—观察者模式
    React Hooks 详解 【近 1W 字】+ 项目实战
    为什么要在函数组件中使用React.memo?
    js防抖函数
    JS 深度优先遍历与广度优先遍历 实现查找
    你不知道的 requestIdleCallback
    RE:ゼロから始める文化課生活
    开学考小记 & 新生活的开始
    JS中:数组和对象的区别,以及遍历数组和遍历对象的区别
  • 原文地址:https://www.cnblogs.com/feng9exe/p/12531902.html
Copyright © 2011-2022 走看看