精华内容
下载资源
问答
  • 介绍内存与CPU的连接

    连接原理

    1. 主存储器通过数据总线地址总线控制总线与CPU连接。
    2. 数据总线的位数与工作频率的乘积正比于数据传输率。
    3. 地址主线的位数决定了可寻址的最大内存空间。
    4. 控制总线(读/写)指出总线周期的类型和本次输入/输出操作完成的时刻。

    主存容量的扩展

    • 位扩展法
      • 定义:CPU的数据线与存储芯片的数据位数不相等时,进行位扩展使其与CPU的数据线数相等。
      • 连接方式:
        • 将多个存储芯片的地址端、片选端和读写控制端相应并联。
        • 数据线分别引出。
      • 采用位扩展时,各芯片连接地址线的方式相同,连接数据线的方式不同,片选信号号要连接到所有芯片。
    • 字扩展法
      • 定义:增加存储器中字的数量,而位数不变。
      • 连接方式:
        • 芯片的地址线、数据线、读写控制线相应并联。
        • 由片选信号来区分各芯片的地址范围,即在同一个时间只能有一个芯片被选中。
      • 采用字扩展时,各芯片的地址线 数据线的连接方式相同,但在同一时刻只需选中部分芯片,所以通过片选信号或采用译码器设计连接到相应的芯片。
    • 字位同时扩展
      • 定义:既增加存储字的数量,又增加存储字长。
      • 连接方式:位扩展和字扩展的结合。
      • 采用字位同时扩展时,各芯片连接地址线的方式相同,但连接数据线的方式不同,而且需要通过片选信号或采用译码器连
    展开全文
  • 我们知道,计算机是一个二进制的世界,相应的硬件电路,我们称为数字电路,之对应的是模拟电路;相应的可执行的指令,我们称为二进制指令。从计算机的角度来看,只需要关注0和1,不需要关注数字信号的特征(幅度、...

    引言:

    我们知道,计算机是一个二进制的世界,相应的硬件电路,我们称为数字电路,与之对应的是模拟电路;相应的可执行的指令,我们称为二进制指令。从计算机的角度来看,只需要关注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总线通信、以及以太网通信。

     

    展开全文
  • title: CPU Cache date: 2019-11-17 20:20:30 keywords: cache “CPU ...一. CPU Memory 内存之间的三级缓存的实现原理 1.1 cache 存在的原理   引入 Cache 的理论基础是程序局部性原理,包括时间局部性和...

    title: CPU Cache
    date: 2019-11-17 20:20:30
    keywords: cache “CPU cache” “三级缓存” 缓存映射 cache原理 多级cache TLB

    Linux的CPU cache

    一. CPU 与 Memory 内存之间的三级缓存的实现原理

    1.1 cache 存在的原理

      引入 Cache 的理论基础是程序局部性原理,包括时间局部性和空间局部性。时间局部性原理即最近被CPU访问的数据,短期内CPU 还要访问(时间);空间局部性即被CPU访问的数据附近的数据,CPU短期内还要访问(空间)。因此如果将刚刚访问过的数据缓存在一个速度比主存快得多的存储中,那下次访问时,可以直接从这个存储中取,其速度可以得到数量级的提高。

      CPU缓存是(Cache Memory)位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。

      在CPU中加入缓存是一种高效的解决方案,是对于存储器件成本更低,速度更快这两个互相矛盾的目标的一个最优解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。
    下图是一个典型的存储器层次结构,我们可以看到一共使用了三级缓存

    在这里插入图片描述
    各级存储访问延迟的对比
    在这里插入图片描述

    1.2 cpu 三级cache

      介于CPU和主存储器间的高速小容量存储器,由静态存储芯片SRAM组成,容量较小但比主存DRAM技术更加昂贵而快速, 接近于CPU的速度。CPU往往需要重复读取同样的数据块, Cache的引入与缓存容量的增大,可以大幅提升CPU内部读取数据的命中率,从而提高系统性能。通常由高速存储器、联想存储器、地址转换部件、替换部件等组成。如图所示。
    在这里插入图片描述

    • 联想存储器:根据内容进行寻址的存储器(冯氏模型中是按照地址进行寻址,但在高速存储器中往往只存有部分信息,此时需要根据内容进行检索)
    • 地址转换部件:通过联想存储器建立目录表以实现快速地址转换。命中时直接访问Cache;未命中时从内存读取放入Cache
    • 替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件

      早期采用外部(Off-chip)Cache,不做在CPU内而是独立设置一个Cache。现在采用片内(On-chip)Cache,将Cache和CPU作在一个芯片上,且采用多级Cache,同时使用L1 Cache和L2 Cache,甚至有L3 Cache。

    • 一般L1 Cache都是分立Cache,分为数据缓存和指令缓存,可以减少访存冲突引起的结构冒险,这样多条指令可以并行执行;内置;其成本最高,对CPU的性能影响最大
      多级Cache的情况下,L1 Cache的命中时间比命中率更重要
    • 一般L2 Cache都是联合Cache,这样空间利用率高
      没有L3 Cache的情况下,L2 Cache的命中率比命中时间更重要(缺失时需从主存取数,并要送L1和L2 cache)
    • L3 Cache多为外置,在游戏和服务器领域有效;但对很多应用来说,总线改善比设置L3更加有利于提升系统性能

      上图显示了最简单的缓存配置。它对应着最早期使用CPU cache的系统的架构。CPU内核不再直接连接到主内存。所有的数据加载和存储都必须经过缓存。CPU核心与缓存之间的连接是一种特殊的快速连接。在一个简化的表示中,主存和高速缓存连接到系统总线,该系统总线也可用于与系统的其他组件进行通信。我们引入了系统总线(现代叫做“FSB”)。
    引入缓存后不久,系统变得更加复杂。高速缓存和主存之间的速度差异再次增大,使得另一个级别的高速缓存不得不被添加进来,它比第一级高速缓存更大且更慢。出于经济原因,仅增加第一级缓存的大小不是一种选择。今天,甚至有机器在生产环境中使用了三级缓存。带有这种处理器的系统如图下所示。随着单个CPU的内核数量的增加,未来的缓存级别数量可能会增加。现在已经出现了拥有四级cache的处理器了。

      上图展示了三级缓存的结构。L1d是一级数据cache,L1i是一级指令cache。请注意,这只是一个示意图; 现实中的数据流从core到主存的过程中不需要经过任何更高级别的cache。CPU设计人员有很大的自由来设计cache的接口。对于程序员来说,这些设计选择是不可见的。
    另外,我们有拥有多个core的处理器,每个core可以有多个“线程”。核心和线程之间的区别在于,独立的核心具有所有硬件资源的独立的副本,早期的多核处理器,甚至具有单独的第二级缓存而没有第三级缓存。核心可以完全独立运行,除非它们在同一时间使用相同的资源,例如与外部的连接。另一方面,线程们共享几乎所有的处理器资源。英特尔的线程实现只为线程提供单独的寄存器,甚至是有限的,还有一些寄存器是共享的。
    一个现代CPU的完整概貌如图所示。

    在这里插入图片描述

    • i-cache和d-cache都是32KB、8路、4个时钟周期;
    • L2 cache:256KB 、8路、11个时钟周期。
    • 所有核共享的L3 cache:8MB、16路、30~40个时钟周期。
    • Core i7中所有cache的块大小都是64B

    1.3 cpu cache与TLB的联系

      由于cache中对应的都是主存地址,即物理地址,在cqu查看具体数据是否在cache中时,如果CPU传送过来的地址时一个虚拟地址,需要将其转换成实际物理地址再到cache中去寻找。Cache的实现需要TLB的帮助。可以说TLB命中是Cache命中的基本条件。TLB不命中,会更新TLB项,这个代价非常大,Cache命中的好处基本都没有了。在TLB命中的情况下,物理地址才能够被选出,Cache的命中与否才能够达成。

    1.3.1 TLB的概述

      TLB是一个内存管理单元用于改进虚拟地址到物理地址转换速度的缓存。TLB是位于内存中的页表的cache,如果没有TLB,则每次取数据都需要两次访问内存,即查页表获得物理地址和取数据。

    1.3.2 TLB的原理

      当cpu对数据进行读请求时,CPU根据虚拟地址(前20位)到TLB中查找.TLB中保存着虚拟地址(前20位)和页框号的对映关系,如果匹配到虚拟地址就可以迅速找到页框号(页框号可以理解为页表项),通过页框号与虚拟地址后12位的偏移组合得到最终的物理地址.

      如果没在TLB中匹配到虚拟地址,就出现TLB丢失,需要到页表中查询页表项,如果不在页表中,说明要读取的内容不在内存,需要到磁盘读取.

      TLB是MMU中的一块高速缓存,也是一种Cache.在分页机制中,TLB中的数据和页表的数据关联,不是由处理器维护,而是由OS来维护,TLB的刷新是通过装入处理器中的CR3寄存器来完成.如果MMU发现在TLB中没有命中,它在常规的页表查找后,用找到的页表项替换TLB中的一个条目.

    1.3.3 TLB的刷新原则

      当进程进行上下文切换时重新设置cr3寄存器,并且刷新tlb.
    有两种情况可以避免刷tlb.
    第一种情况是使用相同页表的进程切换.
    第二种情况是普通进程切换到内核线程.
    lazy-tlb(懒惰模式)的技术是为了避免进程切换导致tlb被刷新.
    当普通进程切换到内核线程时,系统进入lazy-tlb模式,切到普通进程时退出该模式.

    1.3.4 cache的概念

      cache是为了解决处理器与慢速DRAM(慢速DRAM即内存)设备之间巨大的速度差异而出现的。cache属于硬件系统,linux不能管理cache.但会提供flush整个cache的接口.
    cache分为一级cache,二级cache,三级cache等等.一级cache与cpu处于同一个指令周期.

    1.3.5 Cache的存取单位(Cache Line)

      CPU从来不从DRAM直接读/写字节或字,从CPU到DRAM的每次读或写的第一步都要经过L1 cache,每次以整数行读或写到DRAM中.Cache Line是cache与DRAM同步的最小单位.典型的虚拟内存页面大小为4KB,而典型的Cache line通常的大小为32或64字节.

      CPU 读/写内存都要通过Cache,如果数据不在Cache中,需要把数据以Cache Line为单位去填充到Cache,即使是读/写一个字节.CPU 不存在直接读/写内存的情况,每次读/写内存都要经过Cache.

    1.3.6 Cache的工作模式

    • 数据回写(write-back):这是最高性能的模式,也是最典型的,在回写模式下,cache内容更改不需要每次都写回内存,直到一个新的 cache要刷新或软件要求刷新时,才写回内存.
    • 写通过(write-through):这种模式比回写模式效率低,因为它每次强制将内容写回内存,以额外地保存cache的结果,在这种模式写耗时,而读和回写模一样快,这都为了内存与cache相一致而付出的代价.
    • 预取 (prefectching):一些cache允许处理器对cache line进行预取,以响应读请求,这样被读取的相邻内容也同时被读出来,如果读是随机的,将会使CPU变慢,预取一般与软件进行配合以达到最高性能.

    二. 各级缓存中数据的包含关系

    2.1 整个缓存和主存间

      缓存里有的数据,主存中一定存在。

    2.2 各级缓存之间

      一级缓存中还分数据缓存(data cache,d-cache)和指令缓存(instruction cache,i-cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被cpu访问,所以一级cache间数据时独立的。

      一级没有的数据二级可能有也可能没有。因为一级缓存miss会接着访问二级缓存。

      一级有二级一定有,三级也一定有。因为一级的数据从二级中读上来的。在一级缺失二级命中时发生。

      二级没有的数据三级可能有也可能没有。因为二级确实会接着访问三级缓存。找不到会继续访问主存。

      二级有的数据三级一定有。在二级缺失三级命中时,数据会从三级缓存提到二级缓存。

      三级没有的数据,主存可能有也可能没有。三级缓存缺失,会访问主存,主存也缺失就要从外存访问数据了。

      三级缓存有的数据主存一定有。因为在三级缺失主存命中时,数据会从主存提到三级缓存中来。

    三. 各级缓存的大小设置

      一级缓存就是指CPU第一层级的高速缓存,主要是为了缓存指令和缓存数据,一级缓存的容量对CPU性能影响非常大,但是因为成本太高,所以一般容量特别小,也就256KB左右。

      二级缓存是CPU第二层级的高速缓存,对于CPU来说,二级缓存容量越大越好,它是直接影响CPU性能的,CPU每个核心都会有自己的缓存,一个CPU的二级缓存容量是所有核心二级缓存容量的总和。

      三级缓存就是CPU第三层级的高速缓存,主要是为了降低与内存进行数据传输时的延迟问题,三级缓存与一二级不同,三级缓存只有一个,它是所有核心共享,所以在CPU参数中可以看到,三级缓存相对于其他两级缓存来说都很大。

      由于缓存的设置与OS无关且透明,所以对于不同的体系架构下不同的处理器对待缓存区域的处理和方式都不同,不同的处理器也有不同的缓存设置值。从主流的处理器cache大小来看,一般一个cache line的大小都是固定的64B左右,这是经过经验得到的比较合理的大小,一般一级cache大小在数十KB左右,二级cache大小在数十到数百KB左右,而L3 cache大小在数MB左右。

    四. 各级缓存之间的数据放置与数据淘汰策略

      由于三级cache一般来说是运用于拥有多核的处理器,对于单核处理器来说二级cache就能够足够保持够高的cache命中率。所以一般的三级cache一般只针对于多核处理器。L1和L2级cache是处理器核所单独的内容。L1又可以看成是L2的cache。L2可以看成是L3级cache的cache。所以我们分两个部分讨论数据放置与数据淘汰策略。

    4.1 各级cache之间数据放置方式

      各级cache间的数据放置策略主要有三种。直接相连映射,全相联映射和组相联映射。将一个主存块存储到唯一的一个Cache行。对应的大小都是一个cache line的大小,一般来说是64B。

    4.1.1直接相连映射

      多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。cache的行号i和主存的块号j有如下函数关系:i=j mod m(m为cache中的总行数)。

    • 优点:硬件简单,容易实现
    • 缺点:命中率低, Cache的存储空间利用率低

    4.1.2全相联映射

      可以将一个主存块存储到任意一个Cache行。
    主存的一个块直接拷贝到cache中的任意一行上
    在这里插入图片描述

    • 优点:命中率较高,Cache的存储空间利用率高
    • 缺点:线路复杂,成本高,速度低

    4.1.3组相联映射

      可以将一个主存块存储到唯一的一个Cache组中任意一个行。
    将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的,即有如下函数关系:cache总行数m=u×v 组号q=j mod u

      组间采用直接映射,组内为全相联。硬件较简单,速度较快,命中率较高。是现代处理器中一般所常用的映射方式。

    4.2 数据淘汰策略

      Cache工作原理要求它尽量保存最新数据,当从主存向Cache传送一个新块,而Cache中可用位置已被占满时,就会产生Cache替换的问题。
    常用的替换算法有下面三种。

    4.2.1 LFU

      LFU(Least Frequently Used,最不经常使用)算法将一段时间内被访问次数最少的那个块替换出去。每块设置一个计数器,从0开始计数,每访问一次,被访块的计数器就增1。当需要替换时,将计数值最小的块换出,同时将所有块的计数器都清零。
    这种算法将计数周期限定在对这些特定块两次替换之间的间隔时间内,不能严格反映近期访问情况,新调入的块很容易被替换出去。

    4.2.2 LRU

      LRU(Least Recently Used,近期最少使用)算法是把CPU近期最少使用的块替换出去。这种替换方法需要随时记录Cache中各块的使用情况,以便确定哪个块是近期最少使用的块。每块也设置一个计数器,Cache每命中一次,命中块计数器清零,其他各块计数器增1。当需要替换时,将计数值最大的块换出。
      LRU算法相对合理,但实现起来比较复杂,系统开销较大。这种算法保护了刚调入Cache的新数据块,具有较高的命中率。LRU算法不能肯定调出去的块近期不会再被使用,所以这种替换算法不能算作最合理、最优秀的算法。但是研究表明,采用这种算法可使Cache的命中率达到90%左右。

    4.2.3 随机替换

      最简单的替换算法是随机替换。随机替换算法完全不管Cache的情况,简单地根据一个随机数选择一块替换出去。随机替换算法在硬件上容易实现,且速度也比前两种算法快。缺点则是降低了命中率和Cache工作效率。

    五. 整个缓存结构的访问流程

    5.1 查找命中

      处理器微架构访问Cache的方法与访问主存储器有类似之处。主存储器使用地址编码方式,微架构可以地址寻址方式访问这些存储器。Cache也使用了类似的地址编码方式,微架构也是使用这些地址操纵着各级Cache,可以将数据写入Cache,也可以从Cache中读出内容。只是这一切微架构针对Cache的操作并不是简单的地址访问操作。为简化起见,我们忽略各类Virtual Cache,讨论最基础的Cache访问操作,并借此讨论CPU如何使用TLB完成虚实地址转换,最终完成对Cache的读写操作。
    在这里插入图片描述
      Cache的存在使得CPU Core的存储器读写操作略微显得复杂。CPU Core在进行存储器方式时,首先使用EPN(Effective Page Number)进行虚实地址转换,并同时使用CLN(Cache Line Number)查找合适的Cache Block。这两个步骤可以同时进行。在使用Virtual Cache时,还可以使用虚拟地址对Cache进行寻址。为简化起见,我们并不考虑Virtual Cache的实现细节。

      EPN经过转换后得到VPN,之后在TLB中查找并得到最终的RPN(Real Page Number)。如果期间发生了TLB Miss,将带来一系列的严重的系统惩罚,我们只讨论TLB Hit的情况,此时将很快获得合适的RPN,并依此得到PA(Physical Address)。

      在多数处理器微架构中,Cache由多行多列组成,使用CLN进行索引最终可以得到一个完整的Cache Block。但是在这个Cache Block中的数据并不一定是CPU Core所需要的。因此有必要进行一些检查,将Cache Block中存放的Address与通过虚实地址转换得到的PA进行地址比较(Compare Address)。如果结果相同而且状态位匹配,则表明Cache Hit。此时微架构再经过Byte Select and Align部件最终获得所需要的数据。如果发生Cache Miss,CPU需要使用PA进一步索引主存储器获得最终的数据。

      由上文的分析,我们可以发现,一个Cache Block由预先存放的地址信息,状态位和数据单元组成。一个Cache由多个这样的Cache Block组成,在不同的微架构中,可以使用不同的Cache Block组成结构。我们首先分析单个Cache Block的组成结构。单个Cache Block由Tag字段,状态位和数据单元组成,如图所示。
    在这里插入图片描述

      其中Data字段存放该Cache Block中的数据,在多数处理器微架构中,其大小为32或者64字节。Status字段存放当前Cache Block的状态,在多数处理器系统中,这个状态字段包含MESI,MOESI或者MESIF这些状态信息,在有些微架构的Cache Block中,还存在一个L位,表示当前Cache Block是否可以锁定。许多将Cache模拟成SRAM的微架构就是利用了这个L位。有关MOESIFL这些状态位的说明将在下文中详细描述。在多核处理器和复杂的Cache Hierarchy环境下,状态信息远不止MOESIF。

      RAT(Real Address Tag)记录在该Cache Block中存放的Data字段与那个地址相关,在RAT中存放的是部分物理地址信息,虽然在一个CPU中物理地址可能有40,46或者48位,但是在Cache中并不需要存放全部地址信息。因为从Cache的角度上看,CPU使用的地址被分解成为了若干段,如图所示。

      这个地址也可以理解为CPU访问Cache使用的地址,由多个数据段组成。首先需要说明的是Cache Line Index字段。这一字段与Cache Line Number类似,CPU使用该字段从Cache中选择一个或者一组Entry。

      Bank和Byte字段之和确定了单个Cache的Data字段长度,通常也将这个长度称为Cache 行长度,上图所示的微架构中的Cache Block长度为64字节。目前多数支持DDR3 SDRAM的微架构使用的Cache Block长度都是64字节。部分原因是由于DDR3 SDRAM的一次Burst Line为8,一次基本Burst操作访问的数据大小为64字节。

      在处理器微架构中,将地址为Bank和Byte两个字段出于提高Cache Block访问效率的考虑。Multi-Bank Mechanism是一种常用的提高访问效率的方法,采用这种机制后,CPU访问Cache时,只要不是对同一个Bank进行访问,即可并发执行。Byte字段决定了Cache的端口位宽,在现代微架构中,访问Cache的总线位宽为64位或者为128位。

      剩余的字段即为Real Address Tag,这个字段与单个Cache中的Real Address Tag的字段长度相同。CPU使用地址中的Real Address Tag字段与Cache Block的对应字段和一些状态位进行联合比较,判断其访问数据是否在Cache中命中

    5.2 cache 不命中

      如果cache miss,就去下一级cache或者主存中去查找数据,并将查找到的数据采用上面的数据淘汰策略将数据替换到cache中。

    5.3 cache和主存数据一致性保持

      由于在发生cache miss时会产生数据替换,在运行过程中缓存的数据也可能会被修改。所以需要一个策略来保持数据在缓存和主存间的一致性。
    Cache写机制分为write through和write back两种。

    • Write-through(直写模式)在数据更新时,同时写入缓存Cache和主存存储。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。

    • Write-back(回写模式)在数据更新时只写入缓存Cache。只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储。此模式的优点是数据写入速度快,因为不需要写存储;缺点是一旦更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回。

    • Write-through(直写模式)在数据更新时,同时写入缓存Cache和主存存储。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。

    • Write-back(回写模式)在数据更新时只写入缓存Cache。只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储。此模式的优点是数据写入速度快,因为不需要写存储;缺点是一旦更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回。

    展开全文
  • 从模拟通信到数字通信,从计算机通信到移动通信,从有线通信到无线通信,从地面通信到卫星通信,从宏观电磁波通信到微观量子通信,从语音通信到视频通信,从...通过不同通信系统的案例,阐述其内在基本原理与主要技术。

    前言:

    模拟通信到数字通信,从计算机通信到移动通信,从有线通信到无线通信,从地面通信到卫星通信,从宏观电磁波通信到微观量子通信,从语音通信到视频通信,从人与人之间的通信到物与物间的通信。通过不同通信系统的案例,阐述其内在基本原理主要技术


    目录

    1. 什么是通信

    2. 通信系统的基本模型

    3. 无线通信系统技术大全与地图

    4. 通信世界三大金刚:数字通信、模拟通信、信号处理

    5. 这里有2个世界:数字与模拟

    6. 2个桥梁:数模转换与模数转换

    7. 这里有1个边缘地带:DSP数字信号处理

    8. 本系列的全部内容


    1. 什么是通信

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

    信源:信息的发送方,可以是“人”或物

    信宿:信息的接收方,可以是“人”或物

    信息:是万事万物的本质,是蕴含在事物的运动和变化中某种具体或抽象的东西,信息必须依附于一定的物质形式。比如“我爱你”,就是一条信息。

    消息:是信息的物质载体,比如语音、图像、温度、文字、数字、符号。

    在计算机世界里,消息可以称为数据。

    数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。

    数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据

    相同的信息,可以通过不同的消息/数据来承载。

    相同的消息,可以可以表达不同的信息。

    信号:信息传输形态,比如声音(空气的震动)、图形(写在纸面)、电信号(电子邮件的字符)

    媒介:信息传输的载体,比如空气、纸张、互联网等

     

    狭义的通信:是信源与信宿指之间通过某种电信号进行信息交流与传递的过程,称为(电信号)通信。

    模拟电信号:

    是指用连续变化的物理量信号,其信号的特征量如幅度,或频率,或相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。

    数字电信号:

    是指用离散变化的物理量信号,其信号的特征量如幅度,或频率,或相位随时间作离散变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为有限数值的信号。在计算机中,数字信号的大小常用有限位的二进制数表示。


    2. 通信系统的基本模型

    上述模型与通信原理中的描述不完全一样,基于如下的原因:

    (1)结合了计算机通信与无线/移动通信的模型

    (2)结合了具体的工程实践

     

    3. 无线通信系统技术大全与地图

     


    4. 通信世界三大金刚:数字通信、模拟通信、信号处理

    数字通信:数字电路、计算机原理、计算机通信

    模拟通信:模拟电路、射频通信

    信号处理:信号与系统、DSP数字信号处理


    5. 这里有2个世界:数字与模拟

    (1)以数字电路为基础的、以计算机为代表的、虚拟的、数字世界

    (2)以模拟电路为基础的、以射频通信为代表的、物理的、模拟世界


    6. 2个桥梁:数模转换与模数转换

    (1)数模转换:数字世界到模拟世界的桥梁

    (2)模数转换:模拟世界到数字世界的桥梁


    7. 这里有1个边缘地带:DSP数字信号处理

    (1)频率与时域的自由转换
    (2)数字与模拟的自由转换

     

    8. 物理层基本模型

    要解决的问题:

    (1)如何用电信号表示0和1?调制与解调

    (2)如何传递一连串的0和1?物理层成帧

    (3)如何区分数据还是控制?物理层编码

    (4)电信号干扰怎么办?纠错与检错

    (5)如何使用相同的电信号表示多个用户传递二进制比特? 多路复用


    9. 本系列的全部内容

    这里由浅入深的介绍通信的基本原理

    这里通过实际实际案例介绍通信原理中的各种概率、公式、原理

    《图解通信原理与案例分析-1:开篇-通信系统大全与快速概览》https://blog.csdn.net/HiWangWenBing/article/details/107889490

    《图解通信原理与案例分析-2:如何用电信号来表示和传输0和1,远远比我们想象的要复杂得多》https://blog.csdn.net/HiWangWenBing/article/details/107897420

    《图解通信原理与案例分析-3:“家书抵万金“看书信通信背后的通信原理》https://blog.csdn.net/HiWangWenBing/article/details/108036413

    《图解通信原理与案例分析-4:“烽火连三月“看烽火通信背后的通信原理》https://blog.csdn.net/HiWangWenBing/article/details/108045782

    《图解通信原理与案例分析-5:计算机中央处理器CPU与内存芯片之间的二进制数字信号通信》https://blog.csdn.net/HiWangWenBing/article/details/108054252

    《图解通信原理与案例分析-6:基于离散字符的RS232串口数字通信--收发双方独立预设置同步时钟》https://blog.csdn.net/HiWangWenBing/article/details/108071241

    《图解通信原理与案例分析-7:I2C总线和SPI总线通信--专用的时钟信号线进行数字时钟同步》https://blog.csdn.net/HiWangWenBing/article/details/108118277

    《图解通信原理与案例分析-8:以太网通信案例及其物理层工作原理深入剖析--物理层编码》https://blog.csdn.net/HiWangWenBing/article/details/108109404

    《图解通信原理与案例分析-9:SFP光通信案例--数字信号的2-ASK光调制解调》https://blog.csdn.net/HiWangWenBing/article/details/108239799

    《图解通信原理与案例分析-10:楼宇有线对讲电话机案例--模拟基带点对点通信详解》https://blog.csdn.net/HiWangWenBing/article/details/108248284

    《图解通信原理与案例分析-11:无线调幅广播电台AM案例--天线以及高频信号的发送》https://blog.csdn.net/HiWangWenBing/article/details/108312071

    《图解通信原理与案例分析-12:无线调幅广播AM案例--模拟幅度调制与点对多点广播通信详解》https://blog.csdn.net/HiWangWenBing/article/details/108568269

    《图解通信原理与案例分析-13:无线对讲机案例--频率调制实现语音点对点无线通信》https://blog.csdn.net/HiWangWenBing/article/details/108565043

    《图解通信原理与案例分析-14:“大哥大”与1G模拟蜂窝移动通信案例--频率调制与频分多址FDMA》https://blog.csdn.net/HiWangWenBing/article/details/108808207

    《图解通信原理与案例分析-15:2G GSM手机语音通话的工作原理--TDMA时分多址与GMSK调制》https://blog.csdn.net/HiWangWenBing/article/details/108853112

    《图解通信原理与案例分析-16:2G GSM基站的工作原理--时分多址与无线资源管理RRM》https://blog.csdn.net/HiWangWenBing/article/details/108853134

    《图解通信原理与案例分析-17:2G GPRS通用分组无线业务详解》https://blog.csdn.net/HiWangWenBing/article/details/109307799

    《图解通信原理与案例分析-18:低功耗、远距离物联网无线通信技术LoRa概述与扩频通信的基本原理》https://blog.csdn.net/HiWangWenBing/article/details/109550068

    《图解通信原理与案例分析-19:3G CDMA码分多址通信技术原理---码分多址、OVSF正交扩频码、伪随机码序列》https://blog.csdn.net/HiWangWenBing/article/details/109557854

    《图解通信原理与案例分析-20:4G LTE调制与多路复用技术:QAM正交幅度调制、多载波调制、O-FDM正交频分复用、SC-FDMA频分复用、IQ调制、混频》https://blog.csdn.net/HiWangWenBing/article/details/109561499

    《图解通信原理与案例分析-21:4G LTE多天线技术--天线端口、码流、分集Diveristy、波束赋形BF、空分复用MIMO、空分多址》https://blog.csdn.net/HiWangWenBing/article/details/110871535

    《图解通信原理与案例分析-22:4G LTE-A如何把速率提升到1G--多载波聚合技术与授权频谱辅助接入LAA》https://blog.csdn.net/HiWangWenBing/article/details/111495412

    《图解通信原理与案例分析-23:5G NR的三大场景、四大基本特征、三组关键技术、两大网络架构演进、八大组网方案》https://blog.csdn.net/HiWangWenBing/article/details/111414505

    《图解通信原理与案例分析-24:5G NR 增强移动宽带eMBB是如何提升空口速率和频谱利用率的》https://blog.csdn.net/HiWangWenBing/article/details/111499775

    《图解通信原理与案例分析-25:5G NR超可靠低时延通信URLLC是通过什么技术降低延时的?》https://blog.csdn.net/HiWangWenBing/article/details/111647644

    《图解通信原理与案例分析-26: 5G NR是如何支持海量机器类通信mMTC的?移动通信对物联网的支持》https://blog.csdn.net/HiWangWenBing/article/details/111750743

    《图解通信原理与案例分析-27: 卫星通信系统及关键技术》https://blog.csdn.net/HiWangWenBing/article/details/111873896

    《图解通信原理与案例分析-28:四大全球卫星导航系统GNSS的基本原理与技术对比---中国的北斗、美国的GPS、欧洲的伽利略、俄罗斯的格洛纳斯》https://blog.csdn.net/HiWangWenBing/article/details/111939706

    《图解通信原理与案例分析-29:埃隆.马斯克的“星链”Starlink计划是卫星语音通信向卫星互联网的演进》https://blog.csdn.net/HiWangWenBing/article/details/111999900

    《图解通信原理与案例分析-30:6G-天地互联、陆海空一体、全空间覆盖的超宽带移动通信系统》https://blog.csdn.net/HiWangWenBing/article/details/112000040

    《图解通信原理与案例分析-31:量子通信,信息的传输载体由确定性的宏观世界走向不确定性的微观世界》https://blog.csdn.net/HiWangWenBing/article/details/112058664

    ............


     

     

    展开全文
  • 文章目录内存的存储SRAMDRAMDRAM内部以及与内存控制模块的交互(重点)DRAM与内存存储CPU内存的交互(重点)磁盘磁盘和CPU内存的交互参考文献 之前在介绍linux——文件的时候讲了一下磁盘及其工作原理。然后又在...
  • 进程通信——通过共享内存实现

    千次阅读 2019-10-30 11:18:28
    Linux系统中用c通过共享内存实现进程通信 一、内存共享 1、什么是内存共享 就是OS在物理内存中开辟一大段缓存空间,进程直接使用地址来共享读写的。 管道、消息队列调用API来读写不同。 因为直接读取内存中的数据...
  • CPU的组成 内存的组成 内存的硬件结构 内存的物理地址编码 内存的寻址 内存管理:分段 ...什么是内存分段 ...为什么发明了分段式内存...CPU如何对一个分页管理的内存系统进行寻址? 中断: 缺页中断 什么是缺页中...
  • Android10.0 Binder通信原理(二)-Binder入门篇

    万次阅读 多人点赞 2020-03-30 07:44:16
    Android10.0 Binder通信原理(九)-AIDL Binder示例 Android10.0 Binder通信原理(十)-AIDL原理分析-Proxy-Stub设计模式 Android10.0 Binder通信原理(十一)-Binder总结 《HwBinder通信原理》 HwBinder入门篇-Android...
  • 串口通信的基本概念及原理理解 2017/11/12 22:52 1.同步通信和异步通信: 异步通信:指通信的发送接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致,即...
  • CPU缓存Java内存模型

    千次阅读 2018-09-19 20:45:47
    CPU多级缓存 局部性原理: 1)时间局部性:如果某个数据被访问,那么在不久的将来它很可能再次被访问; 2)空间局部性:如果某个数据被访问,那么它相邻的数据很快也可能被访问。 缓存一致性(MESI) 定义了四...
  • cpu运作原理

    千次阅读 2020-04-02 12:34:26
    在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。 CPU 还不了解 CPU 吗?现在就带你了解一下 ...
  • 文章目录1 传统通信模式1.1传统网络通信过程2 RDMA基本原理与优势2.1 基本原理3 RDMA原理详解3.1 支持RDMA的网络协议3.2 核心概念3.2.1 基本概念3.2.2 RDMA工作流程RDMA双边操作(send/receive)RDAM单边操作(read...
  • 【计算机组成原理CPU是什么

    千次阅读 多人点赞 2020-08-20 17:18:05
    CPU是什么CPU是什么?CPU 实际做什么?CPU的内部结构CPU 是寄存器的集合体计算机语言汇编语言程序计数器条件分支和循环机制标志寄存器通过地址和...这些晶体管使它能够执行运行存储在系统内存中的程序所需的计算, 所
  • 前文拆解了2G GSM手机语音通话的工作原理开始,重点关注单个终端的通信技术:语音编码、信道编码、逻辑信道、物理信道、TDMA时分多址、GMSK调制。 本章将拆解2G GSM基站的工作原理以及多终端共享信道场景下的技术,...
  • 多线程、cpu本质原理

    千次阅读 2019-04-07 11:48:44
    2、cpu基本结构,cpu如何和其他设备(网卡、显卡、声卡、磁盘、usb)通信。 3、java虚拟机原理。 4、多线程的安全问题的本质原因。 下面一一记录,本人文学水平有限,大多都是口水话,勿怪。 1、目前的...
  • CPU与内存的那些事

    千次阅读 2015-12-14 19:32:59
    下面是网上看到的一些关于内存CPU方面的一些很不错的文章. 整理如下: 转: CPU的等待有多久? 原文标题:What Your Computer Does While You Wait 原文地址:http://duartes.org/gustavo/blog/ [注:...
  • Socket通信原理

    万次阅读 多人点赞 2019-06-12 21:29:24
    Socket通信原理 对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问: 什么是TCP/IP、UDP? Socket在哪里呢? Socket是什么呢? 你会使用它们...
  • CPU和GPU之间的通信

    千次阅读 2017-03-29 11:34:09
    渲染流水线的起点是CPU,即应用阶段。大致可分为下面三个阶段: 1.把数据加载到显存 2.设置渲染状态 3.调用DrawCall 1.把数据加载到显存 所有渲染所需要的数据都需要从硬盘(Hard Disk Drive, HDD)中加载到...
  • Socket通信原理和实践

    万次阅读 多人点赞 2017-05-03 15:19:20
    我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么web服务器通信的?当你用QQ聊天时,QQ进程怎么服务器或你好友所在的QQ进程通信?这些都得靠socket?那...
  • 前面的几个案例,如CPU与内存外设的通信、I2C串口通信、SPI串口通信、Uart串口通信、RS232串口通信、以太网通信、SFP光通信,都是纯数字通信。 从本文开始,将拆解模拟通信,模拟通信系统分为三大类:模拟基带通信...
  • 一、什么是CPU缓存 1. CPU缓存的来历 众所周知,CPU是计算机的大脑,它负责执行程序...CPU的频率大大提升,但内存总线的频率与内存芯片的性能却没有得到成比例的提升。并不是因为造不出更快的内存,只是因为太贵了...
  • volatile实现原理分析
  • ARM之CPU设计原理

    千次阅读 2018-05-12 16:29:19
     地址总线的位数决定CPU寻址的范围(即内存大小),数据总线的位数决定CPU单次通信能交换的信息数量。 总线速度决定CPU和外设互换信息的速度。注意: CPU的地址总线和数据总线可以不同(典型代表就是51单片机),...
  • 深入理解内存原理简介

    万次阅读 多人点赞 2016-12-27 23:21:04
    两大部分组成,随着集成电路的发展,目前CPU芯片集成了一些其它逻辑功能部件来扩充CPU的功能,如浮点运算器、内存管理单元、cache和MMX等。下面2张图分别是8086和Pentium CPU的结构图。  .   对于一个...
  • CPU是通常大家最先关注的性能指标,宏观维度有核的CPU使用率,微观有函数的CPU cycle数,根据性能的模型,性能规格与CPU使用率是互相关联的,规格越高,CPU使用率越高,但是处理器的性能往往又受到内存带宽、Cache...
  • 32位的CPU与64位CPU 以下内容摘自维基百科: 64 位 CPU 是指 CPU 内部的通用寄存器的宽度为 64 比特,支持整数的 64 比特宽度的算术逻辑运算。那么 32 位 CPU 同理。 一个 CPU,联系外部的数据总线地址...
  • 如上图: SOC中包含了CPU,Flash,...CPU说的32位就是数据总线的位数为32位,单次通信数量为2的32次方注意:CPU的位数指的是数据总线位数,而决定最大支持内存的则是地址总线位数。举例:内存为4G,地址总线位数为32,
  • 利用共享内存实现进程间通信

    千次阅读 2015-06-20 15:50:59
    进程间通信的方法很多,共享内存便是其中的一种,其原理就是把一块物理内存,映射到两个不同进程的虚拟地址空间,这样一个进程对此快内存的操作就能被另一个进程看到。 windows下,使用共享内存有一下几个函数: ...
  • 基于ZYNQ的双核CPU之间的通信

    千次阅读 2020-06-23 16:28:46
    基于ZYNQ的AMP架构双核应用程序开发项目简述CPU0代码CPU1代码运行结果双核CPU的固化SD卡总结 项目简述 我们都知道ZYNQ中有两个ARM核,但是如何使ZYNQ运行这两个ARM核,以及双核之间的数据如何进行交互是非常重要的...
  • ANR 原理与实战技巧

    千次阅读 2017-09-02 12:01:33
    感谢大家的支持鼓励。  如果你喜欢这篇文章,或者喜欢这个图片,或者有所感悟,或者仅仅因为喜欢代码GG,分享此文到技术群里,以便此文的价值最大化。  再次感谢大家的鼎力支持,抱拳拱手,难表胜意。俯首向前...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,987
精华内容 40,394
关键字:

内存与cpu通信原理

友情链接: WriteReadFile.rar