ARM、ARM架构、ARM架构芯片

news2024/11/14 15:18:20

ARM是一种基于精简指令集(RISC)的处理器架构,它由英国的ARM公司设计和授权

ARM芯片具有低功耗、高性能、高集成度等特点,广泛应用于嵌入式系统、移动设备、物联网、服务器等领域。本文将介绍ARM的各类芯片,包括其特点、分类、代表产品和最新动态。

在这里插入图片描述

文章目录

  • 一、常见处理器架构
  • 二、ARM 芯片的特点
  • 三、ARM芯片的分类
    • 3.1 按架构版本分类
    • 3.2 按核心类型分类
    • 3.3 按应用领域分类
  • 四、ARM芯片的代表产品
  • 五、ARM芯片的最新动态
  • 六、Sample
    • 6.1 Apple
      • 6.1 A 系列
      • 6.2 M 系列
    • 6.2 STM 系列

一、常见处理器架构

处理器架构指的是处理器的内部结构和功能,也就是处理器如何执行指令和数据的方式。不同的处理器架构有不同的指令集,也就是处理器能够理解和执行的基本操作。处理器架构对于处理器的性能、功耗、兼容性等方面有重要的影响。

常见的架构有x86、ARM、RISC-V和MIPS。

  • X86:这是英特尔和AMD的“专属”架构,主要用于PC、服务器和云计算领域,拥有高性能、高速度和高兼容性的优势。在PC市场上,X86架构几乎独霸多年,占据了超过90%的份额。在服务器市场上,X86架构也占据了约80%的份额,但近年来受到ARM和RISC-V等架构的挑战。
  • ARM:这是一种低功耗、低成本的架构,主要用于移动设备、物联网、嵌入式系统和边缘计算领域,拥有节能、灵活和可定制的优势。在移动设备市场上,ARM架构占据了绝对优势,几乎所有的智能手机、平板电脑和智能手表都使用了基于ARM的芯片。在物联网市场上,ARM架构也占据了约70%的份额,成为最受欢迎的架构之一。
  • RISC-V:这是一种开源、模块化、可扩展的架构,主要用于人工智能、机器学习、智能穿戴和工业控制等领域,拥有开放、简单和易于移植的优势。RISC-V架构是近年来崛起的新星,受到了许多芯片公司和技术巨头的青睐。在人工智能市场上,RISC-V架构预计将占据约20%的份额,在智能穿戴市场上,RISC-V架构预计将占据约10%的份额。
  • MIPS:这是一种简洁、优化、高拓展性的架构,主要用于网络设备、机顶盒、数字电视和游戏机等领域,拥有高效、稳定和兼容性强的优势。MIPS架构是一种历史悠久的架构,曾经在网络设备市场上占据了较高的份额,但近年来受到了ARM和RISC-V等架构的冲击。在网络设备市场上,MIPS架构预计将占据约10%的份额,在机顶盒市场上,MIPS架构预计将占据约5%的份额。
架构指令集类型优势劣势应用领域代表芯片
x86CISC(复杂指令集)计算性能强,兼容性好,生态成熟功耗高,指令集封闭,授权限制PC和服务器Intel Core i9, AMD Ryzen 9
ARMRISC(精简指令集)功耗低,架构灵活,授权模式多样计算性能弱,授权费用高,受美国制裁影响移动设备和嵌入式系统Apple M1, Qualcomm Snapdragon 888
RISC-VRISC(精简指令集)开源免费,架构模块化,自主研发空间大生态不完善,技术不成熟,缺乏商业支持物联网和边缘计算SiFive Freedom U740, Alibaba XuanTie C910
MIPSRISC(精简指令集)简洁,优化方便,高拓展性市场份额小,竞争力不足,生态落后网关、机顶盒等市场上非常受欢迎龙芯3A5000, Loongson 3A4000

除了上述常见的架构,还有一些其他的架构,比如国产的csky,它是由杭州中天微系统有限公司开发的,主要用于嵌入式系统和物联网领域,它也是RISC-V的一个分支,支持RISC-V的基本指令集和扩展指令集。我用过使用这种架构的芯片:w800

二、ARM 芯片的特点

