前言
如果想参考本人的背景情况可见这篇概述
============================ 正文开始 ==============================
【时间线】
- 8.25 海光专业测试
- 9.3 海光一面+HR面
- 9.16 海光oc
海光作为国内屈指可数的x86CPU研制公司,可谓一直比较低调,导致我一直以为它性价比不高。后来通过现场面试前的宣讲会,我了解到海光的CPU现在被用在国家的一些服务器中,并且他和中科院计算所有很深的项目合作/来往。HR说,海光预计在今年~明年上市。
而且海光的加班费是真的高……在学长的推荐下我还是投了投。
PS:红字表示我当时没答出来的问题,蓝字表示面试官/我的解答。
面经分享
1. 专业测试
海光属于那种提交网申秒收测试链接的那种存在,并且题库固定(没有轮次的说法,题库也不会随机刷新),懂得都懂。但是不同岗位对应的题不一样,我投的GPU设计岗和GPU验证工程师 、CPU芯片设计/验证工程师岗、SOC芯片逻辑设计/验证工程师岗做的是一套题。(起码今年是这样)
题目全是选择题,内容的话我感觉比较常规:主设计,中间参差了部分验证和少数后端、C语言。
海光的题推荐还是用手机做……电脑做时比较挑浏览器。
2. 一面·技术面【30分钟】
现场排号面试,各岗位间并行面试,同岗位内多路串行面试,轮到我的时候已经时午饭点了。我坐下后给面试官说的第一句话:“饿了……”,把面试官直接逗笑了……另外面试官原话:“因为应届生应该也不了解多少GPU的知识,所以我们不会刁难大家”。
- 自我介绍
- 挑一个项目讲了个大概,我大概把整个项目的设计架构给他在纸上画了一遍就差不多了
- 异步FIFO的设计关键我觉得有哪些? -我说的用格雷码+打2拍做CDC
- 为什么可以用这种方法?你觉得有哪些关键? -我这里放几个我自己想通的、不常被人提及的易混关键,具体见【PS】
- 提问环节
a)公司有哪些福利 -周四运动日,2月1次生日会,弹性上下班+9h/日+早上7~10点之间可弹+1月2次迟到机会+晚上加班时间可用做调休(按小时算)……
b)培训流程 -6个月培训,会走全flow,有导师
PS:
a)虚空和虚满只会在指针打2拍后的值和当前时刻该指针在原时钟域的值不同时存在,即这种情况只会存在于FIFO边读边写时,所以CDC的打2拍并不影响FIFO能否被被真正填满/读空——因为真正填满/读空一般都是在只写不读/只读不写时,所以这种CDC方式并不会导致FIFO空间用不满/数据不能被全部读出等问题。而虚空和虚满能让FIFO避免在边读边写时出现空读/满写等致命问题。
b)亚稳态只会发生在存在数值反转的时刻。当二进制多bit数据直接用打2拍的方法做CDC,如果相邻的两个相邻二进制之间存在不止1bit的变化,且这个CDC过程存在亚稳态,那这存在跳变的几bit都有可能进入亚稳态。那这里就有2个灵魂反思:
(1)从亚稳态变为稳定状态的时间不确定——多个bit数据恢复成最终稳定状态的时间不确定;
(2)从亚稳态变为稳定状态后的结果不确定——各个bit恢复成稳定状态后是否正确这件事不确定;
(3)二进制数据间,只有1bit的差距可能会导致数值上的千差万别;
在FIFO中,这个二进制就是我们用来判断full和empty的读/写指针,是错不得的关键!这一错,可能导致FIFO发生空满误判(比如本来空/满了,结果判断成没空/满)。所以我们FIFO中做多bit数据CDC,用的是格雷码。就算CDC时出现亚稳态,那同时出现亚稳态的只有1位,并且就算这一位错了,得到的错误结果作为格雷码,也只和正确的结果在数值上相差1,而不是千差万别,对FIFO的影响不是很大
3. 二面·HR面【20分钟】
- 对海光怎么看的
- 挑选一家公司的标准
- 已拿到哪些公司的offer/意向书了
- 提问环节
a)后续流程 -一周内会有一个结果,通过的话会收到性格测试链接,全过了后大概会在9月末谈薪资/发正式offer
b)加班费怎么算 -公司内部有一个加班费算法公式,加班天数越多,每月加班费呈类指数趋势上升,每月内周末加班天数上限为4天(有打卡),但是不强制周末加班,并且周末加班时上下班时间随意。
4. offer call + offer邮件
总体待遇还是不错,成都这边起码有30W,但是感觉一年后加班费要合并到项目奖中,所以可能性价比没有之前高了。另外因为我想等华为+可能社招会去海光,所以不想毁海光三方,直接拒了。
============================ 正文结束 ==============================