嵌入式基础(一)基本概念
1.请说说你对嵌入式的理解⭐
- 以应用为中心:嵌入式系统的设计是为了满足特定的应用需求。与通用计算机系统不同,嵌入式系统的功能紧密围绕在特定的应用场景中。
- 以计算机技术为基础:嵌入式系统依赖计算机技术,包括嵌入式微处理器、嵌入式操作系统等。这些技术支持嵌入式系统进行计算和控制。
- 软件硬件可剪裁:嵌入式系统的设计允许根据具体应用的需求对软件和硬件进行定制和裁剪。这种灵活性有助于优化系统的性能和资源利用。
- 适应应用系统对要求的严格要求:嵌入式系统通常面临功能、成本、体积和功耗等方面的极端要求。设计过程需要在这些要求之间找到平衡点,以最优化系统性能。
- 由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成:嵌入式系统主要包括嵌入式微处理器、外围硬件设备、嵌入式操作系统和用户应用软件。这些组成部分共同协作,使嵌入式系统能够完成其指定的任务。
2.嵌入式流水线?⭐⭐
嵌入式流水线:
嵌入式流水线是一种处理器设计技术,旨在将处理器的工作分解成多个阶段,如指令获取、指令解码、执行、访存和写回等。每个阶段执行特定任务,使得不同指令可以并行处理,从而提高处理器的效率和性能。
- 取指阶段:在这个阶段,处理器从指令存储器中获取一条指令,并将其送入流水线。这个阶段的主要任务是读取指令、确定指令类型以及确定指令需要的操作数。
- 译码阶段:取得的指令会经过译码阶段,处理器会对指令进行译码,确定指令的操作类型、操作数和执行的具体方式。这个阶段还会检测指令中是否有数据相关,以便保证流水线的正确运行。
- 执行阶段:在执行阶段,指令对应的操作会被执行,可能会涉及到算术逻辑运算、存储器访问等操作。处理器会根据指令的类型和操作数执行相应的操作。
- 访存阶段:如果指令涉及到内存读写操作,那么在这个阶段会进行存储器的访问,包括从内存中读取数据或将数据写入内存。
- 写回阶段:最后一个阶段是写回阶段,处理器会将执行阶段得到的结果写回到寄存器文件或者内存中,以完成整个指令的执行过程。
流水线的好处:
- 提高吞吐量:流水线允许处理多条指令的不同阶段同时进行,从而提高了指令的吞吐量,加快了程序执行速度。
- 降低延迟:流水线可以减少单个指令的执行时间,因为不同指令的不同阶段可以并行执行,从而降低了整体处理时间。
- 高效利用资源:通过并行处理,流水线可以更充分地利用处理器资源,提高系统整体的效率和性能。
3.什么是乱序执行?⭐⭐
乱序执行是一种处理器执行指令的技术,其目的是通过动态调度指令的执行顺序,以提高处理器的性能和效率。
在传统的顺序执行中,指令按照在程序中的顺序依次执行,如果前面的指令有数据依赖关系或者访存等操作需要较长的延迟,处理器会因为等待产生停顿。乱序执行则可以在指令的执行过程中动态地对指令进行重排序,使得能够并行地执行那些不具有数据依赖关系的指令,从而提高处理器的性能。
乱序执行包括以下主要技术:
- 指令重排序:处理器通过检查指令之间的依赖关系,动态调整指令的执行顺序,使得不相关的指令能够并行执行,从而减少指令间的停顿。
- 乱序执行单元:乱序执行单元负责对指令进行重新排序和调度。它会根据指令之间的数据依赖关系,将指令分组并重新排序,以实现最大程度的并行执行。
- 重命名寄存器:为了解决数据依赖关系的问题,处理器使用重命名寄存器技术,将指令中的寄存器重命名为临时的物理寄存器,从而消除数据依赖性,并使乱序执行得以实现。
具体来说,处理器在乱序执行时候会:
- 根据指令之间的相关性和各功能单元的空闲状态,动态地选择可以立即执行的指令,而不是严格按照程序的指令顺序执行。
- 执行完成后,处理器会确保乱序执行的指令的结果会按照程序指定的顺序重新进行排序,以保证程序的结果与顺序执行相同。
4.什么是超流水线?⭐
超流水线是一种处理器架构设计技术,旨在提高处理器的时钟频率和指令吞吐量。
在传统的流水线中,每个指令都按照固定的阶段被分配执行,而每个阶段需要等待前一个指令完成后才能开始执行下一个指令。超流水线则进一步细分了指令的执行步骤,将处理器的执行过程分为更多个时钟周期。这样可以使整个流水线更长,每个阶段的时间更短,从而处理器可以在一个时钟周期内完成更多的指令,提高指令吞吐量。
超流水线的特点包括:
- 更细致的流水线阶段:超流水线将指令的执行过程分为更多个阶段,例如取指令、译码、执行、访存、写回等,以使得每个阶段的时钟周期更短。
- 更高的时钟频率:由于每个阶段的时钟周期更短,处理器在同样的时间内可以完成更多的阶段,从而可以以更高的时钟频率工作,提高处理器的性能。
然而,超流水线也面临一些挑战:
- 数据相关性:更细致的流水线阶段可能导致更多的数据相关性,需要更多的硬件逻辑来解决相关性冲突,避免错误的结果。
- 分支预测:超流水线中的分支指令可能影响流
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本人2022年毕业于山东大学,目前就职intel。打算把之前校招时做的笔记通过专栏发出来,本专栏适合于C/C++、嵌入式方向就业的同学,本篇面经总结数千篇面经的知识集合,实时更新全网最新的嵌入式/C++最新内容,囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构、数据库等一系列知识点,在我看来这些是求职者在面试中必须掌握的知识点。最后呢祝各位能找到自己合适的工作。