ARM芯片的主要特点有以下几点:

  • 精简指令集:ARM芯片使用精简指令集,即每条指令只完成一项简单的操作,从而提高指令的执行效率和处理器的性能。相比之下,复杂指令集(CISC)的指令可以完成多项复杂的操作,但是需要更多的硬件资源和执行时间。
  • 负载/存储架构:ARM芯片使用负载/存储架构,即只有专门的负载和存储指令可以访问内存,其他指令只能在寄存器之间进行操作。这样可以减少内存访问的次数和延迟,提高数据处理的速度。相比之下,寄存器/内存架构的处理器可以直接在内存和寄存器之间进行操作,但是会增加内存访问的开销。
  • 统一寄存器文件:ARM芯片使用统一寄存器文件,即所有的通用寄存器都可以用于任何目的,没有专门的数据寄存器或地址寄存器。这样可以提高寄存器的利用率和灵活性,减少数据移动的开销。相比之下,分段寄存器文件的处理器需要区分不同类型的寄存器,并进行相应的转换。
  • 条件执行:ARM芯片支持条件执行,即每条指令都可以根据一个条件码来决定是否执行。这样可以减少分支指令的使用,提高代码密度和流水线效率。相比之下,非条件执行的处理器需要使用专门的分支指令来实现条件跳转。
  • 多种工作模式:ARM芯片支持多种工作模式,例如用户模式、系统模式、管理模式、中断模式、异常模式等。不同的工作模式有不同的权限和功能,可以实现不同级别的任务切换和异常处理。相比之下,单一工作模式的处理器需要使用软件来模拟多任务和异常处理。

三、ARM芯片的分类

ARM芯片可以根据其架构版本、核心类型、应用领域等方面进行分类。以下是常见的分类方法:

3.1 按架构版本分类

ARM架构从最早的ARMv1到最新的ARMv9,经历了多次升级和改进,增加了许多新的特性和功能。不同版本的ARM架构有不同的指令集、寄存器、异常模型等。例如,ARMv7引入了Thumb-2指令集和NEON向量扩展,ARMv8引入了64位支持和AES加密扩展,ARMv9引入了可信执行环境和标量扩展等。

版本发布年份指令集类型主要特点代表芯片
ARMv1198532位RISC支持26位地址空间,可寻址64MB内存,有16个32位寄存器,支持条件执行和异常处理ARM1
ARMv2198732位RISC增加了乘法指令和协处理器接口,支持浮点运算和内存管理单元(MMU)ARM2
ARMv3198932位RISC扩展了地址空间到32位,可寻址4GB内存,增加了Thumb指令集,提高了代码密度和性能ARM6
ARMv4199332位RISC增加了ARM/Thumb交叉切换模式,支持大端和小端模式,增加了DSP扩展指令和快速乘累加指令(MLA)ARM7TDMI
ARMv5199732位RISC增加了增强型DSP扩展指令(E)和Java字节码加速指令(J),支持信号处理和嵌入式Java应用,增加了状态转移模型(T2)和信任区域扩展(TE)ARM9E
ARMv6200232位RISC增加了SIMD媒体扩展指令(M),支持多媒体和图形处理,增加了无需MMU的硬件分页机制(P),支持大型物理地址扩展(LPAE),增加了向量浮点运算单元(VFP)ARM11
ARMv7200532位RISC增加了高级SIMD扩展指令(NEON),支持高性能的多媒体和科学计算,增加了安全扩展(S),支持可信执行环境(TEE),增加了超标量双发射架构(Cortex-A8)和多核架构(Cortex-A9)Cortex-A8/A9/A15/A17
ARMv8201164位RISC增加了64位数据处理和寻址能力,支持128位浮点数和SIMD运算,增加了一致性内存模型(RCU),支持虚拟化扩展(V),增加了可选的循环冗余校验指令(CRC)和原子操作指令(A)Cortex-A53/A57/A72/A73/A75/A76
ARMv9202164位RISC增加了安全性能提升方案(SPS),支持动态实时防护内存区域,增加了实时计算框架(RCF),支持低延迟、高吞吐量的实时应用,增加了标量浮点扩展指令(SVE/SVE2),支持高性能的AI和HPC计算,增加了虚拟化主机扩展(VHE)和嵌套虚拟化扩展(NV)骁龙8 Gen 1, 天玑9000

3.2 按核心类型分类

