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

【面试04】ARM架构问题

        温馨提示:点击问题可以直达解析(仅供参考) 

目录

1.什么是ARM架构?它有哪些特点和优势?

2.ARM体系结构的版本有哪些?它们之间有什么区别?

3.请解释一下ARM处理器的体系结构,包括处理器模式、寄存器和指令集等。

4.什么是Thumb指令集?与ARM指令集有什么区别?

5.请介绍一下ARM的异常处理机制,包括中断和异常的区别以及处理过程。

6.什么是ARM的Cache和MMU?它们在系统中的作用是什么?

7.ARM内核分为哪几类?他们之间有什么区别?

8.简述ARM的寄存器(r11-r15 cpsr、spsr)的作用。

9.串口的一帧的数据格式是什么样的?串口出现了数据乱码有哪些原因?

10.IIC的时序图是什么样的?数据出现乱码的原因有哪些?

11.中断与DMA有何区别?

12.RS232和RS485通讯接口有什么区别?

13.ARM的基本数据类型

14.字节、字、位、比特的概念和关系。

15.ARM处理器存储格式。

16.ARM常用指令集。

17.ARM架构和x86架构有什么区别


1.什么是ARM架构?它有哪些特点和优势?

        ARM架构(Advanced RISC Machine)是一种处理器架构,广泛应用于移动设备、嵌入式系统和低功耗应用中。

        以下是ARM架构的一些特点和优势:

   1.简化指令集ARM采用精简指令集(RISC, Reduced Instruction Set Computer),指令集简单且易于解码和执行,使得处理器设计更加高效。

   2.低功耗设计ARM架构在设计上注重低功耗特性,使得ARM处理器能够在电池供电的移动设备上实现较长的续航时间。

   3.高性能尽管ARM架构着重于低功耗设计,但它也能提供出色的性能。ARM处理器通过多核设计、高频率运行和高级优化技术,实现了高效的计算能力。

   4.可扩展性ARM架构具有良好的可扩展性,可以应用于不同的设备和应用领域。从低端的嵌入式系统到高端的服务器,ARM处理器都能够满足各种需求。

   5.软件生态系统ARM架构享有广泛的软件生态系统支持。许多操作系统(如Android、iOS)和应用程序已经针对ARM架构进行了优化,使得ARM处理器成为移动设备的首选。

   6.设计定制性ARM架构提供了灵活的设计定制选项,使得芯片制造商能够根据特定应用的需求进行定制和优化,从而实现更好的性能和功耗平衡。

2.ARM体系结构的版本有哪些?它们之间有什么区别?

        版本信息:

        1.ARMv1:最早的ARM体系结构版本,于1985年发布。它使用了32位的精简指令集。

        2.ARMv2:于1986年发布,增加了一些新的指令和功能。

        3.ARMv3:于1992年发布,引入了Thumb指令集,该指令集使用16位指令,用于提高代码密度。

        4.ARMv4:于1994年发布,增加了更多指令和功能,如支持Java虚拟机(Jazelle)和分页内存管理。

        5.ARMv5:于1997年发布,引入了更多指令和功能,包括协处理器支持、增强的分页内存管理和增强的Thumb指令集。

        6.ARMv6:于2002年发布,引入了Thumb-2指令集,该指令集能够同时支持16位和32位指令。

        7.ARMv7:于2005年发布,包括多个变体,如ARMv7-A(应用程序处理器)、ARMv7-R(实时处理器)和ARMv7-M(微控制器)。ARMv7架构增加了更多指令和功能,如NEON(SIMD指令集扩展)和虚拟化支持。

        8.ARMv8:于2011年发布,引入了AArch64(64位执行状态),与之前的ARMv7架构兼容。ARMv8还包括一些新的特性,如更高的性能、更大的虚拟地址空间和更丰富的加密支持。

        9.ARMv9:于2021年发布,引入了许多新的功能,如Confidential Compute Architecture(机密计算架构)、Realms(安全执行环境)和SVE2(可扩展向量扩展2)等。

        区别:这些不同版本的ARM体系结构之间的区别主要体现在指令集、功能和架构特性方面。每个版本都对之前的版本进行了改进和扩展,以提供更高的性能、更丰富的功能和更好的能效。

