【学一点RISC-V】RISC-V IMSIC

IMSIC

RISC-V AIA 文档 第三章 Incoming MSI Controller (IMSIC)

传入 MSI 控制器(IMSIC)是一个可选的 RISC-V 硬件组件,与 hart 紧密相连,每个 hart 有一个 IMSIC。IMSIC 接收并记录 Hart 的传入消息信号中断 (MSI),并在有待处理并使能的中断时向 Hart 发出信号。

IMSIC 在机器地址空间中有一个或多个内存映射寄存器,用于接收 MSI。除了这些内存映射寄存器外,软件与 IMSIC 的交互主要通过附加 hart 的几个 RISC-V CSR。

1、中断文件和中断标识

【在 RISC-V 系统中,MSI 不仅会被定向到特定 hart,而且会被定向到特定 hart 的特定特权级,如 M 或 S 级别。此外,当 hart 实现了 H 扩展时,IMSIC 可以选择允许 MSI 定向到 VS 级的特定虚拟 hart。】

【对于每个特权级和每个可向其发送 MSI 的虚拟 hart,hart 的 IMSIC 都包含一个单独的中断文件(interrupt file)】。假定一个 hart 实现了 S 模式,那么它的 IMSIC 至少有两个中断文件,一个用于 M,另一个用于 S。如果 Hart 还实现了 H 扩展,其 IMSIC 可能会有额外的中断文件,用于虚拟 Hart,即访客中断文件(guest interrupt files)。【IMSIC 为虚拟机提供的访客中断文件数量正好是 GEILEN,即 RISC-V Privileged Architecture 为 H 扩展定义的受支持的访客外部中断数量】。

【每个独立的中断文件主要由两个大小相同的比特数组组成,一个数组用于记录已到达但尚未服务的 MSI(interrupt-pending bits),另一个数组用于指定 hart 当前能接受的中断(interrupt-enable bits)】。这两个数组中的每个位都对应不同的中断标识号,不同来源的 MSI 可通过该标识号在中断文件中进行区分。【由于 IMSIC 是 hart 的外部中断控制器,因此中断文件的中断标识将成为所附 hart 外部中断的次要标识(minor identities)】。

次要标识,参考下表理解(仅外部中断需要次要标识):

在这里插入图片描述

中断文件支持的中断标识数(以及每个数组中的有效位数)是 64 的倍数的一个小数,最小为 63,最大为 2047。

【当中断文件支持 N 个不同的中断标识时,有效标识号介于 1 和 N 之间。在此范围内的标识号表示中断文件已实现;在此范围外的标识号表示未实现。0 永远不是有效的中断标识。】

【IMSIC 硬件不认为一个中断文件的中断标识号与另一个中断文件的中断标识号有任何联系】。软件通常会为不同中断文件的不同 MSI 源分配相同的中断标识号,而不会在不同中断文件之间进行协调。因此,【系统中可单独区分的 MSI 信号源总数可能是单个中断文件的中断标识数乘以系统中所有中断文件总数的乘积】

系统中的所有中断文件并不一定大小相同(实现的中断标识数量相同)。【对于给定的 hart,访客外部中断的中断文件大小必须全部相同,但 M级 和 S级 的中断文件大小可能与访客外部中断的中断文件不同,也可能彼此不同。同样,不同 Hart 的中断文件也可能大小不同】。

平台可为软件提供配置 IMSIC 中中断文件数量和/或其大小的方法,例如允许用 M级 的较小中断文件换取 S级 的较大中断文件,反之亦然。任何此类可配置性都超出了本规范的范围。不过,建议只赋予 M级 改变 IMSIC 中中断文件数量和大小的权力。

2、MSI encoding

既定标准(特别是 PCI 和 PCIe 标准)规定,来自设备的单个消息信号中断 (MSI) 采取设备自然对齐 32 位写入的形式,地址和值均由软件在设备(或设备控制器)上配置。根据设备或控制器所符合的标准版本,地址可能被限制在低 4 GB(32 位)范围内,而写入的值可能被限制在 16 位范围内,高 16 位始终为零。