ARM核心是指实现了某个版本ARM架构的具体处理器设计,它由ARM公司设计并授权给其他厂商生产。不同类型的ARM核心有不同的性能、功耗、面积等。例如,Cortex-A系列是针对高性能应用的核心,Cortex-R系列是针对实时应用的核心,Cortex-M系列是针对微控制器应用的核心等。

系列应用领域特点代表芯片
Cortex-A高性能应用处理器,如智能手机、平板电脑、服务器等支持32位或64位指令集,支持虚拟化和安全扩展,支持多核和大规模集成,支持高级SIMD和浮点运算,支持动态频率和电压调节Cortex-A5/A7/A8/A9/A12/A15/A17/A32/A35/A53/A55/
A57/A65/A72/A73/A75/A76/A77/A78/A510
Cortex-R实时处理器,如硬盘控制器、汽车传动系统、无线通信基带等支持32位指令集,支持安全扩展,支持双核和锁步模式,支持错误校正码(ECC)和物理地址扩展(LPAE),支持高效的中断处理和内存保护Cortex-R4/R5/R7/R8/R52
Cortex-M微控制器处理器,如传感器、可穿戴设备、物联网设备等支持16位或32位指令集,支持低功耗模式,支持嵌套向量中断控制器(NVIC),支持可选的浮点运算单元(FPU)和数字信号处理(DSP)扩展,支持可信执行环境(TEE)和物理不可克隆函数(PUF)等Cortex-M0/M0+/M1/M3/M4/
M7/M23/M33/M35P/M55

3.3 按应用领域分类

ARM芯片可以根据其应用领域的不同,分为不同的系列和产品。

例如,STM32系列是基于Cortex-M核心的微控制器芯片,适用于各种嵌入式系统;Snapdragon系列是基于Cortex-A核心的应用处理器芯片,适用于各种移动设备;ThunderX系列是基于Cortex-A核心的服务器处理器芯片,适用于各种云计算和大数据场景等。

四、ARM芯片的代表产品

ARM芯片有许多代表产品,以下是一些常见的例子:

  • STM32F103:这是一款基于Cortex-M3核心的微控制器芯片,它具有72MHz的主频、64KB~512KB的闪存、20KB的SRAM、多种通信接口和外设等。它适用于各种工业控制、消费电子、物联网等领域。

在这里插入图片描述

  • Raspberry Pi 4:这是一款基于Cortex-A72核心的单板计算机,它具有1.5GHz的主频、2GB~8GB的内存、双频Wi-Fi、蓝牙5.0、千兆网口、两个HDMI接口等。它适用于各种教育、创客、媒体中心等场景。
    在这里插入图片描述

  • Apple M1:这是一款基于自定义ARMv8.4架构的应用处理器芯片,它具有8个CPU核心(4个高性能核心和4个高效能核心)、8个或16个GPU核心、16个神经网络加速器核心、8GB或16GB的内存、高速缓存和安全模块等。它适用于苹果公司的IPad、MacBook Air、MacBook Pro、Mac mini和iMac等产品。
    在这里插入图片描述

  • Ampere Altra:这是一款基于Neoverse N1架构的服务器处理器芯片,它具有80个CPU核心(每个核心都可以运行在3GHz)、64MB的L3缓存、128个PCIe 4.0通道、8个内存通道(支持DDR4-3200)等。它适用于各种云计算、边缘计算、高性能计算等场景。
    在这里插入图片描述

五、ARM芯片的最新动态

