本文主要是介绍嵌入式软件工程师面试题——嵌入式专题 (五十五),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
说明:
- 面试群,群号: 228447240
- 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);
- 文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要经过认真思考,答案不重要,重要的是通过题目理解所考知识点,好应对题目更多的变化;
- 博主与大家一起学习,一起刷题,共同进步;
- 写文不易,麻烦给个三连!!!
1.什么是DDR
答案:
DDR 全称是 Double Data Rate SDRAM,也就是双倍速率 SDRAM,SDRAM 在一个 CLK 周期传输一次数据, DDR 在一个 CLK 周期传输两次数据,也就是在上升沿和下降沿各传输一次数据,这个概念叫做预取(prefetch),相当于 DDR 的预取为 2bit, DDR2 在 DDR 基础上进一步增加预取,增加到了 4bit,也就是在一个 CLK 周期传输4次数据,DDR3 在 DDR2 的基础上将预取提高到 8bit,也就是在一个 CLK 周期传输8次数据。
2.关于Cache,你了解多少
答案:
只读数据(代码段、程序里的const、字符串等)一般来说,这些数据应该放在Flash里,可能有人会有疑问,放在flash里,会不会读取的速度很慢?读ROM的速度是比读RAM的数据要慢,但是不要忘了,现代CPU都有强大的cache,而且数据Dcache和指令Icache都是分开的,在系统运行中,cache的命中率可以高达80~90%,所以大部分时候CPU都可以在第一时间就拿到想要的指令和数据。
cache写操作有两种,写回和写直达
写回的优点为:
- 处理器可以以cache而不是存储器接收的速度写单个的字
- 同一块内的多次写只需要对存储器层次结构的较低层写一次
- 当块被写回时,由于是写一整块,系统可以有效利用高传输带宽
写直达的优点为:
- 缺失较简单,代价较小,因此不需要把整个块写回到较低的存储器层次中
- 写直达比写回更易于实现,但是写直达cache仍需要一个写缓冲区
cache的映射技术,通常有三种:直接映射、关联映射、组关联映射
3.常见的CPU指令集
答案:
CISC(Complex Instruction Set Computer)复杂指令集
特点:指令系统的指令不等长,指令的数目非常多
RISC(Reduced Instruction Set Computing)是“精简指令集
特点:采用RISC指令集的微处理器处理能力强,并且采用超标量和超流水线结构,大大增强了并行处理能力
4.CPU的流水线工作原理
答案:
CPU执行一条指令时,也分为几个步骤,如
指令取指(InstrucTIon Fetch)-----> 指令译码(InstrucTIon Decode)-----> 指令执行(Execute)------- > 访存(Memory Access)-----> 写回(Write-Back)
重点:CPU并不会等一条指令完全执行完才执行下一条指令,而是像流水一样
5.嵌入式流水线工作有什么不同?
答案:
嵌入式CPU为了提高效率,采用超流水线结构,我们知道,CPU执行一条指令被分成5个步骤,每个步骤可能都需要1ns,但是有个长指令,被分成5个步骤时,指令执行这个步骤却需要2ns,那么整个时间就被限制了。
为了提高效率,我们可以把指令执行(Execute)这个步骤再拆分成两组(寄存器+组合逻辑),每组执行时间为1ns,这样我们的普通流水线成了六级流水线了,这就是超流水线。
6.uboot启动过程做了什么事
答案:
7.中断和异常
答案:
中断是指,停止当前的工作,转去执行另个任务,执行完成后发回继续执行。
异常是指,由指向内部的指令引起的错误。
区别:中断由外因引起,异常由CPU本身原因引起。
8.DMA和中断的区别
答案:
DMA不需要CPU参与,就可以进行数据的传输,大大提高数据传输时CPU的效率,而对于中断来说,必须要CPU的一个参与。
DMA的工作模式有两种,一种要求原地址和目标地址都必须是连续,另一种就没有这种要求。
9.中断函数的注意点
答案:
1.中断函数应该遵循快进快出,把比较消耗时间的任务放到中段下文处理,比如tasklet,工作队列
2.中断函数的返回值,应该使用内核定义的宏,而不是自定义
3.中断不能有阻塞,不能让中断进入睡眠,比如中不能有信号量
10.为什么要向内核传参
答案:
因为内核并不是对于所有的开发板都是完美适配的,内核对于开发板的环境是一无所知的,所以要想启动内核,就需要通过传参告诉内核当前的环境。
这篇关于嵌入式软件工程师面试题——嵌入式专题 (五十五)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!