《嵌入式系统》由会员分享,可在线阅读,更多相关《嵌入式系统(44页珍藏版)》请在金锄头文库上搜索。
1、嵌入式系统梁阿磊 . * 教学计划 概述 Embedded System: Definition 体系结构 RISC、SoC、Bus TP复杂性:涉及数据库组织结构、决策计算 等; TPC-W: Web Server - oriented测试报告之内容 被测对象:Machine之描述 测试者:BenchMark清单(及结果) 测试“工具”:Compiler, OS ? without Compiler, BMs cannot run-up Machine. Because BM is C sources性能测试作弊方法 问:作弊目的是什么? 不言而喻,“名誉”(最终的是好的还是坏的) 结论:看
2、“分数”的人是傻瓜(那么老师呢?) 问:作弊方法大全? 针对考题(硬方法) 欺骗考官(软方法) 问:有所作为 好的OS:如TPC性能强依赖OS之性能 好的编译器:传达“命令”给Ma的缰绳(Ma=Machine) 巧设编译开关:给编译器吃“药”Baseline Performance 问:什么是“baseline performance”? SEPC组织规定 限定编译器和编译开关Source of BenchMark 问:是否允许修改代码或手工生成代码 ?(4种情况) 不允许(难道学生可以修改考卷) 允许但代码编写者(出题者)却不愿意(如在TPC 测试中,一般采用商业数据库Oracle或MS S
3、QL Server做Benchmark。虽然她们也希望在测试中表现 “流畅”,但却不愿意为特别用户(如intel)定制试 题); 允许(从多份考卷中选一种):被认为是一种优化 方法(如EEMBC之中),只要你能完成指定功能; 允许手工编写汇编代码(如EEMBC):能够生成小 kernel(指测试程序),在ES之中效果显著;其它问题 问:“生产成本”算不算性能? 问:“使用成本”算不算性能? 如功耗 但是,嵌入式系统很关心这些“性能 ”性能比较和结论 最有说服力的结论 来自最终用户的使用效果 基于BenchMark测试的结论 存在分歧:问题的理解方式不同 测试程序 实验环境 “faster”之定
4、义 问:看图说,哪个最快? 问:什么是“faster”之定义? Mixture of programs? (不是一个程序说了算) Weighted Mean? ( mean=sum(Wi*Ti) )一个分歧的例子Computer ABC Program P1 (secs)11020Program P2100010020Total100111040SPEC之做法 问:SPEC之做法有什么特别的吗? 参考点:一个基准机器(SPARCstation) Normalization Result Mean (both AM and GM)新的结果Normalized to ANormalized to
5、BNormalized to CABCABCABCProgram P11.010200.11.020.050.51.0P21.00.10.02101.00.25051.0AM1.05.0510.05.051.01.1252.751.0GM1.01.00.631.01.00.631.581.581.0Total time1.00.110.049.11.00.36252.751.0新体会(有关下结论的方法 ) AM方法依赖于“谁是Reference机器” (1)以A为基准时,A比B快5倍,C最慢 (2)以B为基准时,B竟然比A快5倍,且C 最快?! (1)和(2)矛盾!(Ref.点不同) GM方法
6、不依赖于Reference之选取 一个经验 参加SPEC测试(或之类的测试方法) GM比AM之结果更公正(如果)常见的错误观点参考:CA-AQA Hennessy&Patterson, 计算机体系结构(量 化分析方法),机械工业出版社常见的错误观点(1) (数学思维)问题:相同指令集结 构(ISA)的两台机器(A和B),A 的绝对性能可以从B的测试结果以及 A/B的时钟频率获得? Perf (A) /freqA= Perf (B) /freqB 答:错。常见的错误观点(2) (经验主义)问题:久经考验的Bench- mark才是值得信赖的(担心:新设计出 来的不一定能很好地反映系统性能)。 错
7、。你担心“新东西”的不合理是有道理的,但过分 相信“老东西”却是不对的。存在时间太久的 benchmark会被CRACK的!(有人在Compiler方面 做手脚) 曾经,针对matrix300,采用Blocking编译优化技术 (提高cache的时间本地特性),IBM PowerStation 性能提高了9倍!常见的错误观点(3) (人定胜天)问题:能用汇编写代 码(而不是C这样的高级语言),肯 定会获得好的性能结果(厂家有时 会给测试单位暗地里塞discount吗? ) 不要盲目相信。程序员不一定比Compiler更 聪明。常见的错误观点(4) (一叶遮天)问题:“Peak Performa
8、nce” 高,意味着机器整体性能也会高些 错。 Peak性能的定义:一个机器可能表现的性能水平的 最高点。 在Supercomputer之中,Peak性能与Observed性能之 间的差距往往达到10:1。(换句话说,Peak性能不 代表什么) (如同你的外快收入和你的生活质量的关系)常见的错误观点(5) (领导作风掌握真理)问题: 搞系 统和结构设计的人都知道“Amdahl Law”即抓住“关键点”,提高其性 能,则整体系统会显著提高 有时候,你理论上或经验上认为的关键点, 并不一定是“关键点”。必须经过测试,以确 定是否是真正的“关键点”。 (实践是检验真理的唯一标准)常见的错误观点(6)
9、 (作者在1990年的CA第一版中也曾信奉 过的一个问题) (弄巧成拙)问题:通过特定设计一些 程序(称Synthetic Benchmark)预测真实 程序(Real Program)之性能 不可盲目相信。 (1)真实程序的结构是无法用synthetic方法完全描 述的; (2)Compiler能够很容易优化一个synthetic代码, 但碰到真实代码时却无能为力。 (3)你相信你能可以营造出一个复杂、繁忙的运 算活动吗?X=SQRT(EXP(X) vs. X=EXP(X/2)常见的错误观点(7) (追求指标)问题:不要和我解释这么 多,告诉我数字,最后的指标是多少( 如: MIPS=mil
10、lion instr. per second)? MIPS = (intr. count)/(exe.time)=clock/CPI 那么 (1)MIPS取决于指令集(或体系结构) (2)同样的机器上,不同的程序MIPS不同 如:浮点运算的CPI高,整数运算的CPI低 (3)更重要的是,MIPS可能与性能成反比 如:“软件浮点运算”之MIPS却比“硬件浮点”的高RET小结:讲了许多性能有关的概念,与嵌 入式系统有关的是什么? EEMBC、性能定义的扩展、以及一般性 的系统设计和优化时观点。第二阶段 基础知识复习 (ARCH & OS)RET(返回ROOT)第三阶段李善平教材: 嵌入式系统的工程知识RET(返回ROOT)