[RAM] RAM 突发传输(Burst ,Burst size, length) | Burst 读写过程与时序 精讲

news2024/11/18 20:48:37

主页: 元存储博客

文章目录

    • 前言
    • 1. Burst 基本概念
      • 含义
      • Burst Width &Burst Length
    • 2. CPU Burst mode
    • 3. 总线 burst mode
      • 总线的仲裁
      • 总线突发传输时序
    • 4. Burst Chop (突发终止)
    • 5. Burst Mode 应用
      • 什么时候用突发模式
    • 总结

前言

在DMA(直接内存访问)和CPU(中央处理器)共用总线时,会使用两种传输模式:突发模式和循环挪用模式。

今天重点讲讲突发模式。

1. Burst 基本概念

含义

循环挪用模式是常用的一种模式。在这种模式下,每次DMA请求就会申请一次总线,传输一个字节的数据。适用于小数据量传输。

突发模式则是在DMA成功申请到总线后,会连续传输数据直到完成。例如,如果设置了4个节拍的突发传输,并且传输宽度为8位,那么一个DMA请求会连续传输4个字节的数据,相当于单次传输的4倍。

这两种传输模式在DMA和CPU共用总线时起到了不同的作用,循环挪用模式适用于传输少量数据的情况,而突发模式则适用于需要一次性传输大量数据的情况。

Burst Width &Burst Length

Burst Size(突发大小):
指定每个数据项的大小,即以字节为单位的数据位宽。常见的突发大小有:

  • 1字节(BYTE)

  • 2字节(HALFWORD)

  • 4字节(WORD)

  • 8字节(DOUBLEWORD)

Burst Length(简称BL,指突发长度):指定在一个传输事务中要传输的数据项的数量。可以是固定的值,也可以是从主设备发送的上界值。
DDR4 的 BL 都是 8, 而DDR5 的 BL 是 16.

举例: 32个字节可以分为32 * 8位, 这里 Burst Size 是 8位(1 BYTE), Burst Length是 32.

2. CPU Burst mode

CPU读存储单元
在这里插入图片描述Data communication between CPU and memory
图片来源: https://img.brainkart.com/

  1. 提供地址,将其送入存储器的地址寄存器
  2. 经译码电路选取相应的存储单元
  3. 从存储单元读出的信息要先送入存储器的数据寄存器
  4. 传送给CPU

读数据前
在这里插入图片描述
读数据后
在这里插入图片描述
图片来源: https://img.brainkart.com/

写的过程相反, 可以自行在脑海里想象下。

如果使用Burst模式,就只要给出第一个列地址和突发长度,就能自动连续读出第一行的每一个数据,可以减少发送地址的交互次数,提高效率。

3. 总线 burst mode

AXI总线是支持burst传输的。

总线的仲裁

[文献2] 总线矩阵在主控总线之间起到了仲裁管理的作用,通过循环调度算法给外设分配总线使用时间片。它能够协调不同外设之间对总线的访问,保证每个外设都能够有机会进行数据的访问。

在突发传输期间,总线会被锁定,只有进行突发传输的外设能够使用总线。完成突发传输后,总线矩阵会重新分配权限,以满足其他外设的请求。

总线突发传输时序

  1. AXI 读突发传输时序
    在这里插入图片描述
    图片来源: 知乎 文献5
    可以看到:
  • 在T2时刻,ARADR通道握手成功,并成功传输了地址信息。
  • 从设备根据该地址信息准备相应的读取数据。
  • RVALID 表示返回一个数据,RREADY表示主设备取走了这个数据,这被称为一次传输。
  • 当返回最后一笔数据时,相应的RLAST信号也需要被拉高,以表示最后一笔数据已经传输完毕,整个传输到此结束。
  1. AXI 写突发传输时序
    在这里插入图片描述
    当主设备给出写地址,从设备开始准备,接着给出写数据。

返回最后一个写数据时,WLAST信号被拉高,然后从设备通过返回BRESP和BVALID信号,表示写操作已完成。

4. Burst Chop (突发终止)

[文献4] Burst mode 一次寻址,传输多次数据。BL个数据对应的地址分别是ADDR,ADDR+1,ADDR+2…ADDR+BL。

