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

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

CS61C結(jié)課筆記,感想,以及資源

2023-01-01 11:43 作者:降星馳  | 我要投稿

前面的碎碎念

從10月半開始到12月末,終于趕在年尾完成了自己曾經(jīng)做出的計(jì)劃,原計(jì)劃是大概兩個(gè)月的節(jié)奏收一門課,后來由于學(xué)校的期中考試分?jǐn)?shù)爆炸和自己的壓力導(dǎo)致學(xué)習(xí)浮躁,心不在焉。

最后不僅學(xué)校的學(xué)習(xí)沒有做好,擁有基礎(chǔ)的CS61C居然花了目前為止最長的時(shí)間,實(shí)在是不應(yīng)該?。?!

氣死我了

關(guān)于CS61C

前排推薦飛豬大佬和茗落哥哥寫的對應(yīng)的文章。

UCB CS61C: Great Ideas in Computer Architecture (Machine Structures) - CS Plan (cs-plan.com)

https://cs-plan.com/%E5%9F%BA%E7%A1%80%E6%B7%B1%E5%85%A5/%E8%AF%BE%E7%A8%8B%E6%8E%A8%E8%8D%90/%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/UCBCS61C/

UCB CS61C: Great Ideas in Computer Architecture - CS自學(xué)指南 (csdiy.wiki)

https://csdiy.wiki/%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/CS61C/

CS61C,個(gè)人感覺對標(biāo)國內(nèi)的《計(jì)算機(jī)組成原理》(但是不要指望學(xué)完這個(gè)就可以亂殺408),跟CSAPP(CMU-15213)相比則是更加偏向于硬件,對于操作系統(tǒng)方面只有非常少的部分。

?CSAPP的話是更加偏向于整體的一個(gè)概念。

而且兩者采用的是不同的匯編指令集進(jìn)行教學(xué),如果有條件的話,最好兩個(gè)都上。我個(gè)人是目前沒有上完213的,等到學(xué)完之后,可能會(huì)寫一個(gè)比較綜合的評(píng)價(jià)

貼一段別人寫的

本課程涵蓋的主題包括C語言和匯編語言編程(RISC_V),高級(jí)程序翻譯成機(jī)器語言,計(jì)算機(jī)組織,緩存,性能測量,并行性,CPU設(shè)計(jì),倉庫規(guī)模計(jì)算,以及相關(guān)主題。

感想

我上的是fa21版本,寫的是fa22的作業(yè)。

我是先把大黑書看完了(以前無聊加上對這個(gè)有興趣)然后才來上這門課的,所以后面內(nèi)容基本沒有感受到什么壓力。要不是我擺爛我覺得我可以一個(gè)月不到完成這個(gè)東西

沒有學(xué)過C語言寫前面的內(nèi)容很痛苦,61C關(guān)于C的部分節(jié)奏很快,有比較好的復(fù)習(xí)效果,對于初學(xué)者也有一定的幫助,感覺老師講了但又好像沒有講,寫HW的時(shí)候感覺老師好像又什么都講了,回去看的時(shí)候又發(fā)現(xiàn)好像什么都沒講。

0.0?

太痛苦了

建議新手一定要看參考書,我個(gè)人看的是《C和指針》

Project3,手撕CPU的一部分,實(shí)現(xiàn)二段流水(很簡單),很好的總結(jié)和回顧了前面內(nèi)容,就像打通了任督二脈一樣讓人神清氣爽。

我個(gè)人覺得是61C的精髓并且強(qiáng)烈建議使用硬布線,而不是用ROM,縱然ROM確實(shí)非常的節(jié)省時(shí)間,但硬布線他會(huì)強(qiáng)迫你觀察指令對應(yīng)的機(jī)器級(jí)指令,進(jìn)行比較和猜想,從而構(gòu)建出一套比較優(yōu)雅的控制邏輯。因?yàn)槟闳绻莆詹涣藢?yīng)的美的話,你可能會(huì)想自殺的。

舉個(gè)例子,其中一個(gè)控制邏輯PCSel,只需要七個(gè)門就可以做出來!大家可以試一下。

以及RISC-V如此稀碎的立即數(shù)也是有他的美麗和優(yōu)雅的。(這個(gè)比較好發(fā)現(xiàn),但是在我嘗試優(yōu)雅的布線后,我裂開了,大家有優(yōu)雅的實(shí)現(xiàn)可以在評(píng)論里踢我一腳......)

這里貼一下我PCSel的發(fā)現(xiàn)過程

其實(shí)也是有運(yùn)氣的成分了,只有設(shè)計(jì)良好的指令集可能才能這么用。