3.请解释一下ARM处理器的体系结构,包括处理器模式、寄存器和指令集等。

        处理器模式:ARM处理器有多个处理器模式,每个模式用于执行不同类型的任务。常见的处理器模式包括:

        用户模式(User Mode):用户模式是一种常规模式,用于执行应用程序。在用户模式下,处理器的权限较低,无法直接执行特权指令或访问受保护的系统资源。它是最受限制的模式。

        系统模式(System Mode):系统模式是特权模式,不受用户模式的限制。用户模式和系统模式共用一套寄存器,操作系统在该模式下可以方便的访问用户模式的寄存器,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。

        管理模式(Supervisor mode): 管理模式是CPU上电后默认模式,因此,在该模式下主要用来做系统的初始化,软中断处理也在该模式下。当用户模式下的用户程序请求使用硬件资源时,通过软件中断进入该模式。

        终止模式(Abort mode):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

        未定义模式(Undefined mode):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

        快速中断模式(FIQ mode):用于高速数据传输或通道处理。 快速中断模式是相对一般中断模式而言的,它是用来处理对时间要求比较紧急的中断请求,主要用于高速数据传输及通道处理中。(快中断有许多(R8~R14)自己的专用寄存器,发生中断时,使用自己的寄存器就避免了保存和恢复某些寄存器。如果异常中断处理程序中使用它自己的物理寄存器之外的其他寄存器,异常中断处理程序必须保存和恢复这些寄存器)。

        一般中断模式(IRQ mode):用于通用的中断处理。一般中断模式也叫普通中断模式,用于处理一般的中断请求,通常在硬件产生中断信号之后自动进入该模式,该模式为特权模式,可以自由访问系统硬件资源。

        寄存器:ARM处理器有多个寄存器,用于存储和处理数据。常见的寄存器包括:

        1.通用寄存器(General-Purpose Registers):用于存储临时数据和计算结果。

        2.程序计数器(Program Counter,PC):存储当前正在执行的指令的地址。

        3.程序状态寄存器(Current Program Status Register, CPSR):存储处理器的状态信息,如处理器模式、中断使能等。

        4.程序状态保存寄存器(Saved Program Status Registers, SPSR):当异常发生时,用于存储CPSR信息。

        指令集:ARM处理器使用ARM指令集和Thumb指令集。

        1.ARM指令集包含32位的指令,提供了丰富的功能和灵活性。

        2.Thumb指令集支持16位的指令,用于提高代码密度和节省存储空间。

        3.最新的ARM处理器还支持AArch64执行状态,提供了64位的指令集,称为AArch64指令集。

4.什么是Thumb指令集?与ARM指令集有什么区别?

        Thumb指令集是ARM架构中的一种16位指令集,旨在提高代码密度和降低存储器需求。下面是Thumb指令集与ARM指令集的区别:

  1.指令长度:ARM指令集的指令长度为32位,而Thumb指令集的指令长度为16位。由于指令长度减少了一半,Thumb指令集可以在同样的存储空间下存储更多的指令,从而提高了代码密度。

  2.寄存器数量:ARM指令集有16个通用寄存器,每个寄存器都是32位的。而Thumb指令集有8个通用寄存器,每个寄存器都是16位的。这意味着在Thumb指令集中,可以同时使用的寄存器数量更少,因此需要更频繁地进行数据的加载和存储。

  3.指令集功能:ARM指令集提供了更多的功能和灵活性,支持更多的数据处理操作和复杂的指令流控制。相比之下,Thumb指令集在设计上更加简化,提供了基本的数据操作和简单的控制流指令,牺牲了一些高级功能和复杂的指令。

  4.性能:由于Thumb指令集的指令长度较短,指令的执行时间通常也较短。因此,在某些情况下,Thumb指令集可以提供更高的执行速度和更低的功耗。

