最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

ysyx一年記

2023-07-27 10:27 作者:gftyt  | 我要投稿

將ysyx介紹給各位已經(jīng)整整一年了。一年期間,各位或多或少接受了不同程度的折磨,進度快,花時間多的接受的折磨多一點。從結(jié)果上來看,帶ysyx進組的效果離初衷有一定偏差,但也有一些效果。從過來人的角度,可以和各位聊一下ysyx能帶來的一些東西。 ysyx的最終目的是獨立實現(xiàn)支持riscv64指令集,可以運行復(fù)雜程序的CPU。但實際需要完成的內(nèi)容卻遠不止于此。事實上,訓(xùn)練的開始是讓各位意識到,程序員需要,但學(xué)校教育往往欠缺的專業(yè)技能都有哪些。這些東西看不見摸不著,做項目的時候甚至?xí)X得不需要。但具備這些技能,在工作中的體現(xiàn)是能獨立地一次把事情做對,最大程度地減少事后填坑和毅力調(diào)試的可能性,是用來拔高技能水平的。訓(xùn)練與得到收益是存在時間錯位的,隨著工作難度的上升,這些東西的重要性才會凸顯出來;但當工作難度開始需求專業(yè)技術(shù)的時候,訓(xùn)練的最佳時機往往已經(jīng)喪失了。在沒有任何項目核心需求壓力的時候,進行這樣的訓(xùn)練是最合適的。當然,是否參與訓(xùn)練,參與到什么程度還是在各位自己手上的,只要有所選擇就好。

正式的預(yù)學(xué)習(xí)答辯需要完成800字的《提問的藝術(shù)》讀后感,為什么要閱讀這篇語言不乏傲慢的文字,還要完成篇幅不短的讀后感呢?包括個人經(jīng)歷在內(nèi),未經(jīng)訓(xùn)練的提問絕大多數(shù)都類似“我這里波形出問題了,該怎么辦”的無效句式,把自己的問題描述清楚是需要付出努力的。一個面上的問題往往是需要數(shù)百個字,結(jié)合截圖和日志才能解決的。這個意識是反直覺的——人人都想做得最少得到最多,新手更是希望能直接得到解決問題的答案。但這在解決問題的過程中是不合適的,需要付出努力,解決問題的主體,最終還是是提問者本人。認真提問是付出努力的第一步。把問題描述清楚,不僅在為回答者提供有效信息,還是把問題頭緒理清的過程,也是激起努力意愿的第一步。各位后續(xù)成為學(xué)長學(xué)姐,開始回答問題的時候,或許也會有所感受。

