速记

该怎样还是得怎样,不受干扰。

对于力所不能及的事情,无视。

对于力所能及的事情,做好。

 

对于暂时力所不能及的事,思考一次长远解决方案。就一次,不再多!
思考好了,继续无视。
时机成熟的时候自然解决。

一意孤行是需要勇气的。

Last Univ. Life (19)

既然不能提前结束毕设,好吧,沉下心来做些东西出来。

正如曾经博客的qmd所说:“既然见不到春天,不如在这冬天里做点什么。”

思考一个问题:我是因为所谓“上进,努力”而这样投入地做事呢还是因为简简单单地喜欢做这些事呢?我觉得是后者,我只不过是在这里面能找到些乐趣而已,跟打游戏玩牌踢球没什么区别。

实在被Disperse Stage折腾的不行,昨天晚上以及今天早上,老天向我开眼了~

首先是昨晚,回忆给老师演示的时候某个delay模块的位置似乎放得不太对,于是检查思考了一下,的确很致命!这个粗心导致的错误花了我至少一天的时间。pat~

熄灯后,我突然觉得LSE提供的模块实在不够用,得!自己添加一个到库中去!于是拿原始的router模块下刀子,首先是裁剪router中我不需要的东西,然后添加自定义的功能。通过这种方式就可以比较扭曲地利用已有的框架,而不需要自己从头来了。BUT,昨夜修改的模块竟然编译总失败,提示的信息基本看不懂。唉,电脑已经报警20分钟了,再不关,虚拟机可能就要挂掉了,我可不想去重装什么linux……好吧,关机,睡觉,此时00:30分。闭着眼睛,2点才睡着……

早上起来第一件事就是开电脑,调试模块,一个小时候,搞定!遂去刷牙洗头……

刚才用SourceSafe比较了下成功的版本和失败的版本,Faint!又是一个spelling mistake!唉,我没救了……

My sister will arrive at Wuhan in 4 hours and hopefully,I will be at home tommorrow! Wakaka~~~

 

Last Univ. Life (18)

Step by step, Walked away from time, Walked away from mist, Walked away from the destination.

开题报告还没写,实习日志也没有写,一切的一切–暂停!

因为,毕设—毕设—接近尾声啦!代码民工正在激情澎湃地进行着代码革命!

其实,这个课题工程量很大很大,需要建立的子模块很多很多,但是老师说,你把这一部分做出来就好了吧。呃…这一块其实并不难,仿佛找到了个台阶,或者找到了局部的终点,开始不那么心慌了—3月初,当我分析整个任务量的时候,其实心里的压力很大,各种担心,只不过,咱是初生牛犊而已,天塌下来咱也敢去顶一顶—在这个局部目标的指引下,表现得比较有耐心,比较有信心,还比较细心和聪明。日志显示,真正进入建模的阶段也就十几天,之前的一个多月都在摸索打基础。短短的十几天里进步很快,凭着小聪明解决了一个又一个令人小郁闷的小困难,小有成就感。这种成就感也就跟那种完成了一件事,做出了一个题的时候的感觉一样,并不强烈。当然了,比被问题压抑着好。

LSE并不是一个很完善的工具,值得改进的地方还特别多,这给开发工作带来了很大的麻烦。安腾呢?复杂,真复杂!那不是几千几万行代码就可以解决的问题。对其建模,其实并不是很好玩的事情,无非是看懂手册,加点小聪明,然后实现,、调试、优化。当然了,要完成建模过程,前提是对系统结构的相关基础知识有清晰的理解。我做这个,就是冲着学习系统结构知识这点的。However,NOT interesting… 它并没有调动我全部的思维,感觉自己就像个锈蚀了的齿轮样,只是慢悠悠地往前转。也就是因为这个,它带来的快感是过于柔和的,不是那种“众里寻他千百度,蓦然回首那人却在灯火阑珊处”的感觉。

所以,我想说的是,我要快快地、毫不敷衍地把已有任务完成,然后思考整个安腾架构的建模实现方法,但不去实际建模,把思路写下来即可。报告写完后就快快地投入内核的怀抱。大学的理想,不能成为一句空话吧?那里才是我的一片蓝天。