DDR3的突发长度是8,DDR2的突发长度是4/8。针对突发长度为 4 的场景,为了向下兼容,DDR3将8-bit中的后4bit屏蔽掉,这就叫作burst chop4 mode(BC4)

在这里插入图片描述
图片来源: https://blog.csdn.net/weixin_42005993/article/details/103827566

5. Burst Mode 应用

什么时候用突发模式

适用于大数据量传输。
[文献1] 在数据完全封装/解封之前中断操作可能导致数据损坏的危险,主要是由于封装和解封过程需要对数据进行处理和转换。如果在封装过程中,数据的一部分已经被封装,而另一部分尚未完成封装,中断操作会导致封装不完整的数据被使用或传输,从而导致数据损坏。

类似地,在解封过程中,如果数据的一部分已经被解封,而另一部分尚未解封,中断操作会导致解封不完整的数据被使用或处理,同样导致数据损坏。

为确保数据一致性,可以采用生成突发传输的方式来配置数据流。这意味着在封装和解封时,必须确保数据一次性地完全封装或解封完成,避免部分数据未处理的情况。这种方式可以确保数据的完整性和一致性,减少数据损坏的风险。

总结


参考文献

  1. https://www.zhihu.com/question/53854189
  2. https://www.xiaopingtou.cn/q-104415.html
  3. https://zhuanlan.zhihu.com/p/643207749
  4. https://blog.csdn.net/weixin_42005993/article/details/103827566
  5. https://zhuanlan.zhihu.com/p/641978200

声明
本文仅为学习交流目的。
文中部分文字和图片来源于互联网,列在参考的文献,但可能有遗漏。如有侵权,请告知我删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MD5算法:密码学中的传奇

title: MD5算法:密码学中的传奇 date: 2024/3/15 20:08:07 updated: 2024/3/15 20:08:07 tags: MD5起源算法原理安全分析优缺点比较技术改进示例代码应用趋势 MD5算法起源: MD5(Message Digest Algorithm 5)算法是由MIT的计算机…

Web框架盘点:好用又实用的技术解析

​随着2024年的临近,我们满怀热情地为新的一年制定计划,探索未来一年可以学习或实现的目标。此时是探索未来一年值得学习的框架、理解其功能和特点的最佳时机。我们将以2023年JavaScript新星为指南,力求保持客观公正的态度。对于每个值得关注…

调皮的String及多种玩法(下部)

👨‍💻作者简介:👨🏻‍🎓告别,今天 📔高质量专栏 :☕java趣味之旅 欢迎🙏点赞🗣️评论📥收藏💓关注 💖衷心的希…

修复 error Delete `␍` prettier/prettier 错误

修复 error Delete ␍ prettier/prettier 错误 问题背景报错信息报错原因解决办法修改CRLF----针对单个文件yarn run lint --fix 一键修复(官方提供) 问题背景 今天在使用 openapi 自动生成前端接口代码的时候,爆了一个类似 eslint 规范的错…

C/C++炸弹人游戏

参考书籍《啊哈,算法》,很有意思的一本算法书,小白也可以看懂,详细见书,这里只提供代码和运行结果。 这里用到的是枚举思想,还有更好地搜索做法。 如果大家有看不懂的地方或提出建议,欢迎评论区…

外包干了9天,技术退步明显。。。。。

先说一下自己的情况,本科生,2018年我通过校招踏入了南京一家软件公司,开始了我的职业生涯。那时的我,满怀热血和憧憬,期待着在这个行业中闯出一片天地。然而,随着时间的推移,我发现自己逐渐陷入…

Django之Cookie

Django之Cookie 目录 Django之Cookie介绍Django操作Cookie设置Cookie浏览器查看Cookie 获取Cookie设置超时Cookie注销Cookie 模拟登录验证登录验证装饰器登录验证装饰器-升级版 介绍 当我们上网使用社交媒体或者购物时,浏览器需要通过一种方式来记住我们。想象一下…

Java宝典-异常

目录 1. 异常的分类1.1 运行时异常1.2 编译时异常 2. 异常的抛出2.1 throw2.2 throws 3. 异常的捕获3.1 try-catch3.2 finally 4. 异常执行的过程5. 自定义异常 在Java中,异常(Exception)是指程序发生不正常的行为,异常其实就是一个一个的类。 1. 异常的…

算法-贪心-122. 糖果传递