聊完意識之后,ysyx(實際上是PA)又花了大量篇幅,甚至故意設(shè)置障礙,讓各位完成編程環(huán)境于工具的配置和使用。碩士階段的rtl代碼任務(wù)基本上不會超過幾百行,似乎用記事本都可以完成所有任務(wù)。但考慮最簡單的情形,一個有數(shù)十個接口的模塊在連線的時候,利用正則表達式將input/output xxx替換為.xxx(),就已經(jīng)能顯著提高工作效率了。正是因為這些事情不用任何工具都能做,所以才需要強調(diào)有工具可以快速地做這些事情??傆幸惶欤蝿?wù)的工作量會必須依賴于自動化指令完成,而訓(xùn)練的意義在于告訴各位,一定有工具可以做這些繁瑣耗時的事情。結(jié)合提問的藝術(shù),在遇到繁瑣工作的時候,chatgpt就可以解決絕大多數(shù)生產(chǎn)效率問題。也許vscode還是比vim好用,但用過vim的批處理指令以后,在vscode下的開發(fā)也會自然地想到,有沒有幫助我完成批量工作的方法。當具備這些意識的時候,使用什么工具就都不重要了。 艱難地來到正式cpu系統(tǒng)搭建的部分,第一個任務(wù)竟然是完全基于C語言的計算機系統(tǒng)組成實驗,且這個任務(wù)離rtl代碼設(shè)計仍然相差數(shù)個月的工作量。到此為止,是我認為效果與初衷有偏差的原因之一:訓(xùn)練的最終目的是希望各位熟悉rtl代碼的基本寫法,檢驗標準是實現(xiàn)一個單周期CPU。但為了完成這個開發(fā)周期不會超過數(shù)個星期的任務(wù),卻要經(jīng)歷工作量更大,難度更高的模擬器實現(xiàn)任務(wù)。在無壓力自學(xué)的情況下,知難而退的概率會非常高,訓(xùn)練的意義也因此完全喪失了。到現(xiàn)在為止,我也沒有太好的辦法解決這個問題,如果有好想法和建議的可以私聊我。 回到實驗本身,如果說前面兩個任務(wù)是意識和通用技能層面的訓(xùn)練,PA就是專業(yè)知識層面的訓(xùn)練。CPU是支撐整個計算機系統(tǒng)運行的硬件核心,只有了解它服務(wù)的系統(tǒng),才有可能設(shè)計出合理的硬件電路。如果沒有前置知識,直接思考PC(程序計數(shù)器)模塊如何加入設(shè)計當中,都會是困難的事情(沒做到rtl設(shè)計的可以看看能不能看懂這句話)。CPU需要支持指令集行為的正確解讀,其行為直接影響內(nèi)部狀態(tài)和外部設(shè)備的表現(xiàn)。這些表現(xiàn)在硬件層面是波形與數(shù)值,但在軟件層面是我們熟悉的“hit good/bad trap”,或者是程序執(zhí)行的結(jié)果。從更加熟悉的結(jié)果,而非難以閱讀的波形入手系統(tǒng)實現(xiàn),反而是通過拉長了任務(wù)周期,降低了任務(wù)難度,因為直接通過寄存器波形數(shù)值調(diào)試硬件bug是不可能的。

另外,完成PA的同時,也意味著完成了設(shè)計目標的參考模型。和批作業(yè)需要答案一樣,如果硬件設(shè)計也有運行結(jié)果的參考答案,bug就可以較精確地定位在設(shè)計實現(xiàn)與參考答案出現(xiàn)偏差的位置,進一步地層次化尋找問題。NEMU作為emulator與difftest model的例子,是硬件設(shè)計里非常重要的思想體現(xiàn),所謂的C模型和UVM驗證也在做類似的事,只是寫代碼或許意識不到其作用和目的,但PA通過寫在紙面上的字眼展示了這個重要的思想。

結(jié)束了對計算機系統(tǒng)的理解之后,我們終于可以開始入手系統(tǒng)的硬件實現(xiàn)了。在完成PA之后,CPU的執(zhí)行過程將變得非常容易理解,畫出架構(gòu)圖,根據(jù)架構(gòu)圖實現(xiàn)硬件代碼也會非常簡單。更關(guān)鍵的是,這里的調(diào)試工具是指令粒度精確的比對模型,bug不需要通過看所有波形來定位。調(diào)試過程還會幫助大家理解,rtl代碼是如何用高級語言描述電路行為,進而完成仿真的(正確實現(xiàn)這里的仿真時序模擬,也就理解很多時序相關(guān)的面試題都在說什么了)。單周期CPU成功運行cpu-test程序是個比較重要的節(jié)點,因為這是架構(gòu)知識-行為模擬-硬件實現(xiàn)的最小閉環(huán)。完成這個閉環(huán)以后,復(fù)雜功能的添加和調(diào)試只是難度上的變化,但已無環(huán)節(jié)上的缺失。如果能獨立完成到這一步,尤其是對于沒有先驗知識的人來說,就已經(jīng)是非常成功的工程訓(xùn)練了。未來實驗室項目需要的意識和能力,也不會高于訓(xùn)練的要求了。

