嵌入式面试题-1

常见面试题

  1. 请说说你对嵌入式的理解。⭐⭐⭐⭐

    嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、成本、体积、功耗严格要求的专用计算机系统。

    嵌入式系统主要由嵌入式微处理器外围硬件设备嵌入式操作系统以及用户应用软件等部分组成

  2. 精简指令集和复杂指令集的区别⭐⭐⭐⭐

    1. CISC(Complex Instruction SetComputer)是“复杂指令集”。自PC机诞生以来,处理器都采用CISC指令集方式。这种指令系统的指令不等长,指令的数目非常多,编程和设计处理器时都较为麻烦。
    2. RISC(Reduced Instruction SetComputing)是“精简指令集”。研究人员在对CISC指令集进行测试时发现,各种指令的使用频度相当悬殊,其中常使用的是一些比较简单的指令,它们仅占指令总数的20%,但在程序中出现的频度却占80%。RISC正是基于这种思想提出的。
  3. 请说说CPU的内部架构和工作原理⭐⭐⭐⭐⭐

    img

    CPU从逻辑上可以划分成3个部分,分别是控制单元运算单元存储单元,这三部分由CPU内部总线连接起来。

    控制单元(CU, Control Unit)控制单元是整个CPU的指挥控制中心,由程序计数器PC (Program Counter)、 指令寄存器IR (Instruction Register)组成。程序计数器包含当前正在执行的指令的地址,在每个指令被获取之后,程序计数器指向顺序中的下一个指令。指令寄存器用于暂存当前正在执行的指令。

    运算单元(ALU, Arithmetic Logic Unit):是运算器的核心。可以执行算术运算 (包括加减乘数等基本运算及其附加运算)和逻辑运算 (包括移位、逻辑测试或两个值比较)。

    存储单元:包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。

    CPU的运行原理就是:控制单元在时序脉冲的作用下,将程序计数器里所指向的指令地址送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。这个过程不断重复,直到程序结束。

  4. 请说说CPU的内核态与用户态⭐⭐⭐⭐⭐

    多数CPU都有两种模式,即内核态用户态。通常,在PSW(Program Status Word,程序状态字寄存器)中有一个二进制位控制这两种模式。当在内核态运行时,CPU可以执行指令集中的每一条指令,并且使用硬件的每一种功能。相反的,用户程序在用户态下运行,仅允许执行整个指令集的一个子集和访问所有功能的一个子集。相对应的,内核态与用户态也是操作系统的两种运行级别。内核态拥有最高权限,可以访问所有系统指令;用户态则只能访问一部分指令。

    在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃。比如:清内存、设置时钟等。所以区分内核态与用户态主要是出于安全的考虑。

  5. 请说说CPU的流水线工作原理⭐⭐⭐

    CPU执行一条指令时,也分为几个步骤,如指令取指(InstrucTIon Fetch)、指令译码(InstrucTIon Decode)、指令执行(Execute)、访存(Memory Access)、写回(Write-Back),CPU并不会等一条指令完全执行完才执行下一条指令,而是像流水一样。

    img
  6. 嵌入式流水线工作有什么不同?⭐⭐⭐⭐

    而嵌入式CPU为了更高的效率,采用的是超流水线结构。在普通流水线中,CPU执行一条指令被拆成了五个步骤,每个步骤执行时间可能都是1ns,但是有一个长指令,拆分成五个步骤时,指令执行(Execute)这个步骤却需要2ns,那整个流水线的效率就受制于指令执行(Execute)这个步骤了。

    所以为了提高效率,我们可以把指令执行(Execute)这个步骤再拆分成两组(寄存器+组合逻辑),每组执行时间为1ns,这样我们的普通流水线成了六级流水线了,这就是超流水线。Intel的 i7 处理器有16级流水线,AMD的速龙64系列CPU流水线为20级。

  7. 什么是超流水线,为什么?⭐⭐⭐⭐

    而嵌入式CPU为了更高的效率,采用的是超流水线结构。在普通流水线中,CPU执行一条指令被拆成了五个步骤,每个步骤执行时间可能都是1ns,但是有一个长指令,拆分成五个步骤时,指令执行(Execute)这个步骤却需要2ns,那整个流水线的效率就受制于指令执行(Execute)这个步骤了。

    所以为了提高效率,我们可以把指令执行(Execute)这个步骤再拆分成两组(寄存器+组合逻辑),每组执行时间为1ns,这样我们的普通流水线成了六级流水线了,这就是超流水线。Intel的 i7 处理器有16级流水线,AMD的速龙64系列CPU流水线为20级。

  8. 什么是乱序执行?⭐⭐⭐⭐

    乱序执行(out-of-order execution)是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。比方Core乱序执行引擎说程序某一段有7条指令,此时CPU将根据各单元电路的空闲状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路执行。在各单元不按规定顺序执行完指令后还必须由相应电路再将运算结果重新按原来程序指定的指令顺序排列后才能返回程序。

  9. 请说说CPU的两种体系结构,有什么区别⭐⭐⭐⭐⭐

    img

    计算机系统可以分

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

<p> - 本专刊适合于C/C++已经入门的学生或人士,有一定的编程基础。 - 本专刊适合于互联网C++软件开发、嵌入式软件求职的学生或人士。 - 本专刊囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构等一系列知识点的讲解,并且最后总结出了高频面试考点(附有答案)共近400道,知识点讲解全面。不仅如此,教程还讲解了简历制作、笔试面试准备、面试技巧等内容。 </p> <p> <br /> </p>

全部评论
怎么没有嵌入式Linux部分的知识点呢?
点赞 回复 分享
发布于 2022-02-15 10:49

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
评论
点赞
3
分享
牛客网
牛客企业服务