【当 RISC-V Hart 具有 IMSIC 时,来自设备的 MSI 通常会直接发送到由软件选择来处理中断的单个 Hart】(可能是基于某种中断亲和性策略)【MSI 将通过存在于接收单元 IMSIC 中的相应中断文件定向到特定权限级别或特定虚拟单元】。MSI 写地址是与目标中断文件物理连接的特定字长寄存器的物理地址。MSI 写入数据只是该中断文件中待处理中断的标识号(最终成为连接 hart 的外部中断的次要标识)。

【注意】通过在设备上配置 MSI 的地址和数据,系统软件可完全控制:(a) 接收特定设备中断的 Hart,(b) 目标特权级或虚拟 Hart,以及 © 在目标中断文件中代表 MSI 的标识号。要素 a 和 b 由 MSI 地址所针对的中断文件决定,而要素 c 则由 MSI 数据传达。

**在实现 H 扩展且设备由客户操作系统直接管理时,设备的 MSI 地址最初是客户物理地址,因为它们是由客户操作系统在设备上配置的。这些客户地址必须由 IOMMU 转换,IOMMU 由 hypervisor 配置,以便将这些 MSI 重定向到中断文件,用于正确的客户外部中断。**有关此主题的更多信息,请参阅第 8 章。

3、Interrupt priorities

在单个中断文件中,中断优先级直接由中断标识号决定。标识号越小,优先级越高。

由于 MSI 使软件能够完全控制中断文件中标识号的分配,因此软件可以自由选择反映中断所需的相对优先级的标识号。

确实,如果中断文件包含分配给每个中断标识的优先级编号数组,那么软件可以更动态地调整中断优先级。 然而,我们认为这种额外的灵活性不会经常被利用,不足以证明额外的硬件费用是合理的。 事实上,对于当前使用 MSI 的许多系统来说,软件的常见做法是完全忽略中断优先级并表现得好像所有中断都具有相同的优先级。

一个中断文件的最低标识号被赋予了最高优先级,而不是相反的顺序,因为只有最高优先级的中断才可能需要仔细管理优先级顺序,而在所有系统中保证存在的是低标识号,即 1 到 63(或者 1 到 255)。例如,一个中断文件中优先级最高的中断(可能是时间最紧迫的中断)总是标识号 1。如果优先级顺序颠倒,最高优先级的中断在不同的机器上就会有不同的标识号,这取决于中断文件实现了多少个标识。如果软件能够为最高优先级的中断分配固定的标识号,那么中断优先级顺序与自然数顺序相反所带来的任何不适都是值得的。

4、Reset and revealed state

重置 IMSIC 后,其中断文件的所有状态都会变得有效和一致,但其他状态未作说明,M级 和 S级 中断文件的 eidelivery 寄存器除外,具体说明见第 3.8.1 节。

如果 IMSIC 中包含 S级 中断文件,且所附 hart 上的软件启用了先前禁用的 S 模式(例如,通过将 CSR misa 的 S 位从 0 改为 1),则 S 级 中断文件的所有状态均有效且一致,但未指定其他状态。同样,如果 IMSIC 中包含访客中断文件,而所连接的 hart 上的软件启用了先前禁用的 H 扩展(例如,将 misa 的 H 位从 0 改为 1),则 IMSIC 访客中断文件的所有状态都有效且一致,但在其他方面未指定。

5、Memory region for an interrupt file

【IMSIC 中的每个中断文件都有一个或两个内存映射 32 位寄存器,用于接收 MSI 写入】。这些内存映射寄存器位于中断文件物理地址空间中自然对齐的 4-KiB 区域(页)内,即每个中断文件一个页。

一个中断文件内存区域的布局为:

	offset 		size	     register name0x000 		4 bytes 	 seteipnum_le0x004 		4 bytes 	 seteipnum_be

中断文件 4-KiB 内存区域中的所有其他字节都是保留字节,必须以只读 0 的方式执行。