不将就、不苟且!

黄山与媳妇

昨晚上告诉俺爹我可能会去黄山溜达,今早上收到条短信,我笑得不行,于是talk起来:

Dad 说(Mobile)
黄山可不去有些山水风光有待将来有了媳妇时结伴同行岂不有意思些

晓楚 说(11:05:08):
要是一辈子没老婆那岂不是一辈子都去不成。
其实呢,除了媳妇,邀些同学前往不也很好么~
媳妇又不是世界的全部。

Dad 说(11:12):
哪能一生没媳妇连个没读书的老农都不如

晓楚 说(11:18):
可不 ^_^

————–

结果精炼总结,得到如下qmd:

— 

 后来我还仔细分析了下,竟然发现,咱读书的真连个老农都不如。您听我给您讲:

老农,人家有房吧?二十出头就有老婆孩子了吧?不光房子,人家还有土地呢!咱读书人呢?想买房?好啊,当房奴吧!如果说种田是封建社会的事,那咱呢?奴隶社会。看见了吧?人家老农比咱先进上千年。您会说等咱挣了好钱,咱下一代可以享受下不跟着受苦受累。各位中有从农村来的吧?小时候您累着了么?大约没有吧。读书人的日子好过吗?就拿咱代码民工来说吧,天天对着堆机器噼里啪啦地码代码,还得加班再加班,那是人过的日子吗?阳光、小鸟、春风、自然,那是咱享受得起的吗?行啊,你牛你不干呀,切,灭你的工资灭你的饭碗,按揭没的交了吧?到四环边上天桥下蹲着去吧您呐~ 再看人家老农:是的,人家可能吃肉没咱频繁,可人家身子骨不见得不咱差吧?人家在农村,没啥娱乐的?你看看人家望着满堂儿孙时的笑容吧!你听听村里人聊天逗乐时的笑声吧!是的,耕田种地的,肯定累,人家累也不过百天吧?出了点事要半不需要向谁请假看谁脸色吧?您读书人呢?一年三百六十五天,你有多少时间闲着了?人闲着了,有多少时间您的心闲着了?您的日子真那么好过?所以啊,“连个老农都不如”,这话还真可能是对的,好好想想吧。

 

Last Univ. Life (16)

要发展,离不开完善的基础设施。

当发展受到严重制约的时候,请检查你的基础是否牢固。

结果2天艰苦细致的学习分析,LSE Modules和Signal Passing被攻克了!

NB!

前天实现了流水和分支执行,但是没有完成推测执行部分的正确取消。然后我计划昨天实现这一部分,用的方法是gate control(门控制),然而,遇到了超级大的困难,编译连接都可以通过,但一执行就挂掉,说没有timesteps 了。丫的!然后我抓狂,上蹿下跳,一气乱改,however,毫无进展!然后开始反思了,我这样搞,有依据么?依据啥?然后我就傻眼了……前面做的一切完全就是投机嘛!感觉对了我就出发……

明白我错了,开始补课。第一步,再去学习LSE的运行机制,弄明白信号的概念,以及它的运作机制;第二步,仔细研究使用的每个module(模块)的源码,明了其内部的信号运作机制以及模块的整体语义。从昨天下午起,到今天下午一点半,一直在沉着冷静地分析、做笔记。基本了然于心了,睡一觉起来,2点35。Way Back Into Coding! 不到半个小时,搞定!哇咔咔~~~看着分支后流水线中的bubbles,我那叫一个高兴哇~~执行OK咯~~~哈哈哈哈~

就在执行结果刚出来的时候,正好小白fetion过来,正好一顿聊~心情一片大好哇~~

 想好了如果代码跑起来了就去要债的,于是给亿都打了个电话,蹭蹭蹭跑过去……又是给了我200!他真好意思!!!!我心情好,不计较了,还帮着在那里弄了好久的服务器机架。看着机房里的服务器很威武的样子,原来也就是一驼铁而已……唉,神秘感消失了=.=

今天是小任同学生日,就在这里说声生日快乐了 星星 ~ 这家伙真是闲得厉害,竟然跟我比赛写博客……哼哼!

                                                                       

