字體:小 中 大 | |
|
|
2010/10/09 18:25:02瀏覽3762|回應23|推薦89 | |
最近加入一家新公司,工作對象是一位俄國裔的物理學家,叫艾理耶索。 艾理耶索是主技處的科學家,有點老,有點駝,略帶口吃,人非常好。他對主技長負責,專門研究公司兩三年後將採行的新科技。我的任務是為他負責軟體方面的研發。 半個月過去了,甚麼事也沒發生。我每天坐在位子上看技術資料,好生煩悶。 兩星期前的週五他跟我說,他將和主技長外出二週開會,拜訪客戶,我們在等的新機器也得下月初才會到,問我願不願意協助樓上的產品部門解決一個難題。 我當然說好啦。“甚麼難題”?我問。 “他們的新板子通不過元件可程式邏輯閘陣列晶片記錄器測試”。 艾理耶索講不出細節,於是帶我上樓介紹認識相關部門人員。 他離開後大家開了一個會,向我說明問題的來龍去脈。 來的人包括一個剛出爐的印度小博士叫“大享”,他是目前問題的主要負責人(如喪考妣),他的老板“平”(灰頭土臉),平的老板“松”(面色凝重)。晶片邏輯設計師是個老美叫“約翰”(表情嚴肅),約翰的老板不知叫甚麼(憂心忡忡),還有板子的設計師(戒慎恐懼),硬體的主管(誠惶誠恐),機房管理小弟“湯姆”(小心翼翼)等人。 問題大致交代完後,我的理解是:測試軟體寫資料到晶片裡,讀回來時資料變了。 我看一干人等嗒然若喪,心想:同事們,我們這是...治喪委員會嗎?怎麼一個比一個憂愁呢? 沒人說話,我只好開始問問題。 “多久發生一次”? “大約跑兩三天後”,約翰說。 “晶片誰家的”?我問約翰。 “有兩種:一是阿爾特拉,另一家是彩凌”,約翰接著說,“邏輯是我設計的”。 “板子呢”?我問。 “板子也是我們自己的”,湯姆說。 “平臺呢?” “平臺有兩種:萬國商機的和超微的”,硬體主管說話了。 “驅動器”? “驅動器是一個顧問寫的,他離職了”,大享愁眉苦臉的說。 “測試軟體呢”? “是我們寫的爪哇”,平說。 “兩種平臺都發生嗎”? “是的。超微比較常發生”,松說。 “問題發現多久了”?我有點好奇目前狀況如何。 “已經半年多,一直找不到根本原因”,硬體主管有點尷尬的說。 我明白了。這干人等不知問題出在那裡,找了個聰明小博士來,把整個問題丟給他去解決。難怪大享看起來如喪考妣,其他人也脫不了干係,所以一個個垂頭喪氣。 可是一個問題拖半年,這像話嗎?這家公司的產品是給矽晶片製造商像“臺積電”用的,為當今世界首屈一指的測儀公司。晶片若果如此,機器怎能用呢?這不是在開玩笑嗎? 我暗地裡在算這些人半年來總共領多少薪水等等。 “那麼目前為止找到了甚麼”?我希望省點力氣。 “我們甚麼也不能確定”,平老實回答。 完了,一切都完了。這麼多人找半年,我才剛來,縱有三頭六臂,又如何能破解? 望著玻璃窗外,似乎隱約看見兩個人的身影,一是艾理耶索,一是主技長。 要是我弄不出來,他們會怎麼想? 他們會想甚麼我不知道,可是我知道老婆會怎麼想。老婆會從房貸開始,講到孩子、生活、高爾夫、水電瓦斯、聯邦稅州稅,最後反正都會回到我身上。一切的一切都要...錢! “好吧,讓我試試看。給我兩種平臺,各插四片板子。我要驅動器原始程式碼,測試爪哇原始碼,機器登入密碼,平臺無時限使用權,硬體設計規範文,還有晶片資料書”,我一口氣全要了。 “只要幫我們解決,你要甚麼有甚麼”,眾人異口同聲說。 回到位子上,捲起袖子開始幹活吧!以遙控的方式,對機房裡的萬國商機平臺開始跑爪哇。一天下來怎麼跑都跑不出問題。趁這段時間把所有文獻讀一遍,又兩天過去了,機器還是沒死。再過一天,把驅動器原始碼四千多行也看得差不多了,機器還活著在跑。這怎麼辦?一星期都快過去了,就算現在它忽然死了,我又能得到甚麼? 星期五,決定開始自己寫個“萬箭齊發”式的平行處理程式。一定是爪哇太慢了,要好久才抓得到蟲。 星期一又寫了一天,總算大功告成。讓它開始跑萬國商機。 我這程式跑一小時大約可抵爪哇半天,等週二來就知道了。 星期二一早上班,一看,還是沒死。把大享找來,說,“我看你的爪哇有問題。你何不集中精神在爪哇上找找看?我是不用爪哇的了”。 大享說,“要不要換成超微試試”? 我想也對,於是換到超微,結果一跑就死了。果然不愧是咱們臺灣製,重鹹重辛,俗挌大碗! 我用自己的程式監控驅動器軟體,並把後者稍加修改,發現超微會讓晶片第零記錄器第零位元無端從零變一,直接就在我眼前生變。我把約翰找來,讓他看。他聳聳肩說,“是超微的,你能怎樣?我把第零記錄器搬到別處,這第零個就讓它玩吧”。 好像也行。“可是還有別的問題”,約翰說。 蛤?還有啥問題? “等它死你就知道了”,約翰挺灑脫的。 我避開第零記錄器,繼續跑超微。後來發現,記錄器讀取會失敗。 這問題很麻煩,因為你不知道到底是寫進去時錯了,還是讀出來時錯的。 我懷疑兩者都有可能,並且與時間有關,於是將驅動碼一個簡單長讀改變一下: do { reg.val = readl(reg.offset); tmp = readl(reg.offset); } while (reg.val != tmp); 又將相對應的長寫改成: do { writel(reg.offset, reg.val); do { tmp = readl(reg.offset); tmp1 = readl(reg.offset); } while (tmp != tmp1); } while (tmp != reg.val); 之後超微就不死了,跑過一整晚。平和大享非常興奮,過來看。 大享對後面這個有意見,說:“我覺得這樣比較好”: writel(reg.offset, reg.val); do { tmp = readl(reg.offset); } while (tmp != reg.val); 我說,“你不能信任那個長寫”。他明白了,不再說話。 平說:“可是你這樣弄系統會剉起來”。 我說:“加個‘讓’不就得了?我這是在找問題,不是要你們照抄”。 “可是萬一出不來怎麼辦”?平又說。 出不來?出不來你不會搞個有限循環啊? 大享不久後也找出爪哇出錯的地方了,大功至此告成,剛好又是星期五。 一個週末過去,主技長和艾理耶索回來。週一一見我第一句話就問:“那個問題怎麼了”? “解決了”,我說。 這人不喜歡囉唆。你不多問,我不多說。Don't ask, don't tell. “甚麼問題”? “爪哇本身一個,超微造成兩個”,我答,“爪哇大享應該解決得了,超微如果我們非用不可的話,約翰得挪一個記錄器,我得改驅動程式碼”。 “別的都沒問題嗎”? “晶片、板子、萬國商機、驅動器都沒問題”,我很篤定,不解釋萬國商機原來的問題是爪哇的錯。 主技長有點滿意的樣子:“幹的好”。 “任何時候”,我說,“一塊蛋糕”。 像他這種吃硬飯的我很瞭解,只要硬體不出錯一切好辦。吃軟飯的特別好欺負。 艾理耶索過來找我:“我..我們的機...機器來..來了,就放..放你桌..桌上吧”。 兩人紙箱拆一拆,弄來鍵盤、滑鼠、監視器等等。好大一臺伺服器!佔了我一個餐桌大小的面積。 打開電源,那機器“繩~”的一聲,嚇我一大跳,害我奪門而逃。甚麼地獄啊?居然比直昇機還響! 螢幕上大串大串的啟動自測結果飛馳而過,好幾項是紅色的“失敗”,好不嚇人。 最後斗大的兩個字出現了: “超微”! 我從椅子上跌下來。 小命這苦呀?咋又是超微的? 艾理耶索說:“超...超微便...便...便宜”。 人生至此...算了,回家吧。一路上邊開車邊想,這碗飯咋這難吃啊? 打開車庫門,魚子醬笑臉迎人,問:“今天怎麼樣”? 我說:“今天把兩星期來寫的交給樓上”,“共兩百多行”。心想,真正需要的不過十行。 魚子醬依舊笑容滿面,“唷,挺好賺的嘛!每天二十行。你打字快,記得以後多寫點,嗯”? 我愣了一下,想起今天月底剛好發半月薪不是? 多少人以為咱這行是照秤的...哦? 為何命這薄? |
|
( 心情隨筆|男女話題 ) |