另一點和初衷有偏差的點也在于此。訓(xùn)練最重要的目的實際上是喚起一些專業(yè)意識,完成的訓(xùn)練任務(wù)量反而是其次。長篇累牘地說了很多原理和希望,彎彎繞繞地設(shè)置了很多跟rtl設(shè)計本身完全無關(guān)的任務(wù),實際上想要提高的是各位在完成實際任務(wù)時,思考“我這么設(shè)計對不對?我如何驗證這個設(shè)計對不對?”的能力。某種程度上說,學(xué)校里的任務(wù)結(jié)構(gòu)是較為畸形的。博士作為任務(wù)的頂層設(shè)計者,很多時候并沒有子任務(wù)的工程經(jīng)驗,外加需要考慮的任務(wù)過多,并沒有辦法提供具體的任務(wù)指導(dǎo),甚至子任務(wù)的合理性,也需要碩士通過實際結(jié)果協(xié)助博士驗證(說來慚愧,任務(wù)不是工程實現(xiàn),并不是沒有工程實現(xiàn)經(jīng)驗和能力的借口。在我自己完成ysyx的過程中,也意識到自己能力欠缺得比較多,但這些欠賬只能慢慢補足了)。從這個角度出發(fā),進一步壓縮任務(wù)量,但強化每個任務(wù)環(huán)節(jié)的訓(xùn)練;或者保持任務(wù)量不變,但推動一定完成足夠的訓(xùn)練量會更好一些。

但是,令人欣慰的點也在這里。即使ysyx作為非強制的工程訓(xùn)練,也有相當一部分人完成了能力范圍內(nèi)的閉環(huán),并且也參與了討論和思考的實踐。在這里感謝各位在實踐中付出的時間與精力。ysyx或許不是一個非常合適的入門訓(xùn)練,它需要付出的時間精力過多,不參與流片得到的顯性回報又幾乎為零。但對零基礎(chǔ)且缺乏入門任務(wù),或者對自己要求較高,希望得到系統(tǒng)能力訓(xùn)練的同學(xué)來說,是一個值得堅持去做的選項。不管完成了多少訓(xùn)練,只要嘗試克服過不敢克服的困難,多了之前教育過程中沒有的意識,甚至只是意識到自己是否適合這個行業(yè),這樣的實踐都是有價值的。

百年未有的大變局之下,我們的集成電路行業(yè)正在經(jīng)歷前所未有的打壓和封殺。即使談?wù)摃r代精神是件虛無縹緲的事情,但身處這個行業(yè)已然是事實,背負著振興產(chǎn)業(yè)的期望也已然是事實。無論成功與否,也無論未來個人選擇為何,在此時此刻的當下,我們已然完成了提高個人專業(yè)能力的嘗試。ysyx展示了處理器設(shè)計的全流程,也展示了入門一個行業(yè)需要付出的努力。希望各位能從這段經(jīng)歷中有所體驗,有所收獲。對這個項目感興趣的同學(xué),可以繼續(xù)自學(xué),或者參加正式學(xué)習(xí)的報名與流片。有問題的還是歡迎隨時與我溝通。前一段時間我自己經(jīng)歷了一段比較混亂的時間,有很多想分享的主題,但因為精力原因作罷。后續(xù)應(yīng)該會繼續(xù)更新一些主題,內(nèi)容還是會結(jié)合PA和ysyx的一些核心思想。有其它感興趣主題的也可以私聊我,我能講就試著講一下。

ysyx一年記的評論 (共 條)

分享到微博請遵守國家法律
绥德县| 桃园市| 南涧| 武平县| 玉门市| 孟津县| 额济纳旗| 隆安县| 荣昌县| 惠来县| 太康县| 明溪县| 双桥区| 武陟县| 吴江市| 青田县| 邵阳县| 台州市| 南康市| 奉新县| 禹州市| 砀山县| 连江县| 德清县| 五大连池市| 德兴市| 德化县| 柘荣县| 赣州市| 五华县| 晋州市| 宣恩县| 苏尼特左旗| 耿马| 马山县| 宣威市| 磴口县| 修武县| 英山县| 工布江达县| 富锦市|