中断文件的内存区域中仅支持自然对齐的 32 位简单读取和写入。 对只读字节的写入将被忽略。 对于其他形式的访问(其他大小、未对齐的访问或 AMO),IMSIC 实现最好应该报告访问故障或总线错误,但必须忽略该访问。

【如果 i 是已实现的中断标识号,则以小端字节顺序将值 i 写入 seteipnum_le(按数字设置外部中断挂起位,小端)会导致中断 i 的挂起位设置为 1】。 如果写入的值不是以小端字节顺序实现的中断标识号,则对 seteipnum_le 的写入将被忽略。

对于支持大端字节顺序的系统,如果 i 是已实现的中断标识号,则以大端字节顺序将值 i 写入 seteipnum_be (按数字设置外部中断挂起位,大端) 会导致 中断 i 挂起位设置为 1。 如果写入的值不是按大端字节顺序实现的中断标识号,则对 seteipnum_be 的写入将被忽略。 仅支持小端字节顺序的系统可能会选择忽略对 seteipnum_be 的所有写入。

【在大多数系统中,seteipnum_le 是指向此中断文件的 MSI 的写入端口】。 对于主要为大端字节顺序构建的系统,seteipnum_be 可以用作从某些设备定向到此中断文件的 MSI 的写入端口。

在所有情况下,读取 seteipnum_le 或 seteipnum_be 都会返回零。

当不被忽略时,对中断文件内存区域的写入保证最终会反映在中断文件中,但不一定立即反映。 对于单个中断文件,对其内存区域进行多次写入(存储)的效果尽管任意延迟,但始终以与 RISC-V 非特权 ISA 定义的存储的全局内存顺序相同的顺序发生。

6、多个中断文件的内存区域排布

如上一节所述,IMSIC 实现的每个中断文件都有自己的内存区域,正好占用一个 4-KiB 的机器地址空间页。在可行的情况下,所有 IMSIC 的 M级中断文件的内存页应一起位于地址空间的一部分,而所有 S级 和访客中断文件的内存页同样应一起位于地址空间的另一部分,具体规则如下:

将 M级 中断文件与地址空间中的其他中断文件分开的主要原因是,实施物理内存保护(PMP)的 Harts 只需使用一个 PMP 表项,就能向所有 S级 和访客级中断文件授予 S级 访问权限。如果将 M级 中断文件的内存页与权限较低的中断文件的内存页交错排列,那么向所有 非M级 中断文件授予 S级 访问权限所需的 PMP 表项数量可能与系统中的 Harts 数量相当。

如果机器的结构要求将 Harts 细分为若干组,每组在地址空间中各占一部分,那么最好的办法是将每组 Harts 的 M级 中断文件分别放在一起,同样地,将每组 Harts 的 S级 和访客级中断文件分别放在一起。下文将进一步讨论这种情况。

系统可能会在地址空间中将中断组划分为若干组,因为每组都存在于单独的芯片(或多芯片模块中的芯片组)上,将多个芯片的地址空间编织在一起是不切实际的。在这种情况下,对所有 非M级 中断文件授予 S级 访问权限,每个组只需一个 PMP 表项。

7、IMSIC 关于外部中断的 CSR

【软件主要通过第 2 章介绍的 CSR 访问 Hart 的 IMSIC】。【每个可接收中断的权限级别都有一套独立的 CSR】。【M级 CSR 与 IMSIC 的 M级 中断文件交互,而如果执行了 S模式,则 S级 CSR 与 IMSIC 的 S级中断文件交互。当 IMSIC 具有访客中断文件时,VS CSR 与单个访客中断文件交互,访客中断文件由 CSR hstatus 的 VGEIN 字段选择】。

对于 M级,相关的 CSR 包括 miselect、mireg 和 mtopei。在实现 S模式时,S 级 CSR 的集合与机器级的一致:siselect、sireg 和 stopei。而在实现了 H 扩展时,有三个相应的 VS CSR:vsiselect、vsireg 和 vstopei