我是首先把所有類型指令的opcode列出來,
然后看哪些指令可以修改PC(就是pcsel能等于一)

發(fā)現(xiàn)只有b型和j型,還有一個(gè)特殊的I型(jalr)可以這么修改

然后這些指令特點(diǎn)就是op6是1,其他指令都是0(我的op編號(hào)是從右到左是0~6)

所以我就判斷op6一定是在這個(gè)pcsel中,是必要條件

然后jal和jalr是無條件的,B是有條件的,所以我看了一下他們有什么區(qū)別,然后我發(fā)現(xiàn)op2他們是1
B對應(yīng)是0,所以肯定有一個(gè)op6?AND?op2,(jal和jalr的op3不一樣,應(yīng)該是用在其他控制判斷里)

然后看了一下B型指令的跳轉(zhuǎn)條件
發(fā)現(xiàn)func3(2,1,0)
里面的fun1是表示無符號(hào)數(shù),fun2表示是是否執(zhí)行不等指令
然后我把pc=1的條件成立條件列出來后發(fā)現(xiàn)可以用xor。

背后的邏輯是
我認(rèn)為指令是不同信號(hào)的組合(hw里面有問過幾個(gè)虛構(gòu)指令是否可行,可行的話對應(yīng)控制邏輯是什么。)
?Op段的指令應(yīng)該會(huì)控制絕大部分的數(shù)據(jù)通路的邏輯(ALU取什么數(shù)進(jìn)行運(yùn)算,mem是否可寫)
func3和func7應(yīng)該是對具體運(yùn)算和具體指令的指導(dǎo)。

然后比較巧的是pcsel可以這樣寫。
復(fù)雜點(diǎn)的Immsel我弄不出來,寫的就很丑。

Project4的環(huán)境配置堪稱環(huán)境科學(xué),我只寫了part1,dumbpy的導(dǎo)入不論哪個(gè)版本我都會(huì)有segmentation fault。(順便發(fā)現(xiàn)fa21和fa22的代碼幾乎一模一樣0.0)文末會(huì)給出我踩過有關(guān)環(huán)境的坑。

建議去把參考書目的《計(jì)算機(jī)組成與設(shè)計(jì)硬件/軟件接口》看完,有很多話題61C并沒有深入的討論。


最后考了下final test ,只有80分.....暴露出來的問題是

并行產(chǎn)生的cache不一致,memory問題,反而比串行要慢

C語言,關(guān)于String literal,關(guān)于#define的替換

倉儲(chǔ)級(jí)計(jì)算機(jī)居然用上水冷了

眼瞎(對著sb在reference card 上找sw)

失憶(忘了calling convention)

對于Datapath自定義指令沒有一步步實(shí)行導(dǎo)致認(rèn)為的理所當(dāng)然


筆記? ?真正的碎碎念,所以我忽略了? ? ?


lab與project的綜述


個(gè)人Project3的疑問

記得踢我


Project4的環(huán)境配置(建議寫fa21的

cunit是安裝的東西,不是指令的一部分

然后Makefile里面的python版本一定要修改成本地的!

記得要去掉python版本號(hào)后面的m!(不行再加回來)

如果沒有對應(yīng)的python3.6版本可能是因?yàn)槟銢]有安裝python3.6,你安裝了python不一定安裝了這個(gè)。

然后應(yīng)該就可以運(yùn)行 make test了。


一些比較碎的而且可能無所謂的資源,他人的經(jīng)驗(yàn)分享之類的。

cs61c 自學(xué)小結(jié) - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/346676981

CS61C 完結(jié)記錄 - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/476562056

“奮戰(zhàn)三星期,造臺(tái)計(jì)算機(jī)”__CS61C教材__《計(jì)算機(jī)組成與設(shè)計(jì)RISC-V版》__硬件和軟件__15-213教材__CSAPP《深入理解計(jì)算機(jī)系統(tǒng)》 - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/379380471


61C的QQ交流群

300202956

CS61C結(jié)課筆記,感想,以及資源的評(píng)論 (共 條)

分享到微博請遵守國家法律
平山县| 吴旗县| 福海县| 泽库县| 宁陕县| 齐齐哈尔市| 故城县| 牟定县| 闻喜县| 兴隆县| 宾阳县| 景宁| 新建县| 舒城县| 宜阳县| 界首市| 东丰县| 新郑市| 海盐县| 兴隆县| 滨州市| 玉溪市| 周宁县| 康平县| 江孜县| 湖州市| 大余县| 沙洋县| 增城市| 尤溪县| 萝北县| 衡阳市| 明溪县| 陕西省| 广河县| 涡阳县| 沈丘县| 龙游县| 宁南县| 雷波县| 永年县|