北京亚嵌报道:《弯曲评论》“一个系统工程师的方法论”讲座圆满成功
作者 陈怀临 | 2008-10-07 18:11 | 类型 中国系统软件 | 23条用户评论 »
【亚嵌教育讯】2008年9月10日,为推动和增进Linux开发者之间的协作,普及和发展嵌入式Linux技术,AKA (阿卡信息小组)特别邀请系统计算研究所(www.xtrj.org)创办人和首席科学家,《弯曲评论》(www.tektalk.cn)创办人和首席科学家陈怀临博士,在北京邮电大学举行免费技术讲座,以进一步促进社区技术交流,推动我国开源社区的不断发展与壮大。 此次讲座原计划定员60人,讲座当天实际到场188人,除了北京各大高校的学生,还有三分之一是来自企业的技术骨干,讲座现场气氛热烈,讨论的声音更是不绝于耳。讲座由北邮嵌入式技术小组的负责人主持,亚嵌教育李明老师在会上对AKA阿卡的发展做了简单的介绍,并就即将举办的第三届AKA 2008 Linux Kennel开发者大会向大家发出邀请,表示希望大家能够出席。 陈怀临博士的讲座大体分为系统软件、知识结构、工作方法、系统理解、工业动态等几个部分,其中,陈博士就知识结构和工作方法两点进行了系统的阐述。陈怀临博士认为,仅仅掌握CPU的结构是不够的,要能够非常清晰的了解在MIPS里对应的变量,以及堆栈在CPU中的约定、微结构、流水线等;对于MIPS、PowerPC、AMD等都要有所了解,至少熟悉一种总线和链接,熟悉一款OS子系统实现机制,熟悉一款子系统内核开发环境,了解各种OS的优缺点和映射关系;还要熟悉经典数据结构算法、Hash表,熟悉排队论系统,具备基本算法复杂性分析能力等等。 在谈到工作方法时,陈怀临博士对大家提出了以下建议:一是进入Kennel团队,千万不要未经同意随意更改系统层次代码,即使我们认为是正确的代码更改行为;二是在阅读硬件规约的时候,如果第一遍不够认真仔细,会给以后的工作带来很多的隐患,建议大家保持谨慎、认真的态度;三是关于调试板子,考虑到这项工作不是一天就可以做完的,所以大家要养成写调试日志的习惯,做到步步为营。此外,陈博士还强调,开发板也有出错的时候,希望大家坚守Baseline,不要迷信硬件工程师,“尽信书不如无书”;系统研发多考虑次优算法,简单实用解决问题就好,把最优算法留给教授去想办法,多用Google搜索,以进一步提高效率等等。 主题演讲结束后,在提问环节,陈博士与大家进行了深入的沟通和交流,大家纷纷表示收获颇丰。 AKA 信息技术小组(www.aka.org.cn),1998年成立于清华大学,秉承“自由、协作、创造”的技术理念,始终致力于技术社区的交流与协作,以及开源技术在国内的普及和发展。 2006年与2007年,AKA 成功举办了 2 届 Linux Kernel 开发者大会,29场专题技术讲座活动,我们相信在不久的将来,AKA 将会为社区的开发者提供更好的技术交流平台。 【笔者注:】原新闻稿可参阅:http://www.akaedu.org/pages/news_detail.php?id=401 | |
雁过留声
“北京亚嵌报道:《弯曲评论》“一个系统工程师的方法论”讲座圆满成功”有23个回复
这种讲座能不能留下个视频哇
我也觉得应该有视频给后来者看看。。。
现在回过头看看,还是觉得首席说的话非常好
狠,把这个翻出来了。说良心话,这是我半生工程经验的总结。个人认为是我文章和speech中最好的。
首席,能不能贴出来让更多的人学习学习呢
应该在这里:
http://www.tektalk.cn/?p=3492
这东西看slides估计差点,关键是要听人当场忽悠。
记得那天晚上讲完后,两个华为杭研所的。一个是部长,一个估计是技术骨干。说是为了听从杭州做飞机来的。(我估计是忽悠我。可能这样吗?我也就是冒雪去听张晓东忽悠。掏钱坐飞机去,姚期智的我也不去)。说讲的好呀,参加华为吧。在后来去的茶楼(避风塘)当场要面试我。。。。。。后来一聊天,把他自己招进华为的领导,他领导的领导我都认识,结果他也不好意思面试我了。
我是那天晚上感觉到华为干部的狼性的。非常aggressive。要当场面试我,也不管别人对你华为有没有兴趣。。。:-)
面试首席? 华为的技术骨干的能力不容怀疑,但是面试首席也有点… 不会让你先做几道面试题吧:)
呵呵,面试的过程有的时候也是相互学习的过程哦
自己把自己放在什么位置,别人被你放在什么位置,不匹配的越大,落差就越大
仅仅看胶片确实看不出来太多的东西,不知道什么时候有机会听听首席当面忽悠,:)。。。。
请教一下首席:
多核CPU架构中,其内部通信总线是采用ring还是crossbar架构,是怎么考虑和取舍的,如果来评估其性能
谢谢
对RMI是用什么不了解。但看过网上有篇paper专门分析这个问题的。其结论一般而言,核数目少时用xbar有优势,核数目多时用Bus有优势。
当多核数目超过一定数目时,Xbar有N平方问题突出,可扩展性差。从硅层上看,Xbar其是集中交换式的,往往涉及到长线,而且线还要交叉,需要占用更多的die来走线,功耗也高。
相反,Ring的扩展性好,用菊花链的方式可避免在硅层上走长线,功耗相对更低。
Ring也有坏处:负载重时时延较大,这就要靠多线程和并发DMA操作来弥补了。
Ring的多一些。当然,想想多个Ring。什么control ring,data ring。反正就是把ring折腾,扩展。
RMI用的是RING
建议首席再讲忽悠一次。
黑猫,能否share那篇文章。我很感兴趣阅读一下。
比较先进的还是mesh架构,例如MIT 的RAW,INTEL 80CORE CPU,TILERA TILE64.
在这里我也忽悠了。
ring, bus , switch, ….mesh…?
到底哪个好?我想这个需要综合你的应用一块考虑。
通常在多核(8 core, 16 core。。。)环境,
我们需要看core的scalability, speedup…如何
1)关心BUS的性能对写程序有用吗?好像编程不需要考虑这些吧,当然,如果是做系统架构评估,可能需要
2)每种BUS和以前有的比,有什么区别?都是些现有的技术吧,没什么新东西。
3)能不能总结一些每种BUS的优缺点,或者哪有总结好的?
首席要的文章在此:
http://web-ext.u-aizu.ac.jp/~hitoshi/RESEARCH/pdpta.pdf
http://ece757.ece.wisc.edu/lect05-multicore.pdf
做软件系统设计的人最好也要关注Bus结构,这样才能充分发挥硬件的性能。例如Ring bus上相邻的2个节点通信性能最高,距离最远的2个节点性能最低(无论时延还是Bus利用率); Xbar如果某个点带宽用得太尽则访问延时会大大增加(仲裁冲突机会增大造成)。
Droplet,对于通信行业或者嵌入式的,需要知道一些Bus。例如,你就会更明白为什么数据结构要对齐的原因。什么时候用memcpy,什么时候用一个DMA Channel做数据传输。。。这都是对系统的Bus有了sense之后的感觉。
例如,XAUL,SPI,PCI-E,Interlaken等的区别是什么。有的芯片为什么是SPI,有的是XAUL。为什么?这些都要展开一些阅读。
谢谢黑猫。是的,这也是我经常对年轻Kernel工程师的教导。在熟悉一些体系结构的知识和经验之后,要多接触Bus。之后,才会对系统有sense。
首席现在应该不是每天趴在那写代码的那伙?
总犯一些低级错误:)
貌似首席是。。。。在做市场分析。。系统工程之类…。
不过这类工作是需要有忽悠人的能力。。。
请教首席一个基本问题, 我觉得是我们的kernel工程师忽悠我们硬件的,特来请教首席。 丫跟我说操作系统kernel处理来自application的中断(具体说,是graphics device driver)时候,application 不能要求分配更多memory空间。 照他这个理论,任何application 都要静态申请内存不成?
21,是,我现在以忽悠为主。
22,感觉你没有描述清楚。我猜你的敌人说的是:在中断处理程序里不能含有CPU Yield或者Sleep的例程(routines).通常是事先分配一个buff ring。。。当然,你说的也能做,但要中断safe。我以前做过。。。