如第 2 章所述,【寄存器 miselect 和 mireg 提供了对其他 M级 寄存器的间接访问】。同样,S级 寄存器 siselect 和 sireg 以及 VS 级寄存器 vsiselect 和 vsireg 也是如此。【在每种情况下,*iselect CSR(miselect、siselect 或 vsiselect)的值范围为 0x70-0xFF,选择相应 IMSIC 中断文件的寄存器,即 M级 中断文件(miselect)、S级 中断文件(siselect)或访客中断文件(vsiselect)】

每个级别的中断文件作用相同。*对于给定特权级,iselect CSR 的值在 0x70-0xFF 范围内,可选择相应中断文件的这些寄存器:

	0x70	eidelivery0x72	eithreshold0x80	eip00x81	eip1...		...0xBF	eip630xC0	eie00xC1	eie1...		...0xFF	eie63

寄存器编号 0x71 和 0x73-0x7F 为预留值。当 *iselect CSR 具有其中一个值时,从匹配的 *ireg CSR(mireg、sireg 或 vsireg)读取将返回 0,写入 *ireg CSR 将被忽略。(对于 vsiselect 和 vsireg,所有访问都取决于 hstatus.VGEIN 是否为客户中断文件的有效编号)。

寄存器 eip0 至 eip63 包含所有已实现的中断标识的待处理位,统称为 eip 数组。寄存器 eie0 至 eie63 包含相同中断标识的使能位,统称为 eie 数组。

间接访问的中断文件寄存器和 CSR mtopei、stopei 和 vstopei 将在接下来的两节中详细介绍。

8、间接访问中断文件寄存器

本节介绍通过 *iselect CSR(miselect、siselect 或 vsiselect)及其伙伴 *ireg CSR(mireg、sireg 或 vsireg)间接访问中断文件的寄存器。这些间接访问的宽度始终是当前的 XLEN,RV32 代码为 32 位,RV64 代码为 64 位。

8.1、外部中断传递使能寄存器 (eidelivery)

【eidelivery 是一个 WARL 寄存器,用于控制中断文件中的中断是否从 IMSIC 发送到所连接的 hart,以便在 hart 的 mip 或 hgeip CSR 中显示为待处理外部中断】。寄存器 eidelivery 也可选择支持将 PLIC(平台级中断控制器)或 APLIC(高级 PLIC)的中断直接发送到所连接的 hart。目前为 eidelivery 定义了三种可能的值:

	0 = 禁用中断传送1 = 启用来自中断文件的中断传送0x40000000 = 启用从 PLIC 或 APLIC 发送中断(可选)

如果 eidelivery 支持值为 0x40000000,则系统中的特定 PLIC 或 APLIC 可充当连接的 hart 的备用外部中断控制器,其特权级与该中断文件相同。当 eidelivery 值为 0x40000000 时,中断文件的功能与 eidelivery 值为 0 时相同,PLIC 或 APLIC 将取代中断文件,为 hart 提供该特权级的待处理外部中断。

访客中断文件不支持用于 eidelivery 的值 0x40000000。

如果支持该值,则 Reset 将 eidelivery 初始化为 0x40000000; 否则,复位后 eidelivery 具有未指定的有效值(0 或 1)。

8.2、External interrupt enable threshold register (eithreshold)

【eithreshold 是一个 WLRL 寄存器,它确定允许从该中断文件向连接的 hart 发出中断信号的最小中断优先级(最大中断标识号)】。 如果 N 是该中断文件的最大实现中断标识号,则 eithreshold 必须能够保存 0 到 N 之间的所有值(含 0 和 N)。

当 eithreshold 为非零值 P 时,无论 eie 数组中相应中断使能位的设置如何,中断标识 P 及以上的中断标识都不参与触发中断,就像这些中断标识未被启用一样。当 eithreshold 值为零时,所有已启用的中断标识都会参与中断文件的触发中断。

8.3、外部中断待处理寄存器 (eip0–eip63)

当 XLEN = 32 时,寄存器 eip[k] 包含标识号为 k × 32 到 k × 32 + 31 的中断的挂起位。对于在该范围内实现的中断标识 i,中断 i 的挂起位为 bit (i mod 32) 的 eip[k]。