ARM芯片在不断地发展和创新:

  • 2021年3月,ARM公司发布了ARMv9架构,这是ARM架构十年来的第一次重大升级。ARMv9架构增加了许多新的特性和功能,例如可信执行环境(TEE)、标量扩展(SVE)、实时扩展(RTE)、内存标签扩展(MTE)等。ARMv9架构旨在提高安全性、性能和人工智能能力,满足未来十年的需求。
    在这里插入图片描述

  • 2021年4月,英伟达公司宣布推出Grace CPU,这是一款基于Arm Neoverse V2架构的服务器处理器芯片,它具有高达300个CPU核心、512GB的LPDDR5x内存、900GB/s的NVLink-C2C带宽、600GB/s的PCIe 5.0带宽等。它适用于各种大规模的AI和HPC应用,例如自然语言处理、推荐系统、超级计算等。
    在这里插入图片描述

  • 2021年6月,三星电子公司发布了Exynos 2100,这是一款基于Cortex-X1核心的应用处理器芯片,它具有8个CPU核心(1个Cortex-X1、3个Cortex-A78和4个Cortex-A55)、14个GPU核心(Mali-G78)、3个NPU核心(神经网络处理器)、16GB的LPDDR5内存、6.7GB/s的UFS 3.1存储等。它适用于各种高端的智能手机和平板电脑等产品。
    在这里插入图片描述

  • 2021年7月,华为公司发布了鲲鹏920,这是一款基于自主研发的鲲鹏架构的服务器处理器芯片,它具有64个CPU核心(每个核心都可以运行在2.6GHz)、8个内存通道(支持DDR4-2933)、40个PCIe 4.0通道、100Gb RoCEv2网络接口等。它适用于各种云计算、边缘计算、大数据分析等场景。
    在这里插入图片描述

  • 2023年1月,高通公司发布了Nuvia CPU,这是一款基于Armv9架构的应用处理器芯片,它具有16个CPU核心(每个核心都可以运行在3.5GHz)、32MB的L3缓存、256GB的LPDDR5x内存、1200GB/s的NVLink-C2C带宽、800GB/s的PCIe 5.0带宽等。它适用于各种高性能的移动设备和笔记本电脑等产品。
    在这里插入图片描述

六、Sample

6.1 Apple

6.1 A 系列

芯片发布年份设备CPU 架构CPU 核心数GPU 核心数工艺制程
A42010iPad (第一代)、iPhone 4、iPod touch (第四代)、Apple TV (第二代)ARM Cortex-A81145 nm
A52011iPad 2、iPhone 4S、iPod touch (第五代)、iPad Mini (第一代)、Apple TV (第三代)ARM Cortex-A92245 nm / 32 nm
A5X2012iPad (第三代)ARM Cortex-A92445 nm
A62012iPhone 5、iPhone 5CApple Swift (ARMv7s)2332 nm
A6X2012iPad (第四代)Apple Swift (ARMv7s)2432 nm
A72013iPhone 5S、iPad Air (第一代)、iPad Mini 2、iPad Mini 3Apple Cyclone (ARMv8-A)24 / 6 / 8 /10 /12 /16 /20 /24 /28 /32 /36 /40 /44 /48 /52 /56 /60 /64 /68 /72 /76 /80 /84 /88 /92 /96 /100 /104 /108 /112 /116 /120 /124 /128 nm
A82014iPhone 6、iPhone 6 Plus、iPod touch (第六代)、iPad Mini 4、Apple TV HD、HomePodApple Typhoon (ARMv8-A)24/6/8/10/12/16/20/24/28/32/36/40/44/48/52/56/60/64 nm
A8X2014iPad Air 2Apple Typhoon (ARMv8-A)3820 nm
A92015iPhone 6S、iPhone 6S Plus、iPhone SE (第一代)、iPad (第五代)Apple Twister (ARMv8-A)2614 nm
A9X2015iPad Pro (12.9-inch) (第一代)、iPad Pro (9.7-inch)Apple Twister (ARMv8-A)21216 nm
A10 Fusion2016iPhone 7、iPhone 7 Plus、iPad (第六代)、iPad (第七代)、iPod touch (第七代)Apple Hurricane + Zephyr (ARMv8-A)4(2+2)616 nm
A10X Fusion2017iPad Pro (10.5-inch)、iPad Pro (12.9-inch) (第二代)、Apple TV 4KApple Hurricane + Zephyr (ARMv8-A)6(3+3)1210 nm
A11 Bionic2017iPhone 8、iPhone 8 Plus、iPhone XApple Monsoon + Mistral (ARMv8-A)6(2+4)310 nm
A12 Bionic2018iPhone XS、iPhone XS Max、iPhone XR、iPad Air (第三代)、iPad Mini (第五代)、iPad (第八代)Apple Vortex + Tempest (ARMv8-A)6(2+4)47 nm
A12X Bionic2018iPad Pro (11-inch) (第一代)、iPad Pro (12.9-inch) (第三代)Apple Vortex + Tempest (ARMv8-A)8(4+4)77 nm
A12Z Bionic2020iPad Pro (11-inch) (第二代)、iPad Pro (12.9-inch) (第四代)Apple Vortex + Tempest (ARMv8-A)8(4+4)87 nm
A13 Bionic2019iPhone 11、iPhone 11 Pro、iPhone 11 Pro Max、iPhone SE (第二代)Apple Lightning + Thunder (ARMv8-A)6(2+4)47 nm
A14 Bionic2020iPad Air (第四代)、iPhone 12、iPhone 12 mini、iPhone 12 Pro、iPhone 12 Pro MaxApple Firestorm + Icestorm (ARMv8-A)6(2+4)45 nm
A15 Bionic2021iPad mini (第六代)、iPhone 13、iPhone 13 mini、iPhone 13 Pro、iPhone 13 Pro MaxApple Firestorm + Icestorm (ARMv8-A)6(2+4) / 5(2+3) / 4(2+2) / 3(1+2) / 2(1+1) / 1(1+0) / 0(0+0)5 / 4 / 3 / 2 / 1 / 05 nm
A16 Bionic2022iphone 14Everest + Sawtooth (ARMv8-A)6(2+4)54nm³

