【ARM】Cortex-A72技术手册(1)

news2024/11/15 3:50:18

目录

1.介绍

1.1接口

1.2 实现选项

2.功能描述

2.1 processor内部的组件

2.2 接口

2.2.1 Memory接口

2.2.2 可选的Accelerator Coherency Port

2.2.3 可选的GIC CPU接口

2.2.4 Debug 接口

2.2.5 Trace 接口

2.2.6 PMU接口

2.2.7 通用的Timer接口

2.2.8 Cross trigger 接口

2.3 clock & reset

2.4 Power 管理

2.4.1 动态电源管理

2.4.2 Power domains


1.介绍

Cortex-A72处理器包括以下特性:

  • 完整实现ARMv8-A架构配置文件。
  • 超标量、变长、乱序流水线。
  • 动态分支预测,配备分支目标缓冲(BTB)和全局历史缓冲(GHB)RAM、返回栈和间接预测器。
  • 48项全关联L1指令转换后备缓冲(TLB),原生支持4KB、64KB和1MB页面大小。
  • 32项全关联L1数据TLB,原生支持4KB、64KB和1MB页面大小。
  • 每个处理器具有4路集合关联的1024项二级(L2)TLB。
  • 固定的48K L1指令缓存和32K L1数据缓存。
  • 可配置大小为512KB、1MB、2MB或4MB的共享L2缓存。
  • L2缓存可选错误校正码(ECC)保护,以及L1数据缓存可选ECC保护和L1指令缓存的奇偶校验保护。
  • AMBA 4 AXI一致性扩展(ACE)或CHI主接口。
  • 可选的加速器一致性端口(ACP),实现为AXI4从接口。
  • 基于ETMv4架构的嵌入式追踪宏单元(ETM)。
  • 基于PMUv3架构的性能监控单元(PMU)支持。
  • 多处理器调试的交叉触发接口(CTI)。
  • 可选的密码学引擎。
  • 可选的通用中断控制器(GIC)CPU接口。
  • 支持具有多个电源域的电源管理。

1.1接口

Cortex-A72处理器具有以下外部接口:

  • 内存接口,实现ACE或CHI接口。
  • 可选的ACP,实现AXI从接口。
  • 可选的GIC CPU接口,实现AXI4-Stream接口。
  • 调试接口,实现APB从接口。
  • 追踪接口,实现ATB接口。
  • 性能监控单元(PMU)接口。
  • 通用定时器接口。
  • 交叉触发接口。
  • 电源管理接口。
  • 测试设计(DFT)。
  • 内存内置自测试(MBIST)。

1.2 实现选项

2.功能描述

2.1 processor内部的组件

处理器的主要组件包括:

  • 指令获取。
  • 指令解码。
  • 指令分派。
  • 整数执行。
  • 加载/存储单元。
  • L2内存系统。
  • 高级SIMD(单指令多数据)和浮点单元。
  • GIC CPU接口。
  • 通用定时器。
  • 调试和追踪。

指令获取 指令获取单元从L1指令缓存中获取指令,并且每个周期最多向指令解码单元提供三条指令。它支持动态和静态分支预测。 指令获取单元包括:

  • L1指令缓存是一个48KB的3路集合关联缓存,具有64字节的缓存行,并且数据RAM中每32位和标签RAM中的36位可选双位奇偶校验保护。
  • 48项全关联L1指令转换后备缓冲(TLB),原生支持4KB、64KB和1MB页面大小。
  • 2级动态预测器,配备分支目标缓冲(BTB)用于快速生成目标。
  • 静态分支预测器。
  • 间接预测器。
  • 返回栈。

指令解码 指令解码单元解码以下指令集:

  • A32。
  • T32。
  • A64。

指令解码单元支持A32、T32和A64高级SIMD和浮点指令集。指令解码单元还执行寄存器重命名,以促进乱序执行,通过消除写后写(WAW)和写后读(WAR)冲突。

指令分派 指令分派单元控制解码后的指令何时分派到执行流水线,以及返回结果何时退役。它包括:

  • ARM核心通用寄存器。
  • 高级SIMD和浮点寄存器集。
  • AArch32 CP15和AArch64系统寄存器。