5.请介绍一下ARM的异常处理机制,包括中断和异常的区别以及处理过程。

  1. 中断和异常的区别:
    • 中断(Interrupt)是由外部设备或事件引发的中断请求,用于打断正在执行的指令流,让处理器转移到中断服务程序(Interrupt Service Routine,ISR)来处理该事件。中断通常由外部设备的信号触发,例如定时器溢出、外部设备的输入等。
    • 异常(Exception)是由程序运行过程中的异常情况引发的事件,如无效的指令、访问越界、除以零等。异常会导致处理器从当前模式切换到异常模式,并执行异常处理程序(Exception Handler)来处理异常情况。
  2. 异常处理过程:
    1. 当发生异常时,处理器会保存当前的上下文信息(如寄存器状态、程序计数器等),以便稍后恢复执行。
    2. 处理器会根据异常类型和优先级判断是否响应该异常,如果需要响应,则会切换到异常模式,并跳转到相应的异常处理程序。
    3. 异常处理程序会执行相关的异常处理逻辑,如错误处理、状态恢复、错误日志记录等。
    4. 在处理完异常后,处理器会从保存的上下文信息中恢复状态,并回到原来的模式和指令流中,继续执行

6.什么是ARM的Cache和MMU?它们在系统中的作用是什么?

        ARM的Cache和MMU是处理器架构中的两个重要组件,它们在系统中扮演着关键的角色。以下是对它们的详细解释及其在系统中的作用:
        

        Cache,即高速缓存,是ARM处理器中一块可高速访问的内存块。它位于CPU和主存(如DRAM)之间,用于缓存CPU经常访问的数据和指令,以减少对主存的访问次数,从而提高系统的整体性能。

        作用:

        1.提高访问速度:Cache的访问速度远快于主存,因此当CPU需要读取数据或指令时,首先会在Cache中查找。如果命中(即所需数据或指令已存在于Cache中),则直接从Cache中读取,避免了访问速度较慢的主存。

        2.减少主存访问次数:通过缓存CPU经常访问的数据和指令,Cache显著减少了CPU对主存的访问次数,从而降低了系统的整体功耗和延迟。

        3.支持多级缓存:ARM处理器通常支持多级缓存架构,如L1 Cache(最接近CPU的缓存)、L2 Cache(次级缓存)等。这种多级缓存结构能够进一步提高缓存的命中率和效率。

        MMU,即内存管理单元(Memory Management Unit),是负责处理虚拟内存与物理内存之间映射关系的硬件设备。它允许操作系统为每个进程分配独立的虚拟地址空间,并保护每个进程的内存不被其他进程访问。

        作用:

        1.虚拟地址到物理地址的映射:MMU将CPU发出的虚拟地址转换为物理地址,使得CPU能够正确地访问内存中的数据和指令。这种映射关系通过页表(Page Table)来实现,页表存储了虚拟地址到物理地址的转换信息。

        2.内存访问权限保护:MMU通过页表中的权限位来控制不同进程对内存的访问权限。例如,它可以防止一个进程访问另一个进程的内存区域,从而保护系统的稳定性和安全性。

        3.支持虚拟内存管理:通过MMU的虚拟内存管理功能,操作系统可以灵活地管理内存资源。例如,它可以将不常用的内存页面交换到磁盘上(称为页面置换),以便为其他进程提供更多的内存空间。

        ARM的Cache和MMU在系统中扮演着至关重要的角色。Cache通过减少CPU对主存的访问次数来提高系统的整体性能和效率;而MMU则通过虚拟地址到物理地址的映射和内存访问权限保护来确保系统的稳定性和安全性。这两个组件的协同工作使得ARM处理器能够高效地运行各种复杂的应用程序和系统。