**当 XLEN = 64 时,奇数寄存器 eip1、eip3、…eip63 不存在。**在这种情况下,如果 *iselect CSR 是 0x81-0xBF 范围内的奇数值,试图访问匹配的 *ireg CSR 会引发非法指令异常,除非在 VS 模式下进行,否则会引发虚拟指令异常。对于偶数 k,寄存器 eipk 包含标识号为 k × 32 至 k × 32 + 63 的中断的待处理位。对于该范围内已执行的中断标识 i,中断 i 的待处理位是寄存器 eipk 的位(i mod 64)。

有效 eipk 寄存器中与支持的中断标识不对应的位位置(如 eip0 的第 0 位)为只读 0。

8.4、外部中断使能寄存器 (eie0–eie63)

当 XLEN = 32 时,寄存器 eie[k] 包含标识号为 k × 32 到 k × 32 + 31 的中断的使能位。对于在该范围内实现的中断标识 i,中断 i 的使能位为 bit (i mod 32) 的eie[k]。

**当 XLEN = 64 时,奇数寄存器 eie1、eie3、…eie63 不存在。**在这种情况下,如果 *iselect CSR 是 0xC1-0xFF 范围内的奇数值,试图访问匹配的 *ireg CSR 会引发非法指令异常,除非在 VS 模式下进行,否则会引发虚拟指令异常。对于偶数 k,寄存器 eiek 包含身份号为 k × 32 至 k × 32 + 63 的中断的使能位。对于该范围内已执行的中断标识 i,中断 i 的使能位是寄存器 eiek 的位(i mod 64)。

有效 eiek 寄存器中与支持的中断标识不对应的位位置(如 eie0 的第 0 位)为只读 0。

9、Top 外部中断 CSRs (mtopei, stopei, vstopei)

CSR mtopei 直接与 IMSIC 的 M级 中断文件交互。 如果实现了 S 模式,CSR stopei 直接与 S级 中断文件交互。【如果实现了 H扩展 并且 hstatus 的字段 VGEIN 是已实现的访客中断文件的编号,则 vstopei 与所选访客中断文件进行交互】。

*topei CSR(mtopei、stopei 或 vstopei)的值指示中断文件当前最高优先级的 pending-and-enabled 的中断,如果 eithreshold 不为零,该中断也超过其 eithreshold 寄存器指定的优先级阈值。标识号较低的中断具有较高的优先级。

如果在中断文件的 eip 数组中没有待处理且在 eie 数组中也没有使能的中断,或者如果 eithreshold 不为零,且没有 pending-and-enabled 的中断的标识号小于 eithreshold 的值,则读取 *topei CSR 的结果为零。 否则,读取 *topei 返回的值具有以下格式:

	bits 26:16	Interrupt identitybits 10:0	Interrupt priority (same as identity)

所有其他位均为零。

*topei CSR 中报告的中断标识是 hart 上外部中断的次要标识。

对 *topei CSR 的写入会清除中断文件中的 pending 位,从而获得所报告的中断标识。写入的值将被忽略;相反,寄存器的当前可读值将决定哪个中断 pending 位被清除。**具体来说,【当写入 topei CSR 时,如果寄存器值 26:16 位的中断标识为 i,那么中断文件中中断 i 的待定位将被清零。当 topei CSR 的值为零时,对寄存器的写入不起作用】。

如果通过一条 CSR 指令(CSRRW、CSRRS 或 CSRRC)同时读写 *topei CSR,则读取返回的值表示被清零的 pending 位。

10、Interrupt delivery and handling

IMSIC 的中断文件向连接的 hart 提供外部中断信号,每个中断文件一个中断信号来自 M级 中断文件的中断信号在 CSR mip 中显示为位 MEIP,而来自 S级 中断文件的中断信号在 mip 和 sip 中显示为位 SEIP来自任何访客中断文件的中断信号在 hypervisor 的 CSR hgeip 中显示为 active bits

