图解通信原理与案例分析-5:计算机中央处理器CPU与内存芯片之间的二进制数字信号通信

2023-10-30

引言:

我们知道,计算机是一个二进制的世界,相应的硬件电路,我们称为数字电路,与之对应的是模拟电路;相应的可执行的指令,我们称为二进制指令。从计算机的角度来看,只需要关注0和1,不需要关注数字信号的特征(幅度、极性等),也不需要关注如何通过数字信号表示0或1。

然而从通信的角度来看,数字信号的特征量就是研究的重点,即如何通过控制数字电信号的特征量,实现在两个芯片节点之间传递0和1的信息。

理解如何利用数字的电信号来传递0和1的信息,非常有助于理解,如何通过模拟信号传递0和1,也非常有助于理解数字调制解调的底层原理。

本文将从通信的视角,从通信原理的角度,来解构一下计算机的中央处理器与外围内存芯片之间的二进制数字通信。


目录:

1.  什么是二进制数字通信

2. CPU与内存芯片之间二进制数字信号通信的模型

3. 信源对信息的发送过程

4. 信道对信息的传输过程

5. 信宿对信息的接收过程


1.  什么是二进制数字通信

(1)什么是狭义的现代通信

广义的通信定义:是信源与信宿指之间通过某种媒介进行信息传递与交流的过程。

狭义的通信定义:是信源与信宿指之间通过电信号进行信息传递与交流的过程。

由此有必要先了解一下什么是电信号?电信号的特征?分类?

(2)什么是电信号

电信号是指随着时间而变化的电压或电流信号

由于非电的物理量可以通过各种传感器较容易地转换成电信号,而电信号又容易传送和控制,所以使其成为现代通信中应用最广的信号

电流:

导体中的自由电荷(电子)在电场力(电压)的作用下做有规则的定向运动就形成了电流。科学上把单位时间里通过导体任一横截面电量(电子的数量)叫做电流强度,简称电流,电流符号为I,单位是安培(A)。

电压:

也称作电动势或电位差,电压是指电路中两点A.B之间的电位差(简称电压), 正是因为电压的存在,才驱动电子的运动,形成电流。电压的国际单位制为伏特(简称伏),用V表示。

这个概念与水位高低所造成的“水压”相似。

电阻:

电阻是描述导体导电性能的物理量,或者说用来描述导体阻碍电子流动的物理量。当导体两端的电压一定时,电阻愈大,通过的电流就愈小; 反之,电阻愈小,通过的电流就愈大。因此,电阻的大小可以用来衡量导体对电流阻碍作用的强弱,即导电性能的好。用R表示。

电流、电阻、电压三者的关系:

电阻=电压%电流,表示为R=U/I

(3)电信号的测量、数学表示与可视化

可以通过电压表测量线路两端的电压,用电流表测量线路的电流。用示波器可视化其随时间变化的图形:

电信号在数学描述上可将它表示为时间的函数y=f(t),可视化其其波形如下:

(4)电信号的分类

电信号的形式是多种多样的,可以从不同的角度进行分类。

根据信号的随机性可以分为确定信号和随机信号;

根据信号的周期性可分为周期信号非周期信号;

根据信号的连续性可以分为连续时间信号离散信号;在电子线路中,又称为分为模拟信号数字信号

模拟信号(电压或电流)

模拟信号是指电信号参数在给定时间范围内表现为连续的信号。 或在一段连续的时间间隔内,代表信号的特征量,可以在任意瞬间呈现为任意数值的信号。如广播的声音信号,或图像信号等。

模拟信号的特征量有:电压或电流信号的幅度、频率、相位。

数字信号(电压或电流)

数字信号幅度的取值是离散的,幅值表示被限制在有限个数值之内。

数字信号的特征量有:电压或电流信号的幅度大小、正负的极性、变化的周期(或频率)、占空比(高电平与低电平在时间上的比值)、信号的上升沿、信号的下降沿。

二进制信号就是一种只有2个离散数值的数字信号。

二进制信号受噪声的影响小,易于有数字电路进行处理,所以在计算机中得到了广泛的应用。可以这样说,计算机就是一个二进制的世界。

备注:

从计算机的角度来看,只需要关注0和1,不需要关注数字信号的特征(幅度、极性等),不需要关注如何通过数字信号表示0或1。

然而从通信的角度来看,数字信号的特征量就是研究的重点,即如何通过控制数字电信号的特征量,实现在两个芯片节点之间传递0和1的信息。

理解如何利用数字的电信号来传递0和1的信息,非常有助于理解,如何通过模拟信号传递0和1,也非常有助于理解数字调制解调的底层原理。


