当前位置: 首页 > news >正文

【总线】AXI4第八课时:介绍AXI的 “原子访问“ :独占访问(Exclusive Access)和锁定访问(Locked Access)

        大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁。

        上课时我们讲了AXI的额外的控制信息,本章节继续讲解AXI的 "原子访问" :独占访问(Exclusive Access)和锁定访问(Locked Access)

        这里会有一系列的课程,和大家分享AMBA总线家族,欢迎大家一起学习,收藏点赞。

  系列文章

【总线】AMBA总线架构的发展历程-CSDN博客

【总线】设计fpga系统时,为什么要使用总线?-CSDN博客

【总线】AXI总线:FPGA设计中的通信骨干-CSDN博客

【总线】AMBA总线家族的明星成员:AXI协议简介-CSDN博客

【总线】AXI4第一课时:揭秘AXI4总线的五大独立通道-CSDN博客

【总线】AXI4第二课时:深入AXI4总线的基础事务-CSDN博客

【总线】AXI4第三课时:握手机制-CSDN博客

【总线】AXI4第五课时:信号描述-CSDN博客

【总线】AXI4第六课时:寻址选项深入解析-CSDN博客

【总线】AXI4第七课时:AXI的额外的控制信息(PROT和CACHE)-CSDN博客

【总线】AXI4第八课时:介绍AXI的 “原子访问“ :独占访问(Exclusive Access)和锁定访问(Locked Access)-CSDN博客


         这些机制对于实现复杂的内存操作和确保数据的一致性非常重要。下面我先通过举例来帮助理解这些概念。

举例理解

独占访问(Exclusive Access)

        独占访问是一种机制,允许一个主设备(如CPU)告诉系统它想要对某个内存位置进行一系列操作,而这些操作不希望被其他设备干扰。这种访问通常用于实现信号量(semaphore)或锁(lock)的逻辑。

        例子:假设有两个CPU核心,它们都需要修改内存中的同一个变量。如果第一个核心开始读取这个变量并计划更新它,它可以使用独占访问来确保在它完成更新之前,第二个核心不能访问这个变量。这样,第一个核心就可以执行如下操作:

  1. 发送一个独占读取请求到内存。
  2. 内存响应并记录这个核心的请求。
  3. 第一个核心随后发送一个独占写入请求,如果在此期间没有其他核心访问过这个地址,内存就会接受这个写入请求并更新数据。

        如果第二个核心尝试访问这个地址,它会收到一个失败的响应,因为它不是第一个发出独占请求的核心。

锁定访问(Locked Access)

        锁定访问是一种机制,确保一系列操作在没有其他干扰的情况下完成。这通常用于需要顺序执行多个步骤的场景,例如,当一个核心需要更新多个连续的内存位置时。

        例子:假设有一个核心需要更新一个结构体中的几个字段,这些字段位于内存中的连续位置。为了避免在更新过程中其他核心读取或修改这些字段,核心可以使用锁定访问:

  1. 核心发送一个锁定读取请求到内存。
  2. 内存响应并确保在锁定序列完成之前,不会接受来自其他核心的访问请求。
  3. 核心按顺序发送锁定写入请求来更新每个字段。
  4. 一旦所有更新完成,核心发送一个解锁请求,内存随后解除锁定状态。

        在这个锁定序列中,即使其他核心尝试访问这些内存位置,它们也会被告知当前这些位置被锁定,不能进行访问。

原理

原子访问

关于原子访问

为了支持原子访问原语的实现,ARLOCK[1:0] 或 AWLOCK[1:0] 信号提供了独占访问和锁定访问。表显示了ARLOCK[1:0] 和 AWLOCK[1:0] 信号的编码。

原子访问编码

ARLOCK[1:0]

AWLOCK[1:0]

访问类型

b00

b00

普通访问

b01

b01

独占访问

b10

b10

锁定访问

b11

b11

保留

