| alex's profile李大头的线性寻址空间PhotosBlogLists | Help |
李大头的线性寻址空间无聊的FPGA开发者看过来,这里有个能跑的arm叫leg。源代码下载地址http://www.happyupload.com/download.php?file=114821de3c58c2f2548845a595c532d3 |
|||||||||||||||||
|
October 22 枫叶国归来跟老板去了趟枫叶国,找几个公司合作,想看看鬼子整天吹嘘的高技术是不是可以卖给我们或者干脆帮我们做做芯片,结果颇有感慨,总结如下:
第一,鬼子们对国内的内企的研发实力严重低估,交流过以后,发现他们还以为国内的水平还停留在小米加步枪的阶段;其实无论是扇贝公司也好,猪头e公司也好,ASIC的研发实力已经不低于二粒性之流,17*17的大芯片国内一样有人做。FPGA方面也是,跟2个号称做了11年FPGA的工程师聊了一把,发现他们的水平也不过如此。
第二,我们对自己的认识不足,很多我们认为很难解决的问题,鬼子们一样解决不了,想了种种工程方法绕过。只有我们自己,总是觉得哎呀鬼子一定能搞定,我们也得拼命,结果把自己累得半死不说,还打击了自信。
第三,在系统级设计方面,我们仍然存在一定的差异。技术细节属于外家功夫,做一年和做3年差别很大,但是做5年和做10年,差别也就是在毫厘之间;但是架构设计,纯属内功心法,重在体会和创新,这东西做一年是一年的积累,做一个产品是一个产品的经验,也许做到80岁修满了一甲子的功力,才能够说做到位了。
第四,国内目前还没有真正的research,鬼子们经常自诩为researcher/scientist,人家的确投入了大量的资源和人力,去搞尖端的研究。intel,IBM,MS,HP,SUN,哪个公司没有自己的“研究院”;反观国内,那么多大大小小的IC公司,大部分做的是整合、仿照、降成本,有几个能做到自己开辟一个方向,或者弄出新的架构?貌似现在扇贝公司开始捣鼓出了一个research,但是不知道最后能得到什么样的结果。
枫叶国一行,既看到了自己的不足,也增强了自己的信心,短短7天还是很有收获,只是吃得实在不习惯,每天不是吃草就是吃肉,不由得感慨,还是社会主义好啊。 May 11 跳槽了很久没上自己的blog了,这里已是荒草一片。这半年多的日子,发生了太多的事情。项目黄了,工作的部门被砍了,被遣散去了别的部门(在更荒芜的乡镇),看见公司里面最好的朋友被开,看见温文尔雅的经理们为了利益而恼羞成怒,也彻底认识了这家乡镇企业的本质。想起了以前在网上看到的前员工对所谓的企业文化的总结“员工都是用血肉之躯去磨合这个机器,使其运转,那里你看到的是这个机器的高品质,而没有人的气息。”
三年了,整整三年了,从刚出校门的意气风发,到现在的浑浑噩噩,我也算走完了职场的第一步,开始明白了什么叫职场,什么叫人生。用了两天的时间看完了《圈子圈套》,忽然对所谓的外企、白领感到说不出的厌恶,虽然自己也曾经是这当中的一员(至少这几天还是),也曾经喜欢满嘴冒英文的和别人说话。所谓的外企精英,也就是在500强,高科技,国际化的外表下,一个个丑陋的中国人而已。于是下定决心,从此不说鸟语,从此写信只用中文,而我写的第一封中文信,就是我的辞职报告。
辞职前,特地花了一天到未来的新东家门前逛了逛,看见巨大的标语,汹涌的下班人群,无数的班车鱼贯而出,心里突然有种自豪感,去他妈的外企,去他妈的500强,从现在起,我为中国人的公司工作! November 02 万兆交换机拆解报告这段时间拆东西上了瘾,中午趁同事们出去放风的时候,闪电拆解了公司里面的某万兆交换机,看完后大呼上当,花了好几W买来的的东西也不过如此。
整理一下BOM,咱先从10G的接口说起。这个交换机有6个电口和一个光口,光口没买,所以只是一个槽在那边。电口的信号进来,先是进了MYSTICOM的MY3214,这个估计是个万兆的PHY。phy出来接的芯片是broadcom的BCM5674,查了一下,是一个桥片,从万兆的接口到broadcom的啥啥的10g接口,然后就是一个巨大的交换芯片BCM5670。这个芯片身披亮晶晶的不锈钢外壳,占据了整个交换机的中央,PCB没反过来看,估计怎么着也得1000多管脚吧。长的倒是挺象altera的stratix,没看清我还以为是个FPGA。控制芯片是moto的MPC8245,也是一个大家伙,和交换芯片一黑一白,冒充黑白无常。板载128M内存,用的芯片是micron的MT48LC16M16。这帮做万兆的同志们也不上进,这年头还用SDRAM,估计这片子都有一定的年代了。板上还有一块FLASH,被贴上了纸条,看不清到底是啥。前面板还有一个USB接口,用了philips的ISP1160。板上还有两个PCI的桥片P17C8150,很奇怪一片为啥要45度布线。最后还有两块lattice的ispmach芯片LC4256V。
大的芯片就这么多,板上用了几个NS的LDO,电源部分没来及深究。总的来说,感觉很简单,全套的broadcom方案,一点创意也没有。板倒是布的很大,不过元件比较稀疏。所有的芯片都没有散热片,估计功耗都不高。电源部分倒是加了很多的小风扇。当年我拆的CISCO的交换机,可比这复杂多了,都是打着cisco标的不知道啥芯片,还有个不错的风扇,小小BS一下这整天号称头号IT公司的绿色巨人! October 30 我去听他的演唱会我是一个很怀旧的人,接受新事物的能力比较慢。十一的时候头脑发热花了60块去海淀公园听了一下什么摩登天空音乐节,在烂烂的草地上等了十几分钟,跟我家阿猫耐心的解释台上面的一帮小朋友左边拉一根线那是在连键盘,右边踩一脚那是在试效果器,四根弦的是贝斯,六根弦的和咱家沙发底下那个带把的木箱是一样的只不过是用电的等等。好不容易那边开唱了,听了五分钟我就扔了门票,拉着我家阿猫跑到外面呼吸新鲜空气了,实在搞不懂上面那帮做抽筋状的小屁孩唱的是啥。 周末去听了老狼的演唱会,终于找回了一点感觉。演唱会是免费的,在一个很大的厂房里面,因为是临时听说的,扔下程序打的就冲去了,也没带相机没带鲜花和鸡蛋。去的时候已经有很多人了,于是我站在人群后,静静的听。前面的几首是老狼的新歌,没啥感觉,调子倒是很熟悉,就记得那句“那些会议跟着我奔跑”。中间一个男的哼哼唧唧唱了不知道是啥,最后又做抽筋状,唉,腰酸背痛腿抽筋,都是没喝三金牌葡萄糖酸钙啊。不过吉他和手风琴的配合真的很有感觉,唱完后那男的介绍说手风琴手是他的女朋友,顿时觉得此人人品不错,不是属于那种出来骗小MM的类型,只是觉得那个风琴手怎么看怎么象我一同事。叶蓓出场唱了几首,感觉此女巨能吼。她说了一句“我们都很喜欢唱现场”,于是后面老狼的一首百分百女孩就唱成了百分百走调。最后,恋恋风尘的调子响起来,跟着台上哼着熟悉的不能再熟悉的旋律,忽然想起七八年前自己也是弹这首歌,手指飞来飞去的弹那段所谓的“华彩”,听的女孩却啥感觉也没有,于是灰溜溜的背着借来的琴回家。想起那句对校园民谣的评价“没有感动别人,只感动了自己”,以前觉得很荒谬,现在也开始慢慢认同,我知道,自己也的的确确只能感动自己而已。 听完演唱会,外面突然下起了大雨。在雨中站了将近半小时才拦到车,浑身都湿了。回到家意犹未尽,又把老狼的歌翻出来听了听,却再也找不到刚才跟着台上哼哼的感觉。得了,还是安心的继续写程序吧。 October 29 散热的艺术如果说电子设计也是一种艺术的话,那么PS3的设计者绝对称得上是艺术大师。虽然我不喜欢鬼子,但是不得不从心底里佩服PS3的设计。不必提那传说中的三个1200以上管脚的芯片,也不必提那超酷的蓝光光驱,单是独特的散热系统,就让人叹为观止。大头我从小拆机无数,拆过爷爷的钟,拆过俺的电动坦克,拆过小MM的衣服(恩,这个未遂),拆过IBM的8086,拆过aiwa的随身听,拆过CISCO的交换机……直到拆到PS3,发出了由衷的感慨,拆完了这个,除了那个未遂,其他啥都不想拆了。 PS3最需要散热的是内部的cell芯片,其次是那块超强的显卡,这两兄弟开足了马力功耗得超过200w,怎么在狭小的空间里面给二位吹风,成了设计中最出彩的地方。我想,如果换成了IBM或者是HP来做设计,一定加两超大的散热片,然后弄两1w转嘎嘎响的风扇对着猛吹就是了,然后再建议大家把PS3放到server room里面,保持18C恒温,通过网络访问……看看人家sony怎么设计的,芯片出来并不是直接连着大块的散热器,而是通过热管导到旁边,接下来,才是散热器……巨大的散热器!整个PS3有一半的体积就是这个散热器和中间的风扇,巨大的风扇(原谅我形容词的贫乏)。这样一个风扇就覆盖了两个巨大的热源(再次请求原谅)。大的风扇可以在保证足够的风量的同时,保持较低的转速,这样的好处是-安静,没错,就是安静,PS3工作的噪音甚至小于我本本的硬盘。不过这个风扇肯定也不便宜,12V,2.6A,忘了转速有没有标了,似乎记得上面还写着made in china…… 接下来的亮点是热管。我记得THINKPAD上的热管是3根,但是已经覆盖了显卡和CPU。PS3上的热管有5根,图形芯片两根,cell三根,环形的贴在散热器的底部。看到热管我就明白了,cell的功耗一定高过显卡,因为cell不仅用了热管,而且整个芯片都是贴在散热器上的,而显卡只有孤零零的两根热管为其排忧解难。散热器是一层层的环形的铁皮叠成。开始我以为中间的梁是铜柱,仔细研究了觉得,那一定还是热管。 如此看来,sony真的是不惜血本啊。在这里鼓励各位有仇日情节的同志们,应该多买PS3,因为买一台,sony就亏200刀,咱们买回去也别玩游戏,直接格了装一linux,嘿嘿,比中关村买个电脑省钱多了,还是带蓝光光驱的哦。省钱加倒日,一举两得,何乐而不为呢? September 26 世界中の谁よりきっと午后闲来无事,忽然想起以前听的日文老歌,于是google了一把,才知道日之韵和music heaven都早已停刊,而我欣赏的歌手zard的主唱坂井泉水也早已挂了,不由得又由衷感叹一番时光如梭,不留青春只留豆。网上日之韵的全集链接已经失效多时,好在还是能找到几首曾经的最爱,听着熟悉的旋律,ise数小时的编译时间也不觉得多么难熬了。
世界中の谁よりきっと
93年中山美惠的热门单曲,若干年后在日之韵上听到,这首激动人心的歌也就成了我高二那年暑假的全部回忆。那年夏天,学打篮球被撞伤了腿,于是领悟到了自己是不适合做剧烈运动的。没办法,谁让我是大头呢,头重脚轻,外加头大没脑,想不受伤都不行。那一整个暑假有一半的时间就无聊的呆在家里面,每天准点打开电视,一秒钟都没落下的看完了《东京爱情故事》。朋友借了一把破吉他给我,于是在学会弹一闪一闪亮晶晶之后,这首世界中の谁よりきっと也就成了我的首要练习曲目。虽然那时的水平也就只能把旋律简单的弹出来,但那也是花了极大的工夫,那把破吉他的弦离指板足足有1cm高,在这样的琴上练习大横按绝对是意志和肉体的斗争。
就像老爸他们永远喜欢那些革命歌曲一样,我对音乐的理解也就停留在了上个世纪的最后十年,那时音乐就是生活的全部,周末可以不看书不学习不吃饭,但是南大门口的打卡带商店是必须去逛的,午饭里省下的零花钱都换成了满是伤痕的卡带或者CD,在网络匮乏的时代,music heaven就是全部的精神食量。zard的歌,总是那么的青春,那么的振奋人心,而高考失败后的那个黑色的7月,也是在相川七濑的那首“若可变成鸟儿”的伴随下艰难度过。这些日文歌英文歌,我从来也没听懂过歌词,也不在乎到底她们唱的是什么,只是知道,这些都是开启自己记忆的钥匙,偶尔在路边,在商店,在工作时听到,时空就会切换……
July 16 PS3-超慢的超级计算机很久没有更新我的blog了,一来是最近比较忙,忙的没工夫发牢骚,二来是最近牢骚比较多,多到不知道写什么好,不过从技术方面来说,牢骚最多的还是那可恨的PS3了。
朋友买了台PS3,让我帮忙装个linux和cell的开发环境。于是在一个多月前兴冲冲的接下了这活,从此后的每个晚上,都在看着这外形做工几乎完美的黑盒子发呆。开始装linux,费了九牛二虎之力从网上拖下来了4个G的FEDORA CORE6 PPC,考到移动硬盘里面准备刻DVD,哈,没想到这一copy竟成了和我的移动硬盘的永别。经过多个硬盘盒的测试和对比,确认用了一年多的移动硬盘寿终正寝,可惜了,里面还有我看了三个月的ultrasparcT1的code的注释啊。没办法,又重新拖了一个下来,再次刻盘……发现居然刻挂了!再拖,再刻,终于搞定了,为了一张DVD居然从网上下载了12GB的东西,假设到美国的光纤是10Gb的OC-192,那么单单我一个人就占用了至少10s的时间,唉,愧对国人啊。这几下折腾,一星期已经过去了。
下面开始安装,发现PS3的输出只有视频和HDMI,而我的显示器两者都没有,于是搬到公司的实验室,借用公司超级昂贵超级难用的philips高清液晶,在帅哥同事的帮助下,按照网上的攻略,花了一个下午调出了图像,改了system setting,安装了otheros,捣鼓出了kboot的界面,在开心的同时,却没有预料到这只是痛苦的开始……
接下来的几天里面,一次一次的尝试,可是每次都是在kboot起来之后,插入光盘,发现根本没有传说中的install 选项出现。不得以,又当了个yellow dog5来(无耻的又占用了4s的带宽,浪费公司电费若干),这下更好,插入光盘后kboot完直接关机,屡试不爽。于是开始到处找原因,首先发现从不同地方当下来的otheros.bld居然有不同版本,一个2m多一个3m,于是大喜,重新安装otheros若干次后绝望,然后又想起来用的U盘曾经中过autorun.INF病毒,于是又大喜,又重装,又绝望。在踢了机器几脚之后,终于发现PS3的固件版本号是1.3,而最新的是1.6,于是尝试升级。意想不到的事情发生了,就在我插上网线的一瞬间,那渴望了无数次的install选项突然冒了出来!tnnd,原来安装一定要插网线,那帮该死的攻略怎么都不提!!!!那一刻,我热泪盈眶,我热血沸腾,一向矜持的我忍不住大叫了一声“yeah”,随后无数鼠标,键盘,电烙铁纷纷袭来……
正所谓“纸上得来终觉遣,觉知此事须恭行”,从此以后,凡事小心,凡是三思,接下来的SDK安装就是水到渠成,唯一让我郁闷的是cell SDK2.1的ISO里面需要很多2.0的rpm包,但是居然不打包进去,还得安装的时候跳出来说从什么巴塞罗那去下载。这单线程的小水管要载到猴年马月啊,数了一下一共18个rpm,于是在windows下快车载了重新刻盘,一次搞定!
装好了PS3,却发现真正的噩梦刚刚开始,首先,因为当初安装的时候只给linux分了10个g的空间,安装的时候选了full,结果装完了以后剩下的空间连SDK都装不下了,于是慢慢把没用的组建比如什么openoffice等等的全部删除。我是在图形界面下做的操作,这删除的速度,那真叫一慢啊,打开窗口2分钟,刷新列表3分钟,选中一个软件5分钟,再选第二个就是10分钟,删除时间接近无限,反正为了腾一个G的空间,花了一个上午。也许是LINUX只用了PPU的原因把,反正linux跑的速度只能和PIII相比(想想也对,PS3和P3也就多了一s,如果S作为slow理解),尽管这是一个3.2G双核的PPU。
接下来测试了SDK sample code里面的hello world,跑的倒是挺好,只是那个传说中的16M点的FFT还没编译通过,革命尚未成功,同志仍需努力啊!
June 03 拿到了DEII板,哈哈有朋自远方来,不亦乐乎,更何况是带着DEII板来的朋友!
感谢苗大侠的慷慨捐赠,让我终于有了块板子可以撒开“腿”跑了,拿回来之后,爱不释手(嗯,如果芯片不带ESD的话估计已经都击穿了),这做工,那是相当精致啊,这价格,那是相当便宜啊,这接口,那是相当丰富啊,这使用说明……那是相当复杂啊:(
闲话少说,上PP
仔细看发现,2C35居然是-6的,老外果然舍得花钱,显示芯片都用的ADI的,连串口都是MAX232,那可比台湾产的贵一个数量级的阿:),只不过……那个SDRAM不知道是从那个旮旯里找来的,我怎么google都go不出来……
好了,宝贝到手,下面又有兴致继续俺的革命工作了(貌似已经丢了两个多月没玩了,不知道前面写的还能不能看懂……) April 19 昔年今日燕园中,我与芙蓉路相逢,芙蓉不知何处去,我却依旧当民工一晃来北京已经两年了。两年前的现在,第一次逛北大,遇见了在北京见到的第一个也是目前见过的唯一的一个名人--frjj。依稀记得当时,春风正暖,桃花正艳,frjj如一片(确切的说是一团)彩云般飘过我的身边。刚出道的frjj,凭着她那“耐看得脸”和“火辣的身材”,在我我幼小的心灵留下了永不能磨灭的烙印。
桃花开了又败,败了又开,如今frjj已经功成名就,上个新浪做个采访都能有不菲的收入,而我也平抑了刚来北京时的满志踌躇,安心的在某乡镇企业做着IT民工。如今,每日里最大的乐趣就是数着ultraedit里面的line number沾沾自喜,最大的企盼就是在下班的公车上抢个位子好好睡上一觉。梦想,希望,早已被LRU算法置换出了大脑能寻址的内存范围。某日里在地下通道听见流浪歌手的呐喊,若有所思,去琴行买了一根5弦想回去给落满灰的吉他换上。走出琴行的瞬间,不经意的发现,曾经习惯了捏着拨片的手上还提着一颗白菜和一包味精。
不甘心的又上网找了找frjj的照片看看,忽然发现,至少人家拍照还是很认真的。也许,执着的相信自己,相信梦想,不一定是一件坏事。
夜不能寐,随便发发牢骚,与技术无关,哈 March 29 堆栈测试--跑个斐波那契数列玩玩昨天听同屋的抱怨说手下的vendor写了个超级bt的递归函数,导致系统运行崩溃,忍不住想测试一下leg的堆栈处理是不是正常。于是上网随便找了一个斐波那契数列的程序,编译了来测试。程序如下,超级简单,就是计算斐波那契数列的前100项,由于现在io系统还没做,看结果就只能往某个地址写而已,这里0xfc000000是最后的输出结果。
int fibo1(int n)
{ if(n==0) return 0; if(n==1) return 1; return fibo1(n-1)+fibo1(n-2); } int main()
{ int i; int j; int * p; j=0; p = (int*) 0xfc000000; for (i =0;i<100; i ++) { j = fibo1(i); *p = j; } return 0; } 程序用arm的编译器编译了以后,我把汇编code从axf中扣出来整理成memory输入,保存在一个文件中,仿真的时候testbench把它放到外面的测试ram中去。
外部ram在testbench里面是64k大小,但是仿真的时候发现编译器把堆栈设置在了0x7ffffff,这……总不能让我写个
REG [31:0] MEM [4294967295:1] 这样的bt数组吧,我严重怀疑modelsim能不能跑起来,不过不敢在自己的机器上实验,毕竟我的小本本一边跑仿真一边bt还载着片嗯。 想来想去,最后高端的memory用一块cache来实现,cache也是现成的,就是写好了还没集成到系统里面的dcache,也顺便验证了一把dcache,呵呵。
仿真的结果如下
18140 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 0 # 19380 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 1 # 22800 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 1 # 28500 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 2 # 38660 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 3 # 55560 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 5 # 83660 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 8 # 129700 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 13 # 204880 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 21 # 327140 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 34 # 525620 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 55 # 847400 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 89 # 1368700 : inst= STR -----| code= e5850000-----| d_addr = fc000000 -----| ddata = 144 天哪,我突然发现其实前面的执行时间就是一个斐波那契数列…… 出于对接近保修期的本本的爱护,没有把这个程序运行到底,也不知道最后一项到底是不是,呵呵 自己run一下很简单,就直接点开那个modelsim的project然后run一下就好。 |
||||||||||||||||
|
|