整数执行 整数执行单元包括:

  • 两个算术逻辑单元(ALU)流水线。
  • 整数乘累加和ALU流水线。
  • 迭代整数除法硬件。
  • 分支和指令条件代码解析逻辑。
  • 结果转发和比较器逻辑。

加载/存储单元 加载/存储(LS)执行单元执行加载和存储指令,并包含L1数据侧内存系统。它还处理来自L2内存系统的内存一致性请求。加载/存储单元包括:

  • L1数据缓存是一个32KB的2路集合关联缓存,具有64字节的缓存行,并可选每32位错误校正码(ECC)保护。
  • 32项全关联L1数据TLB,原生支持4KB、64KB和1MB页面大小。
  • 自动硬件预取器,生成针对L1D缓存和L2缓存的预取指令。

L2内存系统 L2内存系统为每个处理器的L1指令和数据缓存缺失提供服务。它管理AMBA 4 AXI一致性扩展(ACE)或CHI主接口以及可选的加速器一致性端口(ACP)从接口上的请求。 L2内存系统包括:

  • L2缓存,具有以下特性:
    • 可配置大小为512KB、1MB、2MB或4MB。
    • 16路集合关联缓存,每64位数据可选ECC保护。
  • 每个处理器的L1数据缓存标签RAM的副本,用于处理窥探请求。
  • 每个处理器的4路集合关联的1024项L2 TLB。
  • 可编程指令获取距离的自动硬件预取器。

2.2 接口

2.2.1 Memory接口

处理器具有一个内存接口,它实现了AMBA 4 ACE或CHI总线接口。这两种接口都是用于处理器与内存或其他系统组件之间通信的协议。

2.2.2 可选的Accelerator Coherency Port

处理器实现了一个可选的加速器一致性端口(Accelerator Coherency Port,简称ACP)。这是一个AMBA 4 AXI从接口。

ACP从接口支持对Cortex-A72处理器内存系统的内存一致性访问,但不能接受一致性请求、屏障操作或分布式虚拟内存消息。这意味着ACP接口允许某些类型的加速器或辅助处理器以一致性的方式访问主处理器的内存,但这些加速器不能主动发起需要处理器响应的一致性操作或同步指令。

2.2.3 可选的GIC CPU接口

处理器实现了一个可选的GIC(Generic Interrupt Controller,通用中断控制器)CPU接口,该接口使用AMBA AXI-4 Stream接口。

2.2.4 Debug 接口

Cortex-A72处理器实现了一个AMBA 3 APB从接口,该接口允许访问调试寄存器。

  • AMBA 3 APB (Advanced Peripheral Bus) 接口是一种用于连接处理器和外设的总线,它支持低速外设通信。APB是一种简化的总线,与高性能的AXI总线相比,它具有较低的复杂性和较低的带宽需求。

  • 调试寄存器 是一种特殊的寄存器,用于在调试过程中控制和监视处理器的行为。这些寄存器可以提供关于处理器状态、执行的指令、内部变量等信息,对于软件开发和硬件测试至关重要。

2.2.5 Trace 接口

处理器为每个核心实现了专用的AMBA 3 ATB(Advanced Trace Bus)接口,用于输出调试所需的追踪信息。ATB接口与CoreSight架构兼容。

  • AMBA 3 ATB接口 是一种用于处理器核心和追踪设备之间通信的总线,它允许将处理器执行的指令和数据传输到外部追踪分析工具。

  • 追踪信息 是指处理器在执行过程中生成的信息,包括指令执行、数据访问、中断处理等。这些信息对于调试和性能分析非常有用。

  • CoreSight架构 是ARM提供的一种全面的系统级调试和追踪解决方案,它包括一系列硬件和软件组件,用于支持复杂的调试任务。

2.2.6 PMU接口

处理器实现了性能监视器,并为每个核心提供了中断输出和事件接口。

  • 性能监视器 是一种硬件组件,用于跟踪和测量处理器的各种性能指标。这些指标可能包括但不限于指令执行次数、分支预测准确率、缓存命中率、内存访问延迟等。

  • 中断输出 是一种机制,允许性能监视器在检测到特定性能事件或达到预定的性能阈值时,向处理器发出中断信号。这可以用于实时监控系统性能,并在必要时采取行动,例如调整资源分配或优化程序执行。

  • 事件接口 是一种编程接口,允许软件开发人员指定他们希望性能监视器跟踪的特定事件或条件。通过事件接口,开发者可以定制性能监视器的行为,使其专注于对他们的应用或系统最重要的性能指标。