独占访问

        独占访问机制允许实现信号量类型的操作,而无需要求总线在整个操作期间被特定主设备锁定。独占访问的优点是,信号量类型的操作不会影响关键的总线访问延迟或可达到的最大带宽。

        ARLOCK[1:0] 或 AWLOCK[1:0] 信号选择独占访问,RRESP[1:0] 或 BRESP[1:0] 信号指示独占访问的成功或失败。

        从设备必须有额外的逻辑来支持独占访问。AXI协议提供了一个故障安全机制,以指示当一个主设备尝试对不支持它的从设备进行独占访问时。

独占访问过程

        独占访问的基本过程如下:

        主设备对地址位置执行独占读取。

        在某个后续时间点,主设备尝试通过在同一地址位置执行独占写入来完成独占操作。

        主设备的独占写入访问被标记为:

        如果在读取和写入访问之间没有其他主设备写入该位置,则为成功。

        如果在读取和写入访问之间有其他主设备写入了该位置,则为失败。在这种情况下,地址位置不会被更新。

        请注意,主设备可能不会完成独占操作的写入部分。独占访问监控硬件必须仅监控每个事务ID的一个地址。因此,如果主设备没有完成独占操作的写入部分,随后的独占读取将改变被监控的地址。

主设备视角的独占访问

        主设备通过执行独占读取来启动独占操作。这通常会从从设备返回EXOKAY响应,表示从设备记录了要监控的地址。

        请注意,如果主设备尝试对不支持独占访问的从设备执行独占读取,从设备将返回OKAY响应而不是EXOKAY响应。主设备可以将此视为错误情况,表示不支持独占访问。建议主设备不要执行这部分独占操作的写入部分。

        在独占读取之后的一些时间点,主设备尝试对同一位置执行独占写入。如果自独占读取以来该位置没有变化,独占写入操作就会成功。从设备返回EXOKAY响应,独占写入更新内存位置。

        如果自独占读取以来地址位置已经改变,独占写入尝试将失败,从设备返回OKAY响应而不是EXOKAY响应。独占写入尝试不会更新内存位置。

        主设备可能不会完成独占操作的写入部分。如果发生这种情况,从设备将继续监控地址的独占性,直到另一个独占读取启动新的独占访问。

        主设备在读取部分完成后,不得开始独占访问的写入部分。

从设备视角的独占访问

        不支持独占访问的从设备可以忽略 ARLOCK[1:0] 和 AWLOCK[1:0] 信号。它必须为普通和独占访问提供OKAY响应。

        支持独占访问的从设备必须具有监控硬件。建议这样的从设备为每个可以访问它的独占功能主设备ID都有一个监控单元。单端口从设备可以有一个标准独占访问监控器在从设备外部,但多端口从设备可能需要内部监控。

        独占访问监控器记录任何独占读取操作的地址和 ARID 值。然后它监控该位置,直到对该位置发生写入或直到另一个具有相同 ARID 值的独占读取将监控器重置为不同的地址。

        当发生具有给定 AWID 值的独占写入时,监控器检查是否该地址正在被监控独占性。如果是,那么这意味着自独占读取以来该位置没有发生写入,独占写入继续进行,完成独占访问。从设备返回EXOKAY响应给主设备。

        如果地址在独占写入时不再被监控,这意味着以下之一:

        自独占读取以来,该位置已被更新。

        监控器已被重置为另一个位置。

        在这两种情况下,独占写入不得更新地址位置,从设备必须返回OKAY响应而不是EXOKAY响应。

独占访问限制

        以下限制适用于独占访问:

        具有给定ID的独占写入的大小和长度必须与具有相同ID的前一个独占读取的大小和长度相同。

        独占访问的地址必须与事务中的总字节数对齐。

        独占读取和独占写的地址必须相同。

        独占访问的读取部分的 ARID 字段必须与写入部分的 AWID 匹配。

        独占访问的读取和写入部分的控制信号必须相同。

        独占访问突发中要传输的字节数必须是2的幂,即1、2、4、8、16、32、64或128字节。

        独占突发中可以传输的最大字节数是128。

        ARCACHE[3:0] 或 AWCACHE[3:0] 信号的值必须保证监控独占访问的从设备能看到该事务。例如,被从设备监控的独占访问不能有 ARCACHE[3:0] 或 AWCACHE[3:0] 值,表明该事务是可缓存的。

        未遵守这些限制将导致不可预测的行为。