当中断文件的 eidelivery 寄存器禁用中断发送(eidelivery = 0)时,来自中断文件的中断信号将保持非有效(假)状态。启用中断文件的中断传送(eidelivery = 1)后,如果仅当中断文件有一个 pending-and-enabled 的中断,且该中断也超过了 eithreshold 指定的优先级阈值(如果不为零)时,其中断信号才会被确认。

仅用于通过IMSIC 进行外部中断的陷阱处理程序可大致编写如下:

	save processor registersi = read CSR mtopei or stopei, and write simultaneously to claim the interrupti = i>>16call the interrupt handler for external interrupt i (minor identity)restore processor registersreturn from trap

第二步中 mtopei 或 stopei 的组合读写可以通过单个 CSRRW 机器指令完成:

	csrrw rd , mtopei/stopei, x0

其中 rd 是值 i 的目标寄存器。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】文件操作篇-----程序文件和数据文件,文件的打开和关闭,二进制文件和文本文件,fopen,fclose【图文详解】

欢迎来CILMY23的博客喔,本篇为【C语言】文件操作篇-----程序文件和数据文件,文件的打开和关闭,二进制文件和文本文件【图文详解】,感谢观看,支持的可以给个一键三连,点赞关注收藏。 前言 在了解完动态内存管…

QT:用opencv的KNN识别图片中的LED数字(一)

前言 一款功能测试的软件demo,使用了QT作为界面,主要使用了opencv的KNN识别,使用gstreamer作为管道,用来打开图片。后期会写一篇打开摄像头实时识别的文章。 (正在写,未完成,稍候) 效果一预览: 效果二预览: 效果三预览: 正在写。。。 设计思路 1. 软件UI设计 2. …

leetcode刷题(javaScript)——堆相关场景题总结

堆是什么?堆都能用树表示,并且一般树的实现都是利用链表。平时使用的最多的是二叉堆,它可以用完全二叉树表示,二叉堆易于存储,并且便于索引。在堆的实现时注意:因为是数组,所以父子节点的关系就…

Palworld幻兽帕鲁管理员操作手册

Palworld幻兽帕鲁管理员操作手册 大家好我是艾西,在我们搭建完幻兽帕鲁服务器后肯定会涉及到后期的维护比如:角色修改,帕鲁修改,异常删除,公会修改,清理玩家,清理建筑,存档迁移等数…

最新基于R语言lavaan结构方程模型(SEM)技术

原文链接:最新基于R语言lavaan结构方程模型(SEM)技术https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247596681&idx4&sn08753dd4d3e7bc492d750c0f06bba1b2&chksmfa823b6ecdf5b278ca0b94213391b5a222d1776743609cd3d14…

脚手架cli快速创建Vue2/Vue3项目