最后来说教一番,以后遇到困难了,自个儿回来看看,加点信心加点勇气:

  • 没有过不去的坎
  • 上一条的前提是面对着坎的时候要积极主动地分析
  • 坎是无穷无尽的,为了彻底地消除坎的存在,我们需要从基础上去解决问题
  • 积极、乐观、自信
  • 冷静分析问题所在,不盲目不急躁

 

 

Last Univ. Life (15)

技术博,请自动跳过。

————————————-

Within the HSR evaluation phase of execution, each module instance’s code may be executed multiple times.

之前我是不理解这句话的,在手册上画了个大大的问号。经过毫无收获的一天,算是明白其背后的深刻内涵了!

由于组件的连接可能存在反馈,和通常所说的反馈概念一样,系统需要一个反复计算的过程才能达到反馈稳态。对于硬件来说,这样一个反馈过程就是硬件反复读取输入,经过电路,然后输出的过程,对于软件来说,经过的不是电路,而是一组计算过程,i.e. functions.

上面说"each module instance’s code may be executed multiple times"就是因为这个原因。为了达到稳态,每个模块就可能会参与多次计算。

Start Of Timestep

所有端口状态都被设置为LSE_signal_unknown。也就是说,再辉煌的历史,那都是历史了。未来掌握在新的计算之中。如何计算?最简单的一步:in/out.control中设置端口输出。这种输出是不依赖于任何外部输入值/信号就可以确定的部分,必须依赖于外部输入/信号的端口状态在下一步计算。

HSR( Heterogeneous Synchronous Reactive) Evaluation

在这一步中,LSE利用HSR计算模型(Model of Comutation,MoC)来推算模块端口状态。依据MSR MoC的定义,我们对模块端口状态的转换有一系列的限制。为什么要使用这样一套模型来做呢?我还不知道……在HSR计算环节,每个模块实例的代码可能被执行多次以获得最终状态。

最终内部状态是在这一步计算出来的。

End Of Timestep

上一步把最终状态计算出来了,但还没有更新到状态变量中来。这一步更新内部状态。结束这次的Timestep循环

 

下面再反思下整个过程

什么是内部状态?
它包括路由表、dynid、各种value、自定义变量等等,还包括emulator提供的数据。

哪些东西在开始被reset了?
注意,仅仅是signals被重置了,内部状态并没有被重置。这是我们进行连续计算的基础。

多个逻辑上并发的迭代地计算过程之间如果产生数据依赖该怎么办呢?
我猜测会发生信号无法解析的错误,不过不确定。
整个解析算法应该是利用图搜索的方式进行的,不断迭代,直到最终整个图状态稳定。

信号依赖的解决方案应该是怎样的呢?
以下是我的个人猜测
:比如在Gate中,in、out信号明显依赖于门的控制点,在图搜索的过程中,会先计算出控制点的一个相对稳定值,然后再计算in、out值(in、out信号不受控制点控制的情况除外)。所以在设计的过程中我们需要注意这一点,以免产生信号无法解析的情况。

 

——

Way back into ….mist….

Last Univ. Life (14)

Milestone

今天上午、下午,我仿佛回到了当初插板子的年代,对照每一个输入输出信号逐个对比检查,然后分析不同之处,企图找出执行模型中的错误。然而,无论如何努力,未果。已经习惯了这样的细致分析且毫无进展的情景,所以也不急,只是接着点点点点地分析找错。

晚上7点开会,暂停debug,带着简单处理器的模型图纸在会议室的边开会边瞄上几眼,突然有了几分明白了!心情并不激动,因为答案只是一个假设,还需要实际验证,一旦不通过,继续白折腾。散会后马上检验,在一个地方那个加上一句:tee::control_flow_style = or_acks; 就是这么一句,一切矛盾都迎刃而解了!!一天的努力,就换来这么一句。值!纵然天涯海角,为的不就是这回眸一笑?

接着开始继续推进,实现预测地址和分支地址的有效选择,轻松搞定!再然后,实现多周期指令执行模拟,继续轻松pass~~ 明天加gate控制,实现多周期指令的正确执行~~hoho~~~

