今天,随着集成电路的大力发展,没有谁会怀疑芯片在经济和社会发展过程中的重要性吧。没错,芯片确实很重要,而最近它又多了一个政治属性。大多数人对芯片的第一反应是神秘,高端,是一个集成度很高的集成电路或者硬件。不为人知的,芯片除了那些硬邦邦的属性外,也会涉及到软件层面(驱动层),我们今天能在手机上看视频,图片和电影,全都要依赖这些软件驱动层支持的库来实现。接下来,我以一名曾经在芯片设计公司担任芯片驱动测试工程师(SQA,下同)的身份为大家讲解芯片驱动层测试中小秘密。
1 芯片驱动层是什么?
芯片中的驱动层,介于底层硬件与上层应用之间,这层主要负责与硬件层通信,同时把硬件层的结果经过处理后传递到上层应用。这一层主要是用于对于各种库的支持,比如GPU芯片中常用的OpenCL、OpenCV、OpenGL,OpenVG,OpenGLES,WebGL等等,编程语言主要是C或C++写成的源码经编译后形成二进制文件。
2 芯片驱动层测什么及怎么测?
那么,芯片驱动层测试什么呢?答案很明显,就是要确保对第1节提到的这些库的支持。测试类型包括单元测试,压力测试,性能测试和回归测试。
- 对于单元测试而言,主要是针对每个库中所包含的函数进行各种全遍历测试。比如对于OpenCL库来说,它里面包含诸如printf,math等库函数,针对printf函数,要测试int,string,char,double,uint