前言: 本文的nodejs版本是14.21.3 第一步 进入cmd窗口 1、全局安装webpack npm install webpack-g, npm install webpack-g 第二步 2、全局安装vue脚手架 npm install -g vue/cli 第三步 3、初始化vue项目 (vue脚手架使用webpack模…

ArcGIS学习(十五)用地适宜性评价

ArcGIS学习(十五)用地适宜性评价 本任务给大家带来的内容是用地适宜性评价。 用地适宜性评价是大家在平时工作中最常接触到的分析场景之一。尤其是在国土空间规划的大背景下,用地适宜性评价变得越来越重要。 此外,我们之前的任务主要是使用矢量数据进行分析。本案例是主讲…

多线程(volatile)

volatile的功能 保证内存可见性禁止指令重排序 内存可见性 简单的理解 两(多)个线程同时针对一个变量进行操作, 一个线程读, 一个线程修改, 此时读到的值不一定是修改过后的值 即读线程没有感知到变量的变化 (其实是 编译器/JVM 对于代码在多线程情况下的优化进行了误判) 从 J…

Vue3 + antv/x6 实现流程图

新建流程图 // AddDag.vue <template><div class"content-main"><div class"tool-container"><div click"undo" class"command" title"后退"><Icon icon"ant-design:undo-outlined" /…

初识Python语言-课堂练习【pyhton123题库】

初识Python语言-课堂练习【pyhton123题库】 一、单项选择题 1、Guido van Rossum正式对外发布Python版本的年份是&#xff1a; A 2008B 1998C 1991D 2002 【答案】C 【解析】暂无解析2、下面不是Python语言特点的是&#xff1a;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪…

无需编程技能:Python爬虫与数据可视化毕业论文代写服务

引言 作为一名在软件技术领域深耕多年的专业人士,我不仅在软件开发和项目部署方面积累了丰富的实践经验,更以卓越的技术实力获得了🏅30项软件著作权证书的殊荣。这些成就不仅是对我的技术专长的肯定,也是对我的创新精神和专业承诺的认可。我的专业知识涵盖了从前端界面设…

Visual Studio 2022之Release版本程序发送到其它计算机运行

目录 1、缺少dll​ 2、应用程序无法正常启动 3、This application failed to start because no Qt platform plugin could be initialized. 代码在Debug模式下正常运行&#xff0c;然后切换到Release模式下&#xff0c;也正常运行&#xff0c;把第三方平台的dll拷贝到exe所在…

honle电源维修UV电源控制器维修EVG EPS60

好乐UV电源控制器维修&#xff1b;honle控制器维修&#xff1b;UV电源维修MUC-Steuermodul 2 LΛmpen D-82166 主要维修型号&#xff1a; EVG EPS 60/120、EVG EPS 100、EVG EPS200、EVG EPS 220、EVG EPS 340、EVG EPS40C-HMI、EVG EPS60 HONLE好乐uv电源维修故障包括&#…

React组件(函数式组件,类式组件)

函数式组件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>React Demo</title> <!-- 引…

基于FPGA加速的bird-oid object算法实现

导语 今天继续康奈尔大学FPGA 课程ECE 5760的典型案例分享——基于FPGA加速的bird-oid object算法实现。 &#xff08;更多其他案例请参考网站&#xff1a; Final Projects ECE 5760&#xff09; 1. 项目概述 项目网址 ECE 5760 Final Project 模型说明 Bird-oid object …

镭雕机:如何利用激光技术实现高质量的产品标记

镭雕机是一种利用激光技术实现高质量产品标记的设备。它通过激光束在各种不同的物质表面进行精确的打标&#xff0c;可以产生永久性的标记效果&#xff0c;这些标记不仅精美&#xff0c;而且具有高度的精度和清晰度。以下是镭雕机如何利用激光技术实现高质量产品标记的详细过程…

寄存器(内存访问)

文章目录 寄存器&#xff08;内存访问&#xff09;1 内存中字的存储2 DS和[address]3 字的传送4 mov、add、sub指令5 数据段6 栈7 CPU提供的栈机制8 栈顶超界的问题9 push、pop指令10 栈段 寄存器&#xff08;内存访问&#xff09; 1 内存中字的存储 CPU中&#xff0c;用16位寄…

Spring Cloud Gateway如何实现熔断

Spring Cloud Gateway熔断集成 熔断应用&#xff1a; 金融市场中的熔断机制&#xff1a;在金融交易系统中&#xff0c;熔断机制&#xff08;Circuit Breaker&#xff09;是一种市场保护措施&#xff0c;旨在预防市场剧烈波动时可能导致的系统性风险。当某个基准指数&#xff08…

基于Ambari搭建大数据分析平台

一、部署工具简介 1. Hadoop生态系统 Hadoop big data ecosystem in Apache stack 2. Hadoop的发行版本 Hadoop的发行版除了Apache的开源版本之外&#xff0c;国外比较流行的还有&#xff1a;Cloudera发行版(CDH)、Hortonworks发行版&#xff08;HDP&#xff09;、MapR等&am…

【网络安全】-数字证书

数字证书 数字证书是互联网通讯中用于标志通讯各方身份信息的一串数字或数据&#xff0c;它为网络应用提供了一种验证通信实体身份的方式。具体来说&#xff0c;数字证书是由权威的证书授权&#xff08;CA&#xff09;中心签发的&#xff0c;包含公开密钥拥有者信息以及公开密…