2.2.7 通用的Timer接口

处理器拥有一个全局定时器输入,并且每个核心有四个定时器中断输出。

  • 全局定时器输入 是一个单一的定时器输入源,通常用于整个系统的计时和同步。它可以被配置为基于系统时钟或外部时钟源运行,以提供一致的时间基准。

  • 每个核心的四个定时器中断输出 指的是每个处理器核心都可以独立地生成四个不同的定时器中断信号。这些中断输出可以用于以下目的:

    1. 性能监控:定时器中断可以用来监控程序或系统的执行时间,帮助开发者了解程序的性能特性。
    2. 任务调度:操作系统或应用程序可以使用定时器中断来实现任务调度和时间管理。
    3. 时序控制:在需要精确时序控制的应用中,定时器中断可以用来触发特定的事件或操作。
    4. 用户定义的定时任务:开发者可以根据需要配置定时器中断来执行用户定义的任务或操作。

2.2.8 Cross trigger 接口

处理器实现了一个单一的交叉触发通道接口。这个外部接口通过简化的交叉触发矩阵(Cross Trigger Matrix,简称CTM)连接到每个核心对应的CoreSight交叉触发接口(Cross Trigger Interface,简称CTI)。

  • 交叉触发通道接口 是一种允许不同处理器核心或调试组件之间进行通信和同步的机制。它使得一个事件(如中断或异常)能够触发其他核心或组件的响应。

  • CoreSight CTI 是ARM CoreSight调试架构的一部分,它提供了一种灵活的方式来管理和同步多个调试和跟踪组件。CTI允许复杂的调试场景,其中不同的调试事件可以在不同的处理器核心或调试工具之间进行协调。

  • 简化的交叉触发矩阵(CTM) 是一种硬件组件,它简化了CTI的实现,使得交叉触发事件的路由和控制更加高效。CTM通常包含逻辑电路,用于确定哪些事件应该触发哪些响应,以及如何将这些事件传递到目标核心或组件。

通过实现交叉触发通道接口和连接到CTM,处理器能够:

  1. 支持复杂的调试场景,其中多个核心和调试工具需要同步操作。
  2. 允许一个核心的事件触发其他核心的调试操作,这对于分析多线程程序的行为非常有用。
  3. 提供一种机制,用于在处理器核心之间或与外部调试工具之间进行精确的时序控制。

2.3 clock & reset

2.4 Power 管理

2.4.1 动态电源管理

这部分描述了处理器中的以下动态电源管理特性:

  • Core Wait for Interrupt(核心等待中断)
  • Core Wait for Event(核心等待事件)
  • 使用WFE(Wait For Event,等待事件)和SEV(Send Event,发送事件)指令的事件通信
  • CLREXMON请求和确认信号
  • L2 Wait for Interrupt(L2等待中断)
  • L2硬件缓存刷新
  • 处理器动态保留
  • L2 RAMs动态保留
  • 高级SIMD和FP(浮点)时钟门控
  • L2控制和标签库时钟门控
  • 区域时钟门控