6.2 M 系列

M系列芯片具有高性能、低功耗、高集成度等特点,是苹果公司从英特尔x86架构的处理器芯片转向ARM架构的处理器芯片的重要标志。本文将介绍苹果M系列芯片的各个型号,包括其特点、性能、功能和应用等。

芯片发布时间晶体管数CPU核心数GPU核心数NPU核心数内存容量内存带宽
M12020年11月160亿8 (4+4)7或816最高16GB LPDDR4X68GB/s
M1 Pro2021年10月330亿最高10 (8+2)最高1616最高32GB LPDDR4X200GB/s
M1 Max2021年10月570亿最高10 (8+2)最高3216最高64GB LPDDR4X400GB/s
M1 Ultra2022年3月1140亿最高24 (16+8)最高6432最高128GB LPDDR4X800GB/s
M22022年7月180亿8 (4+4)10或1224最高24GB LPDDR5100GB/s
M2 Pro2022年11月360亿最高10 (8+2)最高2024最高48GB LPDDR5300GB/s
M2 Max2023年1月620亿最高10 (8+2)最高4024最高96GB LPDDR5600GB/s
M2 Ultra2023年6月1340亿最高20 (16+4)最高7632最高192GB LPDDR51200GB/s

6.2 STM 系列

芯片发布时间处理器核心主频内存存储外设
STM32F02011年Cortex-M0最高48MHz最高16KB RAM最高256KB Flash最高32个GPIO,最高7个定时器,最高2个ADC,最高1个DAC,最高2个I2C,最高2个SPI,最高4个USART,最高1个USB 2.0 FS
STM32F12007年Cortex-M3最高72MHz最高96KB RAM最高1MB Flash最高80个GPIO,最高15个定时器,最高3个ADC,最高2个DAC,最高2个I2C,最高3个SPI,最高5个USART,最高1个USB 2.0 FS
STM32F22010年Cortex-M3最高120MHz最高128KB RAM最高1MB Flash最高140个GPIO,最高17个定时器,最高3个ADC,最高2个DAC,最高2个I2C,最高4个SPI,最高6个USART,最高1个USB 2.0 HS/FS
STM32F32011年Cortex-M4 (FPU)最高72MHz最高40KB RAM最高512KB Flash最高114个GPIO,最高18个定时器,最高4个ADC,最高2个DAC,最高3个I2C,最多6个SPI,最多8个USART/UART,最多1个USB 2.0 FS
STM32F42011年Cortex-M4 (FPU)最高180MHz最多256KB RAM最多2MB Flash最多168个GPIO, 最多25个定时器, 最多3个ADC, 最多2个DAC, 最多4个I2C, 最多6个SPI, 最多10个USART/UART, 最多1个USB 2.0 HS/FS
STM32F72015年Cortex-M7 (FPU)最多480MHz最多512KB RAM最多2MB Flash最多176个GPIO, 最多26个定时器, 最多3个ADC, 最多2个DAC, 最多4个I2C, 最多6个SPI, 最多10个USART/UART, 最多1个USB 2.0 HS/FS
STM32H72016年Cortex-M7 (FPU)或Cortex-M4 (FPU)或双核(M7+M4)M7:最多550MHz; M4:最多240MHz; 双核: M7:480MHz; M4:240MHzM7:128KB或512KB或1MB RAM; M4:128KB或240KB RAM; 双核: M7:128KB或512KB或1MB RAM; M4:128KB或240KB RAM; 共享:128KB或512KB RAM
STM32L02015年Cortex-M0+最高32MHz最高20KB RAM最高192KB Flash最高51个GPIO,最高16个定时器,最高2个ADC,最高1个DAC,最高2个I2C,最高3个SPI,最高5个USART/UART,最高1个USB 2.0 FS
STM32L12011年Cortex-M3最高32MHz最高80KB RAM最高512KB Flash最高87个GPIO,最高17个定时器,最高3个ADC,最高2个DAC,最高3个I2C,最高3个SPI,最高5个USART/UART,最高1个USB 2.0 FS
STM32L42016年Cortex-M4 (FPU)最高120MHz最高320KB RAM最高2MB Flash最高114个GPIO,最高24个定时器,最高3个ADC,最高2个DAC,最高4个I2C,最多6个SPI, 最多8个USART/UART, 最多1个USB 2.0 FS
STM32L52019年Cortex-M33 (FPU)最高110MHz最高256KB RAM最高512KB Flash最多114 GPIOs, 最多26 timers, 最多3 ADCs, 最多2 DACs, 最多4 I2Cs, 最多6 SPIs, 最多8 USARTs/UARTs, 最多1 USB 2.0 FS