2. CPU与内存芯片之间二进制数字信号通信的模型

(1)计算机的系统逻辑组成

计算机组成指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。

主要分为三大部分组成:CPU,存储器,输入输出设备(外设)。

中央处理器(CPU,central processing unit)作为计算机系统的运算和控制核心,是信息处理程序运行的最终执行单元。

存储器:存储程序和数据等信息,并在CPU需要时提供这些信息。

外设:输入设备与输出设备合称为外部设备,简称外设。

输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。

输出设备的作用是把计算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。

(2)CPU的内部组成

CPU内部由运算单元、存储单元和控制单元组成。

运算单元:负责进行二进制指令的执行、二进制数据的运算等操作。

控制单元:负责通过地址总线、数据总线、控制总线,从外部的内存和外设中读取二进制指令,从外部的内存中存和取二进制数据。

存储单元:又称为寄存器单元,用于暂时存放CPU运算单元所需要的数据。

CPU的世界是二进制的世界,所有的信息将转化0和1的二进制串:

计算机中,由CPU执行的目标代码是二进制格式的,我们称为“指令”。

计算机中,由指令处理的对象是二进制的,我们称之为“数据”。

计算机中,指令对数据的最底层的运算是二进制的,我们“与、或、非”。

(3)CPU能够执行的运算

计算机各种纷繁复杂的数学运算、逻辑运算等,都源于“与、或、非”三种基本的二进制运算。

(4)CPU与内存和外设的通信模型

以CPU向内存中传送(写)数据为例

信源:CPU

信宿:内存和外设

传输信道:PCB板的并行铜导线,所谓并行,是指一次性可以传输多个bit,如32bits数据,就会有32根PCB走线。每根PCB走线上一次传输一个bit。32根PCB走线,一次就可以传输32bit。

当然,在实际系统中,为了节省PCB总线的数量,通常采用分时复用的方式共用一组总线,称为AD总线,即地址数据总线。

在这里,为了描述方便,把地址和数据总线分开。

紧接着的问题是:CPU与外部的内存和外设通过什么样的“电信号”传递二进制数据0和1?


3. 信源对信息的发送过程

以CPU向内存中存放数据为例

(1)信源:CPU

(2)信息:对数据的解释是是人来完成的,CPU自身是无法感知二进制的含义的,因此,在CPU中,信息就是二进制数据。

(3)二进制数据:无论是指令,还是数据,都是以二进制0、1的形式存在的,并存放CPU内部的寄存器中。比如需要向内存中存放的32bits的数据:0101 0101 0101 0101 0101 0101 0101 0101  (0x5555 5555)

(4)电气信号(即符号Symbol)编码

这里就涉及一个电通信中很根本性的问题,即用什么样的电信号表示0或1?

如下是数字电信号的示意图:

电通信的过程,就是传送电信号的过程,利用电信号的特征来标识0和1。

前面提到,数字信号的特征量有:电压或电流信号的幅度大小、正负的极性、变化的周期(或频率)、占空比(高电平与低电平在时间上的比值)、信号的上升沿、信号的下降沿。

常见的表示0和1的方法有:

幅度编码法:电信号的低电平表示0,电信号的高电平表示1,

极性编码法:电信号的正+电平表示0,电信号的负-电平表示1.

边沿编码法:电信号的上升沿表示0,电信号的下降沿表示1,这种方法,在一个总线周期中,传输0和1.

在这里,采用最直观、最常用的编码方式:电信号的低电平表示0,电信号的高电平表示1。

其他的编码方式,在后续再继续讨论。

(5)信号的发送

无论是低电平,还是高电平,都是持续一段时间的,从什么时候开始表示0或1呢?

这里涉及到一个话题,就是总线的时序(时域)

所谓时序:

发送方角度来看,就是生成满足一定时间顺序的地址总线、数据总线、控制总线电信号,代表需要传输的0或1信息。

接收方角度来看,就是按照一定的时间顺序,获取地址总线、数据总线和控制总线电信号,并获取线路上传输的0或1信息。

如下就是读写数据时,各个信号之间的时序示意图,通过如下的时序图,完成了信号的发送。

从上图看可以看出,一次传送N个bits的并行数据,也并非简单的事情 ,需要有相应的硬件控制电路支撑。

信号的传送速率:

时钟CLK的频率 * 数据线的宽度,比如时钟66M时钟,数据宽度是32bit

那么信号传送速率 = 66M * 32bit = 2.178G bits

这就是并行传输带来的好处。


4. 信道对信息的传输过程

(1)PCB板

PCB(printed circuit board)即印制线路板,简称印制板。

