Apple GPU design and verification

诚心奉献刚面的面试经历,热腾腾的。题目蛮简单的,可能因为我找的是实习,但要思考的比较周全,因为是 跟debug相关的。仔细一想我其实挺蠢的……
面试官说自己在开车去单位的路上,所以貌似没有细看我的简历,压根没有提到我简历上的任何东西,所以电话面试也可能完全跟你经历没有关系,我就是直接做题。(当然他还是花了十分钟介绍了一下他是干什么的)
有一个Cache一个Memory Controller, Cache向MemController要求数据,MemController向Cache回复数据。Cache会发送 request_valid信号, request_address信号还有request_id信号。MemController那边会 response_valid信号response_data和id,互相交流。
1.为啥memory发给cache response的时候要还要传一遍id?
2.有checker,可以偷窥所有信号,有什么bug是这个checker可以查看到的?
我一开始没get到点,心想这么多bug可能性您是要什么样的,其实面试官也只是想听几个例子,比如mem没有给response或者mem给了错的response)
3.如果要用你喜欢的软件语言去写这个checker,你怎么implement以找到上面提到的bug.
随便拿个 container记录下所有的request id就行了,然后和mem那边来的response比对就行了,id要一样而且response的总量要和request的一样。
4.我回答了之后,可能觉得我回答得不够严谨(确实不够我回答得太随便了)面试官又追问如果比对是一样的你还要做什么?
5.然后面试官又说其实cache在发出request而没接到response的时候就可以找出一个cache可能有的bug,是啥?(这个问题我没想出来,其实很简单,就是如果 没得到response,那个request id是不能被再使用的)

我觉得面试官可能以为我交流有问题,因为我总是get不到他在问什么,所以他要对问题解释很多。