Core Wait for Interrupt(核心等待中断)

  • 等待中断(Wait for Interrupt,简称WFI)是ARMv8-A架构的一个特性,它通过禁用核心中的时钟来将核心置于低功耗状态,同时保持核心供电。这减少了核心在WFI低功耗状态下的静态泄漏功耗。
  • 核心通过执行WFI指令进入WFI低功耗状态。
  • 执行WFI指令时,核心等待核心中的所有指令退役后进入空闲或低功耗状态。WFI指令确保所有在程序顺序中WFI指令之前的显式内存访问都已退役。例如,WFI指令确保以下指令从L2内存系统中接收到所需的数据或响应:
    • 加载(Load)指令。
    • 缓存和TLB(Translation Lookaside Buffer,转换后备缓冲)维护操作。
    • 存储独占(Store-Exclusive)指令。
  • 此外,WFI指令确保存储(Store)指令更新缓存或已发送到L2内存系统。
  • 核心在WFI低功耗状态下,当检测到以下任何事件时,核心中的时钟会暂时启用,但不会导致核心退出WFI低功耗状态:
    • 必须由核心L1数据缓存服务的L2窥探请求。
    • 必须由核心L1指令缓存、数据缓存、指令TLB、数据TLB或BTB服务的缓存、TLB或BTB维护操作。
    • 通过APB(Advanced Peripheral Bus,高级外设总线)访问位于核心电源域中的调试或追踪寄存器。
  • 核心在检测到重置或WFI唤醒事件时退出WFI低功耗状态。有关各种WFI唤醒事件的信息,请参阅ARM®架构参考手册ARMv8,了解ARMv8-A架构配置文件。
  • 进入WFI低功耗状态时,该核心的STANDBYWFI被断言。即使由于L2窥探请求、缓存、TLB和BTB维护操作或APB访问,核心中的时钟暂时启用,STANDBYWFI也继续被断言。

核心等待事件(WFE) 等待事件(Wait for Event,简称WFE)是ARMv8-A架构的一个特性,它使用基于事件的锁定机制,通过禁用核心的时钟同时保持核心供电,将核心置于低功耗状态。当核心处于WFE低功耗状态时,这减少了静态泄漏电流的功耗。

核心通过执行WFE指令进入WFE低功耗状态。执行WFE指令时,核心等待核心中的所有指令完成后再进入空闲或低功耗状态。WFE指令确保所有在WFE指令之前的程序顺序中发生的显式内存访问都已完成。

当核心处于WFE低功耗状态时,如果检测到以下任何事件,核心的时钟会暂时启用,但不会导致核心退出WFE低功耗状态:

  • 必须由核心L1数据缓存服务的L2窥探请求。
  • 必须由核心L1指令缓存、数据缓存、指令TLB、数据TLB或BTB服务的缓存、TLB或BTB维护操作。
  • 通过APB访问位于核心电源域中的调试或追踪寄存器。

核心在以下情况下退出WFE低功耗状态:

  • 检测到重置。
  • EVENTI输入信号被断言。
  • CLREXMONREQ输入信号被断言。
  • 发生WFE唤醒事件。有关各种WFE唤醒事件的信息,请参阅ARM®架构参考手册ARMv8,了解ARMv8-A架构配置文件。

进入WFE低功耗状态时,该核心的STANDBYWFE被断言。即使由于L2窥探请求、缓存、TLB和BTB维护操作或APB访问,核心中的时钟暂时启用,STANDBYWFE也继续被断言。

使用WFE和SEV指令的事件通信 EVENTI信号允许外部代理参与WFE和SEV事件通信。当此信号被断言时,它向处理器中的所有核心发送事件消息。这类似于在处理器中的一个核心上执行SEV指令。这使得外部代理可以向核心发出信号,表示它已释放信号量,核心可以离开WFE低功耗状态。EVENTI输入信号必须保持高电平至少一个CLK周期才能被核心看到。

外部代理可以通过检查EVENTO信号来确定处理器中至少有一个核心已执行SEV指令。当处理器中的任何核心执行SEV指令时,EVENTO信号被断言,表示向所有核心发出事件信号,并且EVENTO信号在任何核心执行SEV指令时保持高电平三个CLK周期。

CLREXMON请求和确认信号 CLREXMONREQ信号有一个对应的CLREXMONACK响应信号。这形成了一个标准的双线、四阶段握手,可用于核心和系统之间的电压和频率边界信号传递。

当CLREXMONREQ输入被断言时,它表示清除外部全局独占监视器,并对处理器中的所有核心作为WFE唤醒事件。

如果系统中不存在全局独占监视器,请将CLREXMONREQ输入连接到低电平。

L2 等待中断