不支持独占访问的从设备

        响应信号 BRESP[1:0] 和 RRESP[1:0] 包括对成功普通访问的OKAY响应和对成功独占访问的EXOKAY响应。这意味着不支持独占访问的从设备可以提供OKAY响应来指示独占访问失败。

        请注意,对不支持独占访问的从设备的独占写入总是更新内存位置。

        对支持独占访问的从设备的独占写入只有在独占写入成功时才更新内存位置。

锁定访问

        当交易的 ARLOCK[1:0] 或 AWLOCK[1:0] 信号显示它是锁定传输时,互连体必须确保只有在来自同一主设备的解锁传输完成之前,才允许该主设备访问从设备区域。互连体中的仲裁器用于执行此限制。

        当主设备开始一系列锁定的读写交易时,它必须确保没有其他未完成的交易在等待完成。

        任何将 ARLOCK[1:0] 或 AWLOCK[1:0] 设置为表示锁定序列的交易都会强制互连体锁定以下交易。因此,锁定序列必须始终以没有将 ARLOCK[1:0] 或 AWLOCK[1:0] 设置为表示锁定访问的最终交易结束。这个最终交易被包括在锁定序列中,并有效地移除了锁定。

        在完成锁定序列时,主设备必须确保所有先前的锁定交易都已完成,然后再发出最终的解锁交易。然后,它必须确保最终解锁交易已完全完成,才能开始任何进一步的交易。

        主设备必须确保锁定序列中的所有交易都有相同的 ARID 或 AWID 值。

        请注意,锁定访问要求互连体在锁定序列进行时防止任何其他交易发生,因此可能会影响互连体性能。建议仅使用锁定访问来支持旧设备。

        推荐但不是强制性的限制包括:

        将所有锁定交易序列保持在相同的4KB地址区域。

        将锁定交易序列限制为两次交易。

为什么这些机制重要?

  • 数据一致性:在多核心系统中,独占访问和锁定访问确保了数据操作的原子性,防止了数据不一致的问题。
  • 性能优化:通过减少对共享资源的争用,这些机制可以帮助提高系统的整体性能。
  • 复杂操作支持:它们允许实现复杂的同步机制,这对于构建可靠的并发系统至关重要。

        理解这些概念对于设计和理解现代多核心处理器中的内存一致性和同步机制非常重要。

相关文章:

【总线】AXI4第八课时:介绍AXI的 “原子访问“ :独占访问(Exclusive Access)和锁定访问(Locked Access)

大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁…...

Java面试八股之MYISAM和INNODB有哪些不同

MYISAM和INNODB有哪些不同 MyISAM和InnoDB是MySQL数据库中两种不同的存储引擎,它们在设计哲学、功能特性和性能表现上存在显著差异。以下是一些关键的不同点: 事务支持: MyISAM 不支持事务,没有回滚或崩溃恢复的能力。 InnoDB…...

大数据面试题之数据库(2)

数据库中存储引擎MvlSAM与InnoDB的区别 Mylsam适用于什么场景? InnoDB和Mvlsam针对读写场景? MySQL Innodb实现了哪个隔离级别? InnoDB数据引擎的特点 InnoDB用什么索引 Hash索引缺点 数据库索引的类型,各有什么优缺点? MySQL的索引有哪些?索引…...

1421-04SF 同轴连接器

型号简介 1421-04SF是Southwest Microwave的2.4 mm 同轴连接器。这款连接器外壳和耦合螺母: 不锈钢 CRES 合金 UNS-S30300, 按照 ASTM A582 标准制造,并按照 ASTM A967-99 标准进行钝化处理。金镀层可以提供更低的接触电阻和更好的耐腐蚀性。 型号特点 50 欧姆密封…...

第一节-k8s架构图

一个Deployment,可以由多个不同Node下的Pod组成,每个Pod又由多个Container组成。 区分Deployment是用Labels(key:value),区分Pod是用PodName,区分Container是用ContainerName。 一个Node可以包含多个不同Deployment中的pod&…...

【Proteus】按键的实现『⒉种』

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…...