7.ARM内核分为哪几类?他们之间有什么区别?

        ARM内核主要分为三类,Cortex-A,Cortex-R,Cortex-M三种,A代表Applications,向用户提供全方位解决方案,主要用于复制的应用场合,比如智能手机、移动计算平台,数字电视、机顶盒、打印机或服务器等。R代表Real-Time Embedded,主要用于实时应用的系统,面向深层嵌入式实时应用,对低功耗、良好的中断行为、卓越性能以及与现有平台的高兼容性这些需求进行了平衡考虑,比如摄像机、智慧汽车等。M代表MCU & FPGA,面向具有确定性的微控制器应用的成本敏感型解决方案,主要是针对微控制器领域开发的,在该领域中,既需进行快速且具有高确定性的中断管理,又需将门数和可能功耗控制在最低,例如玩具,电子手表、音响、游戏手柄等设备。 

8.简述ARM的寄存器(r11-r15 cpsr、spsr)的作用。

        R0~R12、R15、CPSR为通用寄存器,在任意一个模式下内核都可以存取,R13、R14与SPSR为私有寄存器,每个模式都有自己独有的。

        R0~R10    主要用于存放临时数据

        R11(fp) frame pointer        用来记录一个栈空间开始的地址(栈底寄存器)

        R12(ip) The Intra- Procedure-call scratch register        用来临时存放sp

        R13(sp)通常用作栈指针。指向当前栈的顶部(栈顶寄存器)

        R14(lr)  通常用作连接(或返回地址)寄存器。存储子程序返回地址 (链路寄存器)

        R15(pc)通常用作程序计数器,存储下一条要执行的指令的地址。当执行指令时,CPU自动地修改PC 的内容,即每执行一条指令PC增加一个量,使 PC总是指向正在取指的指令地址。

        CPSR(Current Program Status Register)状态寄存器,记录当前的算数/逻辑操作结果、记录中断禁止标志位、记录当前的状态(ARM / Thumb)、记录当前的操作模式等

        SPSR(Saved Program Status Register)临时保存CPSR,当一个异常发生时保存当前的CPSR 值。结合连接寄存器可使处理器返回先前的状态。

9.串口的一帧的数据格式是什么样的?串口出现了数据乱码有哪些原因?

串口通信中一帧数据通常包含以下几个部分:

        1.起始位:表示数据帧的开始,通常为逻辑低电平。

        2.数据位:实际传输的数据位数,通常为8位,可以是5位、6位、7位或9位。

        3.校验位:用于校验数据的正确性,可以是奇校验、偶校验、无校验等。

        4.停止位:表示数据帧的结束,通常为逻辑高电平。

串口出现数据乱码的原因可能包括:

        1.波特率不匹配:发送端和接收端的波特率设置不一致,导致数据接收错误。

        2.数据位、校验位、停止位设置错误:发送端和接收端的数据位、校验位、停止位设置不一致,导致数据解析错误。

        3.电气干扰:外部电磁干扰或信号线干扰导致数据传输错误。

        4.缓冲区溢出:接收端处理数据速度不够快,导致缓冲区溢出,造成数据丢失或错位。

线路连接问题:串口线路连接不良或接触不良导致数据传输异常。