当所有核心都处于 WFI 低功耗状态时,所有核心共有的共享 L2 内存系统逻辑也可以进入 WFI 低功耗状态。 只有满足特定要求并应用以下顺序时,才能进入 L2 WFI 低功耗状态:

  1. 所有核心都处于 WFI 低功耗状态,因此所有核心的 STANDBYWFI 输出都被断言。
  2. 当 ACP 存在且所有未完成的 ACP 请求都已完成时,SoC 断言 AINACTS 输入以使能ACP从接口进入空闲状态。断言 AINACTS 后,SoC 不得断言 ARVALIDS、AWVALIDS 或 WVALIDS。
  3. 如果处理器实现:
    • ACE 接口:当所有未完成的窥探请求都已完成时,SoC 断言 ACINACTM 输入信号以使能 AXI 主动窥探接口进入空闲状态。这防止 L2 内存系统接受来自 AXI 主动窥探接口的任何新请求。断言 ACINACTM 后,SoC 不得断言 ACVALIDM。
    • CHI 接口:当所有未完成的窥探请求都已完成时,SoC 断言 SINACT 输入信号,表示处理器已从一致性域中移除,不再接收任何更多的窥探。这触发 L2 停用 TX 和 RX 链接。当 TX 和 RX 链接分别处于其停止状态时,L2 内存系统不接受来自 CHI 接口的任何新请求。
  4. 当 L2 内存系统完成了 ACE 和 CHI 接口的未完成事务后,它就可以进入 L2 WFI 低功耗状态。进入 L2 WFI 低功耗状态时,断言 STANDBYWFIL2。STANDBYWFIL2 的断言保证了 L2 处于空闲状态,不接受任何新事务。
  5. 然后 SoC 可以选择取消断言处理器的 CLKEN 输入,以停止所有从 CLK 衍生出来的核心内剩余的内部时钟。共享 L2 内存系统逻辑、GIC 和定时器中的所有时钟都被禁用。

如果 CLKEN 被取消断言,SoC 必须在 WFI 唤醒事件上断言 CLKEN 输入,以使能 L2 内存系统和可能的核心。有两种类别的唤醒事件:

  • 仅需要使能 L2 内存系统的事件。
  • 需要同时使能 L2 内存和核心的事件。 以下唤醒事件导致 L2 内存系统和核心退出 WFI 低功耗状态:
  • 物理 IRQ 或 FIQ 中断。
  • 调试事件。

上电或温重启。 以下唤醒事件仅导致 L2 内存系统退出 WFI 低功耗状态:

  • 如果设备配置为具有 ACE 接口,取消断言 ACINACTM 以服务 AXI 主动窥探接口上的外部窥探请求。
  • 如果设备配置为具有 CHI 接口:
    • 取消断言 SINACT 以服务外部窥探请求。
    • 激活 TX 或 RX 链接。
  • 如果 ACP 存在,取消断言 AINACTS 以服务从接口上的 ACP 事务。 当核心退出 WFI 低功耗状态时,该核心的 STANDBYWFI 被取消断言。当 L2 内存系统逻辑退出 WFI 低功耗状态时,STANDBYWFIL2 被取消断言。

L2硬件缓存刷新

处理器提供了一种有效的方式,在不需要唤醒核心通过软件执行清理和使无效操作的情况下,完全清理和使L2缓存无效,为关闭电源做准备。

使用L2硬件缓存刷新只能在满足特定要求并应用以下顺序时发生:

  1. 通过向CPU扩展控制寄存器的位[38]写入1,位[36:35]写入0来禁用L2预取。
  2. 通过向CPU辅助控制寄存器的位[56]写入1来禁用加载/存储硬件预取器。
  3. 执行ISB指令以确保CPU扩展控制寄存器和CPU辅助控制寄存器的写入操作完成。
  4. 执行DSB指令以确保所有先前预取请求的完成。
  5. 所有核心都处于WFI低功耗状态,因此所有核心的STANDBYWFI输出都被断言。
  6. 当ACP存在且所有未完成的ACP事务都已完成时,SoC断言AINACTS信号以使ACP空闲。这是必要的,以防止ACP事务在硬件缓存刷新发生时在L2缓存中分配新条目。断言AINACTS后,SoC不得断言ARVALIDS、AWVALIDS或WVALIDS。
  7. SoC现在可以断言L2FLUSHREQ输入信号。
  8. L2对L2缓存的每个集合和方式执行一系列内部清理和使无效操作。任何脏缓存行都使用WriteBack或WriteNoSnoop操作写回到系统中。如果L2配置了,干净的缓存行可以引起Evict或WriteEvict事务。
  9. 当L2完成清理和使无效序列时,它断言L2FLUSHDONE信号。SoC现在可以取消断言L2FLUSHREQ信号,然后L2取消断言L2FLUSHDONE。
  10. 当所有未完成的窥探事务完成后,SoC可以在ACE实现中断言ACINACTM信号,或在CHI实现中断言SINACT信号。作为响应,L2断言STANDBYWFIL2信号。

