nice核代码解读
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
nice核代码解读
领域特定架构(Domain Specific Architecture,DSA),使用特定的硬件做特定的事情[18],也就是说,将主处理器和协处理器加速器适当扩展到某些特定领域可以非常明显地提高能效比。
NICE协处理器(Nuclei Instruction Counit Extension,蜂鸟内核指令协处理器扩展机制)是一个独立于蜂鸟E203内核的一块运算单元[24],它能根据指令去控制系统内的资源去实现一些操作,例如利用协处理器源操作数实现内存与缓存的数据交换、累加值、乘法、加密等操作,从而提高RISCV处理器特定领域的性能,同时降低功耗。
NICE协处理器的调用需要创建用户自定义RISCV的指令。
第一步,从proccpuinfo中获取系统的cpu核心数,通过计算该文件中processor出现的次数便可以得到cpu的核心数;
第二步,通过判断文件procdiskstats和procpartitions是否存在,从而判断linux的内核是2.4版本还是2.6版本:如果procdiskstats文件存在,则为2.6版本;否则判断procpartitions 是否存在,若存在,则为2.4版本;
第三部,分析iostat命令输入的参数,每个参数的功能可以在上一篇博客中找到:性能测试进阶指南基础篇之磁盘IO 第四步,初始化,获取磁盘名称。
以内核2.6为例,读取文件procdiskstats
104 0 ccissc0d0 49787 19805 1597284 159946 20172754 28596938 390157514 1583532 0 1352168 1737502
第一个参数104和第二个参数0分别代表了major和minor,major是8的倍数,minor是16的倍数,只要同时符合这两个的条件,其对应的第三个参数ccissc0d0便是所需要获取的磁盘名称。