Windows 11 安装 Python 3.11 完整教程

Windows 11 安装 Python 3.11 完整教程 一、安装包安装 1. 下载 Python 3.11 安装包 打开浏览器,访问 Python 官方下载页面。点击“Download Python 3.11”,下载适用于 Windows 的安装包(Windows installer)。 2. 安装 Python 3.11 运行下载的安装包 python-3.11.x-amd6…...

外呼系统的功能有哪些

1. 自动拨号 - 系统能够自动拨打电话,避免了手动拨号的繁琐过程。 - 可以根据设定的电话号码列表自动拨号,提高电话接触率和工作效率。 2. 呼叫分配 - 根据事先设定的规则和策略,将呼叫分配给不同的坐席或代表。 - 确保呼叫平均分配和资源优…...

【C语言】C语言 4 个编译过程详解

C语言的编译过程涉及几个关键步骤、概念和细节,每个步骤都有助于将人类可读的源代码转换为可执行的机器码。以下是详细的解释和示例: 一、什么是编译? 编译是将源代码转换为目标代码的过程。它是在编译器的帮助下完成的。编译器检查源代码是…...

Linux 常见的几种编辑器的操作步骤

在大多数命令行文本编辑器中,保存并关闭文件的操作方式基本相似。以下是常见的几种编辑器的操作步骤: 使用 vi 编辑器保存并关闭文件 编辑文件: sudo vi /path/to/file 编辑内容: 按 i 进入插入模式,编辑文件内容。 …...

LabVIEW汽车转向器测试系统

绍了一种基于LabVIEW的汽车转向器测试系统。该系统集成了数据采集、控制和分析功能,能够对转向器进行高效、准确的测试。通过LabVIEW平台,实现了对转向器性能参数的实时监测和分析,提升了测试效率和数据精度,为汽车转向器的研发和…...

image媒体组件属性配合swiper轮播

图片组件&#xff08;image&#xff09; 先插入个图片试试&#xff0c;插入图片用src属性&#xff0c;这是图片&#xff1a; 代码如下&#xff1a; <template><view><swiper indicator-dots indicator-color "#126bae" indicator-active-color &…...

nginx的匹配及重定向

一、nginx的匹配&#xff1a; nginx中location的优先级和匹配方式&#xff1a; 1.精确匹配&#xff1a;location / 对字符串进行完全匹配&#xff0c;必须完全符合 2.正则匹配&#xff1a;location ^~ ^~ 前缀匹配&#xff0c;以什么为开头 ~区分大小写的匹配 ~* 不区分…...

云计算【第一阶段(23)】Linux系统安全及应用

一、账号安全控制 1.1、账号安全基本措施 1.1.1、系统账号清理 将非登录用户的shell设为/sbin/nologin锁定长期不使用的账号删除无用的账号 1.1.1.1、实验1 用于匹配以/sbin/nologin结尾的字符串&#xff0c;$ 表示行的末尾。 &#xff08;一般是程序用户改为nologin&…...

YUM——简介、安装(Ubuntu22.04)

1、简介 YUM&#xff08;Yellowdog Updater, Modified&#xff09;是一个开源的命令行软件包管理工具&#xff0c;主要用于基于 RPM 包管理系统的 Linux 发行版&#xff0c;如 CentOS、Red Hat Enterprise Linux (RHEL) 和 Fedora。YUM 使用户能够轻松地安装、更新、删除和管理…...

Java面向对象练习(4.文字格斗游戏)(2024.7.4)