10.IIC的时序图是什么样的?数据出现乱码的原因有哪些?

        注意I2C每帧数据位为8位。I2C地址为7位(理论最大从设备数量为2^7-1=127个,但因为物理限制,如总线电容限制,从设备一般不建议超过8个)。

        时序图通常包括以下几个部分:

        1.Start Condition:开始条件,SCL为高电平时,SDA由高变低表示开始条件。

        2.Address + R/W Bit:地址和读/写位,从器件地址后跟一个读/写位。

        3.Acknowledge Bit:应答位,主设备发送数据后,接收设备会发送一个应答位。

        4.Data Transfer:数据传输阶段,包括主设备发送数据、接收设备应答、接收设备发送数据等。

        5.Stop Condition:停止条件,SCL为高电平时,SDA由低变高表示停止条件。

        I2C数据乱码可能的原因包括:

        1.时钟频率不匹配:主设备和从设备的时钟频率设置不一致,导致数据传输错误。

        2.线路干扰:外部电磁干扰或信号线干扰导致数据传输错误。

        3.地址设置错误:主设备发送的地址错误或从设备地址设置错误,导致数据传输混乱。

        4.数据线连接问题:SDA线连接不良或接触不良导致数据传输异常。

        5.应答错误:接收设备未正确应答或主设备未正确识别应答信号,导致数据传输错误。

        

        详细内容请见IIC知识点那部分附链接。

11.中断与DMA有何区别?

        DMA:是一种无须CPU的参与,就可以让外设与系统内存之间进行双向数据传输的硬件机制,使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来,从而大大提高系统的吞吐率。

        中断:是指CPU在执行程序的过程中,出现了某些突发事件时,CPU必须暂停执行当前的程序,转去处理突发事件,处理完毕后CPU又返回源程序被中断的位置并继续执行。

        所以中断和DMA的区别就是:DMA不需CPU参与,而中断是需要CPU参与的。

12.RS232和RS485通讯接口有什么区别?

        1.传输方式不同。 RS232采取不平衡传输方式,即所谓单端通讯。 而RS485则采用平衡传输,即差分传输方式。

        2.传输距离不同。RS232适合本地设备之间的通信,传输距离一般不超过20m。而RS485的传输距离为几十米到上千米。

设备数量。RS232 只允许一对一通信,而RS485 接口在总线上是允许连接多达128个收发器。

        3.连接方式。RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据,因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。

        

        总结:从某种意义上,可以说,线路上存在的仅仅是电流,RS232/RS485规定了这些电流在什么样的线路上流动和流动的样式。

13.ARM的基本数据类型

        双字节(DoubleWoRd):64位

        字(WoRd):在ARM体系结构中,字的长度为32位。

        半字(Half-WoRd):在ARM体系结构中,半字的长度为16位。

        字节(Byte):在ARM体系结构中,字节的长度为8位。

14.字节、字、位、比特的概念和关系。

        1.位(bit):来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位,11010100是一个8位二进制数。一个二进制位只可以表示0和1两种状态。

        2.字节(byte):字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。八位二进制数最小00000000,最大为11111111;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。

        3.字:计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)。一个字通常由一个或多个(一般是字节的整数位)字节构成。例如286微机的字由2个字节组成,它的字长为16;486微机的字由4个字节组成,它的字长为32位机。计算机的字长决定了其CPU一次操作处理实际位数的多少,由此可见计算机的字长越大,其性能越优越。

15.ARM处理器存储格式。

        ARM体系结构将存储器看作是从0地址开始的字节的线性组合。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB。ARM体系结构可以用两种方法存储字数据,分别为大端模式和小端模式。

        大端模式(高低高低):字的高字节存储在低地址字节单元中,字的低字节存储在高地址字节单元中。

        小端模式(高高低低):字的高字节存储在高地址字节单元中,字的低字节存储在低地址字节单元中。

16.ARM常用指令集。

1.数据操作指令:

(1)MOV 将数据从一个寄存器传送到另一个寄存器:

  MOV        AX,2000H;        将16位数据2000H传送到AX寄存器

  MOV         AL,20H;            将8位数据20H传送到AL寄存器

  MOV         AX,BX;             将BX寄存器的16位数据传送到AX寄存器

  MOV         AL,[2000H];      将2000H单元的内容传送到AL寄存器

  MOVW          把 16 位立即数放到寄存器的底16位,高16位清0

  MOVT           把 16 位立即数放到寄存器的高16位,低 16位不影响

  movw        r8, #19028    ; 0x4a54

  movt         r8, #49456    ; 0xc130

  r8 = 0xc1304a54