印制线路板由绝缘底板、连接导线(铜)和装配焊接电子元件的导电焊盘(铜)组成,具有导电线路和绝缘底板的双重作用。

因此,计算机中央处理器CPU与内存芯片之间的二进制数字信号通信,属于有线通信。传输的信号是数字信号。

(2)传输的电信号的电平标准

  • TTL(单极性电平)与低电压TTL电平LVTTL

TTL集成电路的全名是晶体管-晶体管逻辑集成电路(Transistor-Transistor Logic)

传统的TTL电平信号规定,+5V等价于逻辑“1”,0V等价于逻辑“0”(采用二进制来表示数据时)。

这样的数据通信及电平规定方式,被称做TTL信号系统

这是计算机处理器与内存和输入输出控制器之间通信的标准技术。

除了传统的5V电压的TTL电平,还有低电压的标准LVTTL,如3.3V和2.5V和1.8V

TTL电平是绝对值,是相对于GND地信号的电压差。

TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。

  • CMOS电平(单极性电平)与低电压CMOS电平LVCMOS

CMOS是Complementary Metal Oxide Semiconductor(互补金属氧化物半导体)的缩写, 它是指制造大规模集成电路芯片用的另一种技术。
其电压标准有5V,3.3V和2.5V和1.8V.

CMOS电平也是绝对值,是相对于GND信号的电压差。

COMS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。

  • 各种电平标准电压的区别:


5. 信宿对信息的接收过程

以CPU向内存中存放数据为例

(1)信宿:内存或外设

(2)信号接收:信宿通过接收到的信号的时序,把代表数据或信息的电信号缓存到锁存器中。

(3)信号解码:通过解码,把电信号转化成表示0和1的内部电信,存放在内部的寄存器中。

(4)数字数据:存放在内部寄存器中的内部电信号就是用0和1表示的数字数据。

(5)信息:由于计算机硬件,没有意识,因此信息就是二进制数据本身。


7.结束语

现代通信是指基于“电信号”的通信。

计算机中央处理器CPU与内存芯片之间的二进制数字信号通信是所有数字通信的基础。

深刻的理解逻辑的0和1,与CPU总线的物理的电信号的电平之间的关系,对于理解数据通信起着至关重要的作用。

后续将进一步讨论,计算机中,通过其他电平承载0和1的通信方式和更加复杂的数字物理层、数字电路信号层的编码方式。比如串口通信、I2C总线通信、以及以太网通信。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图解通信原理与案例分析-5:计算机中央处理器CPU与内存芯片之间的二进制数字信号通信 的相关文章