在L2FLUSHDONE信号被断言之前取消断言L2FLUSHREQ信号可以终止L2硬件缓存刷新。这导致L2中止硬件缓存刷新。当SoC不关闭核心并且必须快速唤醒核心时,可以使用此功能。

2.4.2 Power domains

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

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

相关文章

html 关于table合并外边框以及自动滚动问题汇总

合并外边框 .tab_main{ width: 100%; height:100%; border: 1px solid #ccc; text-align: center; border-spacing: 0; border-collapse: collapse;//合并外边框 } 固定高度显示上下滑动 <div styleoverflow:scroll;height:100%> <di…

LeetCode 热题 HOT 100 (035/100)【宇宙最简单版】

【栈】No. 0394 字符串解码【中等】&#x1f449;力扣对应题目指路 希望对你有帮助呀&#xff01;&#xff01;&#x1f49c;&#x1f49c; 如有更好理解的思路&#xff0c;欢迎大家留言补充 ~ 一起加油叭 &#x1f4a6; 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#xff…

Java面试八股之什么是消息队列

什么是消息队列 消息队列&#xff08;Message Queue&#xff09;是一种应用程序间通信&#xff08;IPC&#xff09;的形式&#xff0c;它允许进程将消息发送到另一个消息队列&#xff0c;接收端则可以在任何时刻从队列中取出这些消息进行处理。消息队列提供了一种异步处理、解…

R语言 | 发一篇 Science 需要学会多少个R包?

1. 一个一个举例子 1.1 实例1 该论文提供的代码涵盖的分析方向齐全&#xff0c;且代码风格和R语言编程细节都有值得学习的地方。代码有点多&#xff0c;包括R&#xff0c;rmd&#xff0c; py&#xff0c;jupyter notebook, shell等格式&#xff0c;压缩包见Q群文件: 187923577…

今年免费AI写作神器推荐,文案创作新宠儿

面对日益增长的创作需求与有限的个人精力&#xff0c;如何高效产出高质量的内容成为了许多创作者面临的共同挑战。幸运的是&#xff0c;现在有不少ai写作免费工具可以帮我们实现。 1.宙语AI写作 链接直达&#xff1a;https://ailjyk.com/pc 这款工具作为一款在线AI应用&#…

最佳 5 款 SD 卡照片恢复应用程序,用于从 SD 卡恢复已删除的照片

我们都知道照片承载着我们一生中最美好的回忆。但残酷的事实是&#xff0c;尽管你备份了所有的照片&#xff0c;但有些文件总会莫名其妙地丢失。无论是意外删除还是由于某种原因格式化设备&#xff0c;数据丢失都是不可避免的。因此&#xff0c;我们不会创建同一文件的数千份副…

恶补费马小定理和组合数

前言&#xff1a;我们平时遇到的组合数如果用杨辉三角型做的话&#xff0c;预处理的复杂度是 n 2 n^2 n2 &#xff0c;遇到大一点的数据就会爆炸 我们怎么去优化呢 C ( n , k ) n ! k ! ⋅ ( n − k ) ! m o d mod C(n, k) \frac{n!}{k! \cdot (n-k)!} \mod \text{mod} C(…

深入剖析大模型安全问题:Langchain框架的隐藏风险

随着大模型热度持续&#xff0c;基于大模型的各类应用层出不穷。Langchain 作为一个以 LLM 模型为核心的开发框架&#xff0c;可以帮助我们灵活地创建各类应用&#xff0c;同时也为大模型的应用引入新的安全隐患。从今年 4 月 Langchain 被爆出在野 0day 漏洞开始&#xff0c;各…

PHP项目任务系统小程序源码

&#x1f680;解锁高效新境界&#xff01;我的项目任务系统大揭秘&#x1f50d; &#x1f31f; 段落一&#xff1a;引言 - 为什么需要项目任务系统&#xff1f; Hey小伙伴们&#xff01;你是否曾为了杂乱的待办事项焦头烂额&#xff1f;&#x1f92f; 或是项目截止日逼近&…

LeetCode刷题笔记第191题:位1的个数

LeetCode刷题笔记第191题&#xff1a;位1的个数 题目&#xff1a; 想法&#xff1a; 通过位运算判断二级制形式中有多少个1&#xff0c;代码及解释如下&#xff1a; class Solution:def hammingWeight(self, n: int) -> int:return sum(1 for i in range(32) if n & …

十三、list 类

Ⅰ . list 的介绍和使用 01 初识 list 我们已经学习过 string 和 vector 了&#xff0c;想必大家已经掌握了查文档的能力 现在我们去学习如何使用 list &#xff0c;最好仍然打开文档去学习 list - C Reference ① list 是一个顺序容器 允许在任意位置进行 O(1) 插入和删除…

Blazor开发框架Known-V2.0.7

V2.0.7 Known是基于Blazor的企业级快速开发框架&#xff0c;低代码&#xff0c;跨平台&#xff0c;开箱即用&#xff0c;一处代码&#xff0c;多处运行。 官网&#xff1a;http://known.pumantech.comGitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;http…

2024.8.7(SQL语句)

一、回顾 1、主服务器 [rootslave-mysql ~]# yum -y install rsync [rootmaster-mysql ~]# yum -y install rsync [rootmaster-mysql ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar [rootmaster-mysql ~]# ls [rootmaster-mysql ~]# tar -xf mysql-8.0.33-linux-glib…

ssd202d-添加4g模块-HM609

1.lsusb要看到设备 2.驱动部分要打开usb识别,rndis支持 diff --git a/kernel/arch/arm/configs/infinity2m_spinand_ssc011a_s01a_minigui_defconfig b/kernel/arch/arm/configs/infinity2m_spinand_ssc011a_s01a_minigui_defconfig index e6a2e43b6..b0a60f4ee 100755 --- a/…

新品上市:ATA-401高压功率放大器技术参数、特点及应用

随着电子工程师不断增长的测试需求&#xff0c;安泰电子也在不断的拓展和研发新产品&#xff0c;近期安泰ATA-400系列高压功率放大器正式上线&#xff0c;又一单品新品测试仪器加入了Aigtek大家庭——ATA-401高压功率放大器。 关于ATA-401高压功率放大器 参数指标介绍&#xff…

基于vue框架的CIA报价平台的设计与实现1xv02(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,供应商,产品分类,产品信息,在线咨询,资质申请 开题报告内容 基于Vue框架的CIA报价平台的设计与实现 开题报告 一、选题背景 随着市场竞争的日益激烈&#xff0c;企业对于成本控制与效率提升的需求愈发迫切。在采购与供应链管理…

Unity URP 浅析两种模型透明Shader原理

Unity URP 浅析两种模型透明Shader原理 前言实现第一种 单个Pass写入深度的逻辑正确半透明模型第二种 2个Pass分工合作视觉正确的半透明模型 参考 前言 使用Unity做过半透明的朋友们都知道&#xff0c;这里面一堆坑&#xff0c;下面简单说两种透明Shader在ASE中的实现&#xf…

【仓颉】控制台输出中文乱码,cmd和powershell的解决方案

【仓颉】控制台输出中文乱码&#xff0c;cmd和powershell的解决方案 main(): Int64 {...println("这是仓颉")return 0 }临时修改编码页面 代码页国家(地区)或语言437美国850多语言(拉丁文 I)936中国 - 简体中文(GB2312)52936简体中文(HZ)65000Unicode (UTF-7)65001U…

Qt 计算器程序

下载链接&#xff1a; https://pan.baidu.com/s/1112o9eVbpC7FySsXRuP2xA 提取码: rd92 运行结果&#xff1a;

聚鼎科技:开一家抖音店铺到底还有前景不

在数字化的浪潮中&#xff0c;抖音不仅仅是一款短视频应用&#xff0c;它已经成为了一个新兴的商业平台&#xff0c;一个充满无限可能的市场。在这个平台上开一家店铺&#xff0c;就像在星辰大海中寻找自己的航向&#xff0c;既有挑战也有机遇。 “未来属于那些相信梦想之美的人…