~

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

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

相关文章

Java-API简析_java.lang.ClassLoader类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131345825 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

CentOS 7.9 安装 Jenkins

CentOS 7.9 安装 Jenkins 文章目录 CentOS 7.9 安装 Jenkins一、概述二、安装1、安装 OpenJDK2、安装 Jenkins3、启动 Jenkins4、给 Jenkins 放行端口 三、初始化 Jenkins 配置1、访问2、解锁 Jenkins3、配置清华大学的源地址4、安装插件5、创建管理员用户6、完成安装 四、功能…

TypeScript ~ TS 掌握自动编译命令 ③

作者 : SYFStrive 博客首页 : HomePage 📜: TypeScript ~ TS 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &…

锐捷睿易:云端绑定别人账号,命令方式解绑

一、适用场景 云端绑定了别人的账号,但又不能让他解绑,只能自己解绑从新绑定自己MACC 前提:需要设备联网状态才可以解绑 二、配置步骤 1、登录macc,首页点击设备解绑 2、输入收集的设备序列号,点击获取专属URL&…

chatgpt赋能python:Python清空console的方法

Python清空console的方法 随着Python的应用越来越广泛,我们经常会遇到需要清空Python console的情况。比如,我们可能需要重新开始一段代码的执行,或者想要隐藏过去的交互记录。在这篇文章中,我们将介绍几种方法来清空Python cons…

安装配置nvm-windows对Node.js与npm进行版本控制

一、nvm 由于Node.js版本原因,可能会出现一些错误,如IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported。而且不同的项目,所采用的Node.js的版本不同,重新卸载安装配置,太过繁琐。所以…

chatgpt赋能python:Python求加速度:从计算机视觉到自动驾驶

Python求加速度:从计算机视觉到自动驾驶 在计算机视觉、自动驾驶和机器人等领域,求加速度是常见的任务。Python是一种强大的编程语言,可以用于快速、简便地求解加速度。本篇文章将介绍如何在Python中求解加速度,并探讨加速度在实…

【无标题】很有趣的一个个CSS小球下落动画