看着一条条输出和预期一摸一样,心里那叫一个熨帖!

脑袋继续飘忽,睡觉去了。

 

前两天hi的时候,于光谷广场
 

 

Last Univ. Life (13)

今天在做国家基础建设:逐个学习LSE中的基础模型,比如arbiter,demux,router,mqueue,pipe,serializer,etc 各自有各自的特性,结合手册、源码,基本功能都弄明白了。这些是基础,是砖是瓦是钢铁,明天可以考虑如何把这些用到具体模型中建房子了。啦啦啦~~

另外,今天突然感觉身体有些不适,走路的时候感觉脑袋有些飘忽,要注意加强休息和调养。Highlight Your Heart, Highlight Your Health!

ps下我的工作环境:

硬件:Lenovo Sun150, Celeron M 1.3G CPU, 512M Memory
系统:WindowsXP,VMWare搭载Redhat Linux
环境:LSE相关软件,如lss, python, perl, JVM等
编辑器:Notepad++ for Win32

由于LSE相关软件只能运行于Linux,所以用VMWare跑redhat,安装相关软件。编辑工作在Win下实施,通过VMWare Tools提供的Host-Target文件夹共享实现和Linux共享被编辑的文件。这样,既可以利用Windows下舒适的编辑环境,有可以使用Linux下的编译工具,实现了黄金搭档~~

LSS格式的文件并没有高亮显示支持,上周花了好久在Notepad++中自定义了一套highlighting,嘿嘿,DIY,虽不完美,用的还是很好很爽~~~滴~~~~

一般,我是IE开几个网页,开FoxReader读三四篇参考文献,挂着QQ/Fetion,IBM Dict,Nod32,我的电脑Explore。唉,可怜的硬盘,你兄弟内存太小了,切换下子就看着你的眼睛眨呀眨的,心疼!

慢!慢!慢!很向往有个新本本,大大的内存,小小的尺寸~~hoho~~

Tree New Bee,绝,真绝!

“三下乡”活动,村长拉着我同学胳膊非要让他帮忙把村头墙上的标语翻译成英文,同学实在受不了折磨,于是大笔一挥写下:树新风=tree new bee!

巨赞!这文字游戏玩得不一般!

Last Univ. Life (10)

我怎么就碰上了这样一个毕设?

资料不全这个问题太太太太太令人头疼了了了了了!LSE的资料还好,实在不懂可以啃例子来辅助入门,但安腾II(Itanium2)的资料实在不全啊!基础资料不全做东西,那就好比盖大楼没图纸,但你还非得盖出它传说中的样子来!!你娘!要老子盖个啥子哦!!

举个例子,发射指令的时候,Intel的一篇文档中说指令是按照Group来弄,另外一篇有暗示用Bundle来组合,到底是哪一个,从来没有详细说明,飘忽!丫的!飘忽啊!!!下面打算发几封mail给国际友人们,看有谁愿意指导下不,不行的话我就要发挥“主观能动性”了…实在怪不得我…呜呜呜……

我总用07年暑假中科院实习的成功例子给自己鼓劲,但是现在我不得不正视这样一个问题:中科院那个任务好比一个点,现在的任务是一个面—打点相对于攻面那要简单得多。安腾是啥?那是Intel和HP联合攻关几多年才研究出来的,是一个系统化的东西。另外,还有很重要的一点,中科院那个任务正好和我们刚刚学过的《计算机网络》中的滑动窗口协议十分相似,所以理论基础已经有了,只需要去学习Spin那个工具就好了;而这次,对于系统结构方面的知识,我了解的完全是皮毛,LSE工具也比Spin概念多,还安腾…我都快安息了……;在计算所,实在有不理解的地方,可以问老师,因为协议是老师设计的,现在呢?让我打电话给Intel的设计师么?囧……

每天晚上都啃文档到很晚,实在是没有办法。H浩这个鸟人说:“你看你看 你多较真。。。这样活的多累”。是啊,干嘛较真?唉,这大约就是raywill了,一旦摊上了,前方就是万丈深渊,那也只能死而后已了,March On!March On!事情总会有转机的!

幸亏有麦头陪我聊聊天,不然,我早完蛋了……