(2)AND将寄存器做“逻辑与”操作后保存结果到其他寄存器

       AND   R2,R1,R3              //  R2 = R1 & R3

       ANDS  R0,R0,#0x01       //  R0 = R0 & 0x01

(3)SUB        减

       SUB   R0,R1,R2      //R0 = R1 – R2

       SUB   R0,R1,#256    //R0 = R1 -256

(4)ADD        加

       ADD  R0,R1,R2       //R0 = R1 + R2

       ADD  R0,R1,#256     //R0 = R1 + 256

       ADD  R0,R2,LSL#1    //R0 = R2 + (R3 << 1)

(5)乘法指令:

  MUL  MLA

  MUL  R1,R2,R3     //R1 = R2 * R3

  MOV  R0,#0x0A

  MLA  R1,R2,R3,R0   // R1 = R2 * R3 + 10

(6)LDR从存储器中将一个32位的字数据传送到目的寄存器中。

       LDR  R1,[R0,#0x12]         //将R0 +12地址处的数据读出,保存到R0中;

       LDR  R1,[R0,R2]              //将R0 + R1地址的数据读出,保存到R1中;

       LDR  Rd,[Rn],#0x04        //Rn的值用作传输数据的基地址,在数据传送后,将偏移量0x04与Rn相加写回到Rd中

  LDR R0,[R1,LSL #3]            ;将存储器地址为R1*8的字数据读入寄存器R0。

  LDR R0,[R1,R2,LSL #2]    ;将存储器地址为R1+R2*4的字数据读入寄存器R0。

  LDR R0,[R1,,R2,LSL #2]!  ;将存储器地址为R1+R2*4的字数据读入寄存器R0,并将R1+R2*4的值存入R1。

(7)STR 用于将一个32bit的数据写入到指定的内存单元

      STR  R0,[R1],#8   //将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入R1。

  STR  R0,[R1,#8]      //将R0中的字数据写入以R1+8为地址的存储器中

  STR  R1, [R0]        //将r1寄存器的值,传送到地址值为r0的(存储器)内存中

(8)MRS: 把程序状态寄存器的值送到一个通用寄存器中

       MRS  R1, CPSR  //将CPSR状态寄存器读出,保存到R1中

       MRS  R2, SPSR

(9)MSR:把寄存器的内容传送到程序状态寄存器

       MSR  CPSR_c,#0xD3  //CPSR[7:0] = 0xD3切换到管理模式

       MSR  CPSR_c,R3      //CPSR = R3

2.ARM指令的寻址方式:

(1)立即数寻址:

  MOV  R0,#0          //送0到R0中

  ADD  R3,R3,#1      //R3的值加1

  CMP  R7,#1000       //R7的值和1000比较

  BIC   R9,R8,#0xff00  //将R8中8~15位清0,结果保存在R9中

(2)寄存器寻址:

  寄存器的值可以被直接用于数据操作指令

   MOV  R2,R0      //R0的值送R2

   ADD  R4,R3,R2  //R4 = R2 + R3

   CMP  R7,R8      //比较R7和R8的值

(3)寄存器移位寻址:

  预处理和移位发生在同一周期内,有效使用移位寄存器,可以提供代码执行效率;

   ADD  R2,R0,R1,LSR  #5

   MOV  R1,R0,LSL  #2

   RSB  R9,R5,R5,LSL  #1

   SUB  R1,R2,R0,LSR  #4

(4)寄存器间接寻址:

  LDR  R1,[R2]  //将R2的数值作为地址,取出地址中的数据保存到R1中

  STR  R1,[R2]  //将R2数值作为地址,取出R1中的值存入R2所指向的地址

(5)基址变址寻址:

  基址变址是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址;

  基址变址寻址常用于查表、数组操作、访问基址附近的存储单元等。

   LDR  R1,[ R0,#0xf ]  //将R0的数值加0x0f作为地址,取出此地址的数值保存到R1

   STR  R1,[R0,#-2]   //将R0的数值减2作为地址,将R1中的内容保存到此地址中

   STR  R1,[R0,+R2]   //将R0的值加上R2的值作为地址,把R1的内容保存到该地址

(6)相对寻址:

  BL  FUN1     //调用到FUN1的子程序

  B   LOOP     //条件跳转到LOOP标号处

17.ARM架构和x86架构有什么区别

1.性能:

        X86结构的电脑无论如何都比ARM结构的系统在性能方面要快得多、强得多。X86的CPU随便就是1G以上、双核、四核大行其道,通常使用45nm(甚至更高级)制程的工艺进行生产;而ARM方面:CPU通常是几百兆,最近才出现1G左右的CPU,制程通常使用不到65nm制程的工艺,可以说在性能和生产工艺方面ARM根本不是X86结构系统的对手。

  但ARM的优势不在于性能强大而在于效率,ARM采用RISC流水线指令集,在完成综合性工作方面根本就处于劣势,而在一些任务相对固定的应用场合其优势就能发挥得淋漓尽致。

2.扩展能力:

  X86结构的电脑采用“桥”的方式与扩展设备(如:硬盘、内存等)进行连接,而且x86结构的电脑出现了近30年,其配套扩展的设备种类多、价格也比较便宜,所以x86结构的电脑能很容易进行性能扩展,如增加内存、硬盘等。

  ARM结构的电脑是通过专用的数据接口使CPU与数据存储设备进行连接,所以ARM的存储、内存等性能扩展难以进行(一般在产品设计时已经定好其内存及数据存储的容量),所以采用ARM结构的系统,一般不考虑扩展。基本奉行“够用就好”的原则。

3.功耗:

        X86电脑因考虑要适应各种应用的需求,其发展思路是:性能+速度。20多年来x86电脑的速度从原来8088的几M发展到现在随便就是几G,而且还是几核,其速度和性能已经提升了千、万倍,技术进步使x86电脑成为大众生活中不可缺少的一部分。但是x86电脑发展的方向和模式,使其功耗一直居高不下,一台电脑随便就是几百瓦,即使是号称低功耗节能的手提电脑或上网本,也有十几、二十多瓦的功耗,这与ARM结构的电脑就无法相比。

        PS. 关注博主相关内容抢先看! 


http://www.kler.cn/a/283201.html

相关文章:

  • websocket初始化
  • WordPress 6.7 “Rollins”发布
  • 深度学习中的感受野:从基础概念到多层次特征提取
  • 响应式网页设计--html
  • 关于GCC内联汇编(也可以叫内嵌汇编)的简单学习
  • 文件夹被占用了无法删除怎么办?强制粉碎文件夹你可以这样操作
  • 从 MLOps 到 LMOps 的关键技术嬗变
  • 红黑树刨析(删除部分)
  • 阿里PAI-ChatLearn:大规模 Alignment高效训练框架正式开源
  • 【C++笔记】类和对象的深入理解(一)
  • MySQL:简述数据库的主从复制
  • 08:字符串
  • 用mintupgrade工具将Linux Mint 21.3升级到Linux Mint 22失败的解决办法
  • Python私教张大鹏FastAPI开源框架和项目第一次整理 20240830
  • chapter09-OOP高级部分——(抽象类模版设计模式)——day12
  • Android APK打包脚本
  • 非阻塞式定时器 apscheduler
  • 力扣8.28
  • 2024年八大在线流程图工具推荐,快来试试吧!
  • 基于asp.net的在线考试系统源码分享
  • Mysql8.x配置详解
  • 回归预测|基于CNN-LSTM-Attention结合Adaboost集成数据预测Matlab程序 多特征输入单输出
  • 喜羊羊做Python二级(模拟考试--易错点)
  • 算法练习: 矩阵置零
  • 对于虚拟机上的相关命令
  • leetcode 19.删除链表的倒数第N个结点