角色类 package FightGame20240704; import java.util.Random; public class GameRole {Random r new Random();private String name;private int blood;private char gender;private String face;public GameRole(){}public GameRole(String name, int blood, char gender){…...

Python获取QQ音乐歌单歌曲

准备工作 歌单分享的url地址 比如&#xff1a; https://i.y.qq.com/n2/m/share/details/taoge.html?hosteuinoKvzoK4l7evk7n**&id9102222552&appversion130605&ADTAGwxfshare&appshareiphone_wx 代码实现 def mu(share_url):share_url share_url.split(id…...

Linux系统部署MongoDB开源文档型数据库并实现无公网IP远程访问

文章目录 前言1. 安装Docker2. 使用Docker拉取MongoDB镜像3. 创建并启动MongoDB容器4. 本地连接测试5. 公网远程访问本地MongoDB容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&am…...

WPF Menu实现快捷键操作

很多小伙伴说&#xff0c;在Menu中&#xff0c;实现单个快捷键操作很简单&#xff0c;怎么实现多个快捷键操作和&#xff0c;组合快捷键呢&#xff0c;今天他来了。 上代码和效果图 一、Ctrl Shift 任意子母键实现快捷键组合 <Window x:Class"XH.TemplateLesson.M…...

VSCode常用的一些插件

Chinese (Simplified) 汉语&#xff08;简体&#xff09;拓展包。 Auto Close Tag 可以自动增加xml/html的闭合标签。 CodeSnap 截图神器。截图效果在下面。 Dracula Official vscode一个很好看的主题。 Git Graph git管理工具。 GitHub Repositories 有了它&#xff0c;不…...

OV通配符证书用于什么单位

OV&#xff08;Organization Validation&#xff09;通配符SSL证书是一种专门为组织或企业设计的SSL证书类型&#xff0c;它不仅提供了标准的SSL加密功能&#xff0c;还包含了对组织身份的验证。这种证书非常适合以下几种类型的单位使用&#xff1a; 企业级网站&#xff1a; …...

【数据结构】06.栈队列

一、栈 1.1栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out)的原则。 压栈&#…...

完全理解C语言函数

文章目录 1.函数是什么2.C语言中的函数分类2.1 库函数2.1.1 如何使用库函数 2.2自定义函数 3.函数的参数3.1 实际参数&#xff08;实参&#xff09;3.2 形式参数&#xff08;形参&#xff09; 4.函数调用4.1传值调用4.2 传址调用4.3 练习 5.函数的嵌套调用和链式访问5.1 嵌套调…...

性能测试:JMeter与Gatling的高级配置

性能测试是软件开发过程中不可或缺的一部分&#xff0c;它帮助我们确保应用在高负载下仍能保持良好的响应时间和稳定性。本文将深入探讨两种流行的性能测试工具&#xff1a;Apache JMeter和Gatling&#xff0c;并提供详细的高级配置指南以及Java代码示例。 Apache JMeter 高级…...

Linux 软件管理

Linux 软件管理 在 Linux 系统中&#xff0c;RPM&#xff08;Red Hat Package Manager&#xff09;和 YUM&#xff08;Yellowdog Updater, Modified&#xff09;是用于软件包管理的重要工具。 RPM RPM 是由 Red Hat 公司开发的软件包管理系统。 RPM 软件包通常具有 .rpm 扩…...

五.核心动画 - 图层的变换(平移,缩放,旋转,3D变化)

引言 在上一篇博客中&#xff0c;我们研究了一些视觉效果&#xff0c;在本篇博客中我们将要来讨论一下图层的旋转&#xff0c;平移&#xff0c;缩放&#xff0c;以及可以将扁平物体转换成三维空间对象的CATransform3D。 图层变换 图层的仿射变换 在视图中有一个transform属…...

Linux系统编程——线程基本概念

目录 一&#xff0c;关于多线程 二&#xff0c;重新理解进程 三&#xff0c;线程VS进程 四&#xff0c;线程周边概念 4.1 线程的数据共享 4.2 线程的优点 4.3 线程的缺点 4.4 线程异常 4.5 线程用途 五&#xff0c;一些问题解答 如何理解将资源分配给各个线程&…...

【HALCON】如何实现hw窗口自适应相机拍照成像的大小

前言 在开发一个喷码检测软件的时候碰到相机成像和hw窗体的大小不一致&#xff0c;hw太小显示不完全成像的图片&#xff0c;这使得成像不均匀&#xff0c;现场辨别起来比较不直观&#xff0c;因此需要对其进行一个调整。 解决 省略掉读取图片的环节&#xff0c;我们只需要将…...

【Spring cloud】 认识微服务

文章目录 &#x1f343;前言&#x1f334;单体架构&#x1f38b;集群和分布式架构&#x1f332;微服务架构&#x1f38d;微服务带来的挑战⭕总结 &#x1f343;前言 本篇文章将从架构的演变过程来简单介绍一下微服务&#xff0c;大致分为一下几个部分 单体架构集群和分布式架…...

一个pdf分割成多个pdf,一个pdf分成多个pdf

在数字化办公和学习中&#xff0c;pdf格式因其良好的兼容性和稳定性而受到广泛欢迎。但有时候&#xff0c;我们可能需要将一个大的pdf文件分割成多个小文件&#xff0c;以便于分享、打印或编辑。今天&#xff0c;我就来教大家几种简单有效的方法&#xff0c;让你轻松实现pdf文件…...

rtsp client c++

直接上代码&#xff1a;源码 void doRtspParse(char *b) {std::vector<std::string> res;char *ptr b, *ptr1 nullptr;while ((ptr1 strstr(ptr, "\r\n"))) {res.push_back(std::string(ptr, ptr1 - ptr));ptr ptr1 2;}int len ptr - b;b[len - 1] \0;…...

实现好友关注功能的Feed流设计

摘要 在社交网络应用中&#xff0c;Feed流是展示好友动态的核心功能。本文将探讨如何设计一个Feed流系统&#xff0c;以实现好友关注和动态展示的功能。 1. Feed流的基本概念 Feed流是用户在社交网络中获取信息的一种方式&#xff0c;通常按照时间顺序展示好友或感兴趣的用户…...

【STM32修改串口波特率】

STM32微控制器中的串口波特率调整通常涉及到USART&#xff08;通用同步接收器/发送器&#xff09;模块的配置。USART模块提供了多个寄存器来设置波特率&#xff0c;其中关键的寄存器包括BRR&#xff08;波特率寄存器&#xff09;和USART_CR1&#xff08;控制寄存器1&#xff09…...

印章谁在管、谁用了、用在哪?契约锁让您打开手机一看便知

“印章都交给谁在管”、“哪些人能用”、“都有哪些业务在用”…这些既是管理者最关心的印章问题也是影响印章安全的关键要素。但是公司旗下分子公司那么多&#xff0c;各类公章、法人章、财务章、合同章一大堆&#xff0c;想“问”明白很难。 契约锁电子签及印控平台推出“印章…...

[C++初阶]vector的初步理解

一、标准库中的vector类 1.vector的介绍 1. vector是表示可变大小数组的序列容器 &#xff0c; 和数组一样&#xff0c;vector可采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大…...

【等保2.0是什么意思?等保2.0的基本要求有哪些? 】

一、等保2.0是什么意思&#xff1f; 等保2.0又称“网络安全等级保护2.0”体系&#xff0c;它是国家的一项基本国策和基本制度。在1.0版本的基础上&#xff0c;等级保护标准以主动防御为重点&#xff0c;由被动防守转向安全可信&#xff0c;动态感知&#xff0c;以及事前、事中…...

VMware中的三种虚拟网络模式

虚拟机网络模式 1 主机网络环境2 VMware中的三种虚拟网络模式2.1 桥接模式2.2 NAT模式2.3 仅主机模式 3 网络模式选择及配置NAT模式3.1 VMware虚拟网络配置3.2 虚拟机选择网络模式3.3 Windows主机网络配置 4 配置静态IP 虚拟机联网方式为桥接模式&#xff0c;这种模式下&#x…...

深度学习基准模型Transformer

深度学习基准模型Transformer 深度学习基准模型Transformer&#xff0c;最初由Vaswani等人在2017年的论文《Attention is All You Need》中提出&#xff0c;是自然语言处理&#xff08;NLP&#xff09;领域的一个里程碑式模型。它在许多序列到序列&#xff08;seq2seq&#xf…...

如何实现公网环境远程连接本地局域网宝塔FTP服务远程管理文件

文章目录 前言1. Linux安装Cpolar2. 创建FTP公网地址3. 宝塔FTP服务设置4. FTP服务远程连接小结 5. 固定FTP公网地址6. 固定FTP地址连接 &#x1f4a1;推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。…...

dledger原理源码分析系列(一)-架构,核心组件和rpc组件

简介 dledger是openmessaging的一个组件&#xff0c; raft算法实现&#xff0c;用于分布式日志&#xff0c;本系列分析dledger如何实现raft概念&#xff0c;以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的架构&#xff0c;核心组件&#xff1b;rpc组…...

Github 2024-07-05开源项目日报 Top10

根据Github Trendings的统计,今日(2024-07-05统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6TypeScript项目2Jupyter Notebook项目1Dart项目1C++项目1免费API集合 创建周期:2900 天开发语言:Python协议类型:MIT LicenseSta…...

WHAT - React useEffect 依赖的 Object.is

目录 一、背景二、Object.is 的语法三、Object.is 的行为四、总结 一、背景 在 https://react.dev/reference/react/useEffect 中我们了解到&#xff1a; React will compare each dependency with its previous value using the Object.is comparison. 接下来我们学习一下 Ob…...

【Java EE】Spring IOCDI

Spring IOC & DI 文章目录 Spring IOC & DI一、Spring是什么&#xff1f;二、IOC(控制反转)2.1 通俗理解2.2 造汽车的例子理解IOC2.3 IOC详解1. 获取Bean2. 方法注解——Bean1. 应用场景&#xff1a;2. 应用方法&#xff1a;3. 注意要点&#xff1a; 特别注意: 四、DI4…...

【FreeRTOS】同步互斥与通信 有缺陷的同步示例

目录 1 同步互斥与通信1.1 同步互斥与通信概述1.2 同步与互斥的概念1.3 同步的例子&#xff1a;有缺陷1.4 freertos.c源码3. 互斥的例子&#xff1a;有缺陷4. 通信的例子&#xff1a;有缺陷5. FreeRTOS的解决方案 1 同步互斥与通信 1.1 同步互斥与通信概述 参考《FreeRTOS入门…...

Lambda表达式讲解

简介: Lambda表达式的使用场景非常广泛,主要包括函数式编程、集合操作、排序、线程编程、GUI事件处理、数据处理、Web开发等。 函数式编程:Lambda表达式是函数式编程的重要特性,可以用于替代传统的匿名内部类,简化代码,提高可读性。 集合操作:Lambda表达式可以与集合…...

深入了解Linux中的dnsmasq:配置与优化指南

目录 安装dnsmasqUbuntu/DebianCentOS/RHELFedora 配置dnsmasq基本配置高级配置 启动和测试dnsmasq优化dnsmasq性能优化安全性优化 常见问题与故障排除无法解析域名DHCP分配失败 在Linux系统中&#xff0c; dnsmasq 是一个轻量级的网络服务&#xff0c;主要用于提供DNS缓存和D…...

【React】Ant Design -- Table分页功能实现

实现步骤 为Table组件指定pagination属性来展示分页效果在分页切换事件中获取到筛选表单中选中的数据使用当前页数据修改params参数依赖引起接口重新调用获取最新数据 const pageChange (page) > {// 拿到当前页参数 修改params 引起接口更新setParams({...params,page})…...

400G SR4和800G SR8光模块在AI集群中的应用

人工智能&#xff08;AI&#xff09;技术的快速发展下&#xff0c;AI集群的计算能力和数据传输需求不断提升。为了满足这一需求&#xff0c;光模块技术也在不断进步。高速率光模块作为新一代高速光通信解决方案&#xff0c;正在逐步应用于AI集群中&#xff0c;为其提供更高效、…...

ARM功耗管理软件之DVFSAVS

安全之安全(security)博客目录导读 思考&#xff1a;功耗管理软件栈及示例&#xff1f;WFI&WFE&#xff1f;时钟&电源树&#xff1f;DVFS&AVS&#xff1f; 目录 一、ARM功耗管理软件之DVFS 二、ARM功耗管理软件之AVS 一、ARM功耗管理软件之DVFS 有一个实现特定…...

【堆 优先队列】23. 合并 K 个升序链表

本文涉及知识点 堆 优先队列 LeetCode23. 合并 K 个升序链表 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 示例 1&#xff1a; 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#…...