随机推荐

  • EMC问题之RE实验最优解

    EMC问题之RE实验最优解 RE实验中 最关键的可能也是最难的就是找到干扰源 进而确定是传导辐射还是空间辐射 选择对应的是一定要加屏蔽罩 哪怕环路面积很小 辐射能量还是很强 还是仅仅依靠滤波等就能解决问题 实验现象 在160MHz 80MH
  • shell中如何进行一段代码的注释

    在shell编程中 我们常常需要把一些语句注释掉 让它不执行 对单号或者少数几行shell脚本来说 在每行前面增加 符号就可以达到目的了 代码如下 cp a txt b txt mkdir p 1 2 4 2 4 6 echo ok 但如果
  • ARP欺骗和DNS劫持以及Wireshark分析

    一 实验目的 利用ettercap进行中间人攻击之ARP欺骗和DNS劫持 用Wireshark分析相关特征数据 提高对ettercap Wireshark的熟练度 同时也对中间人攻击有更加深入的认识 二 实验原理 常见的ARP欺骗方式有两种
  • 使用conda时出现Solving environment: failed with initial frozen solve. Retrying with flexible solve错误

    使用conda安装pytorch 出现了各种各样的错误 尝试了网上各种办法 最后我是这么解决的 首先添加镜像源 在终端运行以下代码 conda config add channels https mirrors tuna tsinghua
  • JDBC(数据库连接)

    JDBC 简介 什么是 JDBC JDBC 指 Java 数据库连接 是一种标准Java应用编程接口 JAVA API 用来连接 Java 编程语言和广泛的数据库 JDBC API 库包含下面提到的每个任务 都是与数据库相关的常用用法 制作
  • 学习开源项目NewBeeMall新蜂商城(1) - 初步了解与运行NewBeeMall

    文章目录 0 前言 1 NewBeeMall 新蜂商城简介 2 NewBeeMall项目配置与运行 2 1 配置MySQL数据库 2 2 配置图片资源 2 3 运行NewBeeMAll 3 NewBeeMall相关技术栈 3 1 项目原版技
  • 关于++与+=

    今天在模仿别人做购物车网页 本想用jquey的text 获取一件物品的数量 如 1 由于忽略了text 获取的是字符串 于是用了 1运算符 发现字符串也能用 输出为 11 看了模仿的网站发现他并不需要用到parseInt 函数来将字符串变为
  • 454. 4Sum II 解题记录

    题目描述 Given four lists A B C D of integer values compute how many tuples i j k l there are such that A i B j C k D l is z
  • MOSFET 导通条件

    MOSFET管是FET的一种 可以被制造为增强型或者耗尽型 P沟道或N沟道共四种类型 但实际应用的只有增强型的N沟道MOS管和增强型的P沟道MOS管 实际应用中 NMOS居多 如何分辨三个极 D极单独位于一边 而G极是第4PIN 剩下的3个
  • 支持IDE最新版!新一代报表工具FastReport VCL v6.7更新详情

    FastReport VCL是用于Delphi C Builder RAD Studio和Lazarus的报告和文档创建VCL库 它提供了可视化模板设计器 可以访问最受欢迎的数据源 报告引擎 预览 将过滤器导出为30多种格式 并可以部署到云
  • 激光条纹中心线提取算法总结和复现

    滤波 分割等预处理过程省略 输入图像为灰度图 激光条纹水平走向 目录 几何中心法 极值法 细化法 灰度重心法 法向质心法 Steger算法 几何中心法 检测出光条边界 l h 后 把两边界的中间线 l h 2作为激光条纹的中心线 inclu
  • Unity访问 FTP-SSL、FTP服务器(记录)

    1 ftps是基于ftp做了层加密 只记录ftps的访问 2 使用的工具 FluentFTP 由于直接导入unity访问文件会报安全句柄错误 因此需要以下操作 3 流程 下载FluentFTP 修改 cs文件 重新编译 dll 原因 Saf
  • 入门级详细USB移植教程——致正在为USB烦恼的朋友

    同上一篇MPU6050一样 我还是写一篇关于USB的帖子 在圈圈等玩USB的大神面前 我掌握的USB知识实在是九牛一毛 所以这篇帖子加上了入门级的修饰语 写这篇帖子主要是为了那些想快速开发USB的人 至于想深入了解USB协议 可以先学完我这
  • Access数据库注入详解

    一个人再冷酷无情 他曾经都单纯过 能有这样的结果 都是被逼的 渗透入坑学废集 前言 注入漏洞分析 网站分类 常见数据库 网站访问模型 漏洞成因 注入漏洞是怎么样形成的 常见的注入流程 注入危害 ACCESS数据库注入详解 ACCESS数据库
  • 【BZOJ】【P1816】【Cqoi2010】【扑克牌】【题解】【水题】

    传送门 http www lydsy com JudgeOnline problem php id 1816 一张图表示我wa了三次的心情 Code include
  • SpringBoot01--运行原理和自动装配原理

    SpringBoot01 一 是什么 二 SpringBoot优点 三 运行原理 四 Springboot注解 五 自动装配原理 三步 是什么 怎么做 为什么 一 是什么 1 Spring Boot是由Pivotal团队提供的全新框架 其设
  • Pycharm缓存文件太大,转移C盘中Pycharm缓存文件

    转移C盘中Pycharm缓存文件 问题 将C盘用户目录下的 Pycharm转移到E盘文件夹下 解决 找到PyCharm的D software pycharm 2019 PyCharm 2019 1 bin 添加4个 在四处红框位置处添加四行
  • Unity3D -- 自动生成动画(AnimationClip)

    我们一个Prefab有很多个子物体 而且当前prefab使用了大量的动画状态 假如想将该Prefab动画更改过的属性在Idle中重新更改过来 一种比较暴力方法就是直接将需要更改的属性在Idle动画中K出来 但如果动画有更改的话 我们就需要更
  • window下配置hosts文件,使虚拟机主机名与IP地址映射

    目录 1 点击此路径 C Windows System32 drivers etc 2 找到hosts并修改 3 然后将写好的hosts文件复制到原先的路径下 替换原文件 4 尝试ping虚拟机的主机名 成功 1 点击此路径 C Windo
  • 图解通信原理与案例分析-5:计算机中央处理器CPU与内存芯片之间的二进制数字信号通信

    引言 我们知道 计算机是一个二进制的世界 相应的硬件电路 我们称为数字电路 与之对应的是模拟电路 相应的可执行的指令 我们称为二进制指令 从计算机的角度来看 只需要关注0和1 不需要关注数字信号的特征 幅度 极性等 也不需要关注如何通过数字