华为一面(嵌入式)
流程
自我介绍
项目提问
八股
算法题
本人背景
本人是985计算机硕士,导师项目做异构处理器的实时调度
# 自我介绍
个人介绍,自爆家门,说了一下实习和项目
项目相关
和项目直接相关,个人去准备,实习主要是针对异构处理器调度方面,问了pcie总线拓扑结构,是否使用fpga作为switch进行处理,fpga是否是使用opencl写的 还是rtl代码写的,针对神经网络的前处理和后处理 如何做的。调度如何将任务进行抽象的,为什么使用五个异构处理器?
linux系统
虚拟内存的功能是什么?
答:虚拟内存扩大了程序员内存空间,对内存也可以进行一定的保护。(答的不好)
页中断的机制
答:程序的虚拟地址首先查页表,如果访问的页不在内存中,会产生页中断将缺失的页调入到内存中,同时替换一个页
页面的替换算法有哪些?
答:页面的替换算法有FIFO,lru,此处应该还有部分替换算法,我说不记得了。
linux 中buddy伙伴系统说一下?
答:听说过,不清楚底层细节。
项目相关,mips cpu处理器设计
问:介绍一下cpu项目
答:本科毕业设计,做了mips指令的soc系统,包含61条指令集,7条中断和软中断,可驱动外设,可用汇编程序写入到程序中。
问:这个项目的背景是什么?
答:这个项目主要是cpu设计的实验平台,传统的CPU设计实验主要是学生从0开始完成所有的CPU设计。本项目采用模块化思想,降低学生的学习曲线。
问:学生使用平台的流程是什么?会使用到图形界面吗?
答:没有使用到图形界面,学生的将项目文件加载到vivado中,根据指示进行操作。首先完成的是模块测试,对用户模块和我的模块进行trace比对,保证输出模块功能正确性。当完成模块测试以后,就可以删除我的模块,使用学生自己的模块。通过这种方式逐步替换下来,学生最后就可以完成自己的CPU。
问:做的soc话,输入和输出如何做的。
答:mips指令外设是通过存储映射的,即通过地址访问外设。
问: io系统的架构怎么做的?
答:cpu外部有一个桥,cpu进行访问的时候,地址通过桥转发到外设上,外设进行地址比对,如果地址匹配成功,就会进行相应的io处理。
问:io如何进行处理的
答:(不知道咋回答)给他举例了一个中断的例子,通过外部按键,触发CPU的中断,CPU跳到中断服务程序进行中断处理,中断服务程序是汇编写的
C语言相关
static修饰
#define 和enum 区别
手撕代码
现场查leetcode题目让我手撕 全排列题目顺便讲一下思路
#华为一面嵌入式#