代码如下 <!-- 两个div --> <div class"ball"></div> <div class"ground"></div>.ball {width: 30px;height: 30px;background-color: black;border-radius: 50%;position: relative;left: 90px;animation: failing 0.5s ea…

leetcode64. 最小路径和(动态规划-java)

最小路径和 leetcode64. 最小路径和题目描述 暴力递归 缓存代码演示 动态规划代码演示空间压缩代码演示 动态规划专题 leetcode64. 最小路径和 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/minimum-path-sum 题目描…

C高级6.23

一.整理用户相关的指令、整理磁盘相关的指令 用户相关的指令&#xff1a; 1.id -u 查看用户ID 2.id -g 查看组ID 3.whoami 查看用户名 4.sudo adduser 用户名 创建用户 5.给新用户添加sudo权限 给新用户添加sudo权限的步骤&a…

Spring 与 Servlet-1

整合 Spring 和 Servlet DAO 使用 JDBC 通过模板类进行整合&#xff0c;模板类由 Spring 框架提供&#xff0c;只需进行配置即可 1、依赖&#xff1a;spring-jdbc 和连接池 druid、数据库驱动 mysql-connect-java 2、引入了 IoC、DI 后对象的创建完全交给 Spring 负责&#…

chatgpt赋能python:求1-3+5-7:用Python解决这个算术问题

求1-35-7: 用Python解决这个算术问题 介绍 在Python编程领域中&#xff0c;算术问题是我们经常会遇到的。今天&#xff0c;我们将介绍如何用Python求1-35-7这个算式的结果。这个问题看起来很简单&#xff0c;但如果你是初学者&#xff0c;可能会有点难以理解。不必担心&#…

嵌入式中编写可移植 C/C++ 程序的要点方法

以前做过两年 C 程序移植工作&#xff0c;从 Win32 平台移植到 Linux 平台。大约有上百万行 C/C代码&#xff0c;历时一年多。 在开发 Win32 版本时&#xff0c;已经强调了程序的可植性&#xff0c;无奈 Win32 团队里对 Linux 精通的人比较少&#xff0c;很多问题没有想到&…

InstructGPT论文解读

介绍 上图可以看出InstructGPT(PPO-ptx)及变体&#xff08;variant trained without pretraining mix&#xff09;(PPO)显著优于GPT&#xff0c;1.3B的InstructGPT优于175B的GPT&#xff0c;SFT作为RLHF第一阶段的模型效果比GPT好。当然结果是由人来评价的。 RLHF包含三个步骤…

多EIP下的UDP通信异常分析

背景 SRE和程序在测试DDos多EIP防御方案的过程中&#xff0c;发现多EIP模式下, 监听的UDP端口连接会出现客户端访问异常。 表现为客户端发送一次数据后服务端这边主动断开了&#xff0c;或是客户端和服务端同时断开。 该问题会导致业务在多EIP方案下无法达到预期效果&#xff0…

【Visual Studio】Qt 获取系统时间,并实时更新时间,使用 C++ 语言,配合 Qt 开发串口通信界面

知识不是单独的&#xff0c;一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏&#xff1a;Visual Studio。 这个需求来源于这个工程&#xff1a;【Visual Studio】Qt 的实时绘图曲线功能&#xff0c;使用 C 语言&#xff0c;配合 Qt 开发串口通信界面。 文章目录 Qt…

chatgpt赋能python:Python求和1-100的方法

Python求和1-100的方法 Python语言简介 Python是一个广泛使用的高级编程语言&#xff0c;其设计哲学强调代码可读性和语法简洁性。Python语言作为一门多范式的编程语言&#xff0c;支持对象、函数式和结构化编程等多种形式。Python应用领域广泛&#xff0c;如机器学习、桌面应…

chatgpt赋能python:Python求1!:介绍

Python求1!&#xff1a;介绍 在Python编程中&#xff0c;阶乘是一个常见的数学运算。阶乘指定的数的所有小于或等于其本身的正整数之积&#xff0c;例如&#xff0c;1!等于1&#xff0c;2&#xff01;等于2乘以1&#xff0c;3!等于3乘以2乘以1&#xff0c;以此类推。 在这篇文…

【工程项目管理】工程项目管理实践报告

前言&#xff1a; 1.大学课程的大作业&#xff0c;觉得存起来也没什么用就干脆发出来了。。。 2.很可能有不严谨之处&#xff0c;各位看官如若发现欢迎指出~ 创作者文章管理系统 1 实践环节作业1&#xff1a;选题及任务分解WBS &#xff08;1&#xff09;选题 a.项目名称&a…

【1 beego学习 -MAC框架与ORM数据库】

0 beego的启动流程 1 入口 package mainimport ( //全局使用的路由和models_ "studyDemo/models"_ "studyDemo/routers"beego "github.com/beego/beego/v2/server/web" )func main() {beego.Run() }2 根据请求路由加载对应的控制器 package r…