题目 有 n个小朋友坐成一圈,每人有 a[i]个糖果。 每人只能给左右两人传递糖果。 每人每次传递一个糖果代价为 1。 求使所有人获得均等糖果的最小代价。 输入格式 第一行输入一个正整数 n,表示小朋友的个数。 接下来 n 行,每行一个整数…

数据结构 之 优先级队列(堆) (PriorityQueue)

🎉欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨ 🎉感谢各位读者在百忙之中抽出时间来垂阅我的文章,我会尽我所能向的大家分享我的知识和经验📖 🎉希望我们在一篇篇的文章中能够共同进步!!&…

langchain学习(十二)

Chat Messages | 🦜️🔗 Langchain ChatMessageHistory:基类,保存HumanMessages、AIMessages from langchain.memory import ChatMessageHistory history ChatMessageHistory() history.add_user_message("hi!") his…

使用docker-compose管理freeswitch容器

概述 之前的文章我们介绍过如何将freeswitch做成docker镜像,也使用命令行模式正常启动了fs的docker容器。 但是当我们需要同时管理多个docker容器的时候,还是使用docker-compose更简单。 环境 CENTOS 7 docker engine:Version 25.0.3 D…

【深度学习与神经网络】MNIST手写数字识别1

简单的全连接层 导入相应库 import torch import numpy as np from torch import nn,optim from torch.autograd import Variable import matplotlib.pyplot as plt from torchvision import datasets, transforms from torch.utils.data import DataLoader读入数据并转为ten…

IDEA中在Service中开启管理多个微服务

问题 : 现在的service窗口里面什么都没有 ; 解决 : 1.没有service情况 : 点击View->Tool Windows -> Services,打开Service 2 . 在Service栏里操作 : 点击Add service , 然后选择第一个 : 然后在出来的选项中找到自己的项目类型 , 点击一下…

贪心算法(算法竞赛、蓝桥杯)--糖果传递

1、B站视频链接&#xff1a;A31 贪心算法 P2512 [HAOI2008] 糖果传递_哔哩哔哩_bilibili 题目链接&#xff1a;[HAOI2008] 糖果传递 - 洛谷 #include <bits/stdc.h> using namespace std; const int N1000005; int n,a[N],c[N]; long long b,ans;int main(){scanf(&quo…

Docker Compose基本配置及使用笔记

Docker Compose基本配置及使用笔记 简介 Docker Compose 是一个用于定义和运行多个 Docker 容器应用程序的工具。它使用 YAML 文件来配置应用程序的服务&#xff0c;并通过简单的命令集管理这些服务的生命周期。 1.步骤1 代码如下&#xff1a;docker-compose.yml放在虚拟机roo…

Mac版Jmeter安装与使用模拟分布式环境

Mac版Jmeter安装与使用&模拟分布式环境 1 安装Jmeter 1.1 安装Java环境 国内镜像地址&#xff1a;https://repo.huaweicloud.com/java/jdk/11.0.29/jdk-11.0.2_osx-x64_bin.dmg 下载dmg后&#xff0c;双击进行安装。 配置环境变量&#xff1a; # 1 打开环境变量配置文件…

js实现扫描线填色算法使用canvas展示

算法原理 扫描线填色算法的基本思想是&#xff1a;用水平扫描线从上到下扫描由点线段构成的多段构成的多边形。每根扫描线与多边形各边产生一系列交点。将这些交点按照x坐标进行分类&#xff0c;将分类后的交点成对取出&#xff0c;作为两个端点&#xff0c;以所填的色彩画水平…

结构体联合体枚举和位段

文章目录 结构体结构体类型的声明特殊的声明 结构的自引用结构体变量的定义和初始化结构体内存对齐为什么要内存对齐结构体传参结构体实现位段&#xff08;位段的填充&可移植性&#xff09;位段位段的内存分配空间如何开辟位段的跨平台问题位段的应用 枚举枚举类型的定义枚…

网络学习:IPV6报文详解

目录 前言&#xff1a; IPV6报文格式 IPV6基本报头 IPV6扩展报头 前言&#xff1a; 首先IPV6是属于网络层的一种协议&#xff0c;作为下一代IP协议&#xff0c;而想要学习一种协议就必不可少的需要去具体的研究协议报文中的各个参数以及其对应的功能作用。 IPV6报文格式 I…