HotMercury

@NeedSleep

Joined on May 22, 2022

  • contributed by < HotMercury > :::danger 注意作業書寫規範,包含標題。 ::: 作業改進 第四週測驗三 預期目標 : 充分理解 linux 內部的紅黑樹,以及測試效能的方式 第二週測驗一
     Like  Bookmark
  • contributed by < HotMercury > :::danger 注意細節!要更新 HackMD 筆記的標題。 ::: 閱讀 linux 核心模組教材 Linux 核心模組運作原理 ubuntu linux 預設開啟 EFI_SECURE_BOOT_SIG_ENFORCE 當使用第三方 kernel module 時,所以有幾種方法可以解決。
     Like 1 Bookmark
  • contributed by <HotMercury> 第 3 週測驗題 isqrt1: bitwise 操作 在執行第一版 i_sqrt 時嘗試使用 gcc 編譯,有以下錯誤,但如果把 n 變成常數,就可以正常執行,error In using math function in gcc? 可以知道如果使用的是 const 編譯器會最佳化成對應的值,如果要正確執行要加上 -lm link math library. - int msb = (int)log2(n); + int msb = (int)log2(16); $ gcc sqr_t.c /usr/bin/ld: /tmp/ccmYLpqw.o: in function i_sqrt:
     Like  Bookmark
  • contributed by < HotMercury > 開發環境 $ gcc --version gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 39 bits physical, 48 bits virtual Byte Order: Little Endian
     Like  Bookmark
  • contributed by < HotMercury > 作業要求 第一次測驗 Testing 1 : non-recursive link list quick sort 參考 Optimized QuickSort — C Implementation (Non-Recursive) 來實作非遞迴的 quick sort, 首先為了比較 recursive and non-recursive 的差異,我實作了一個 recursive 版本的 quick sort, 通過實驗數據來比對兩者的差異。 分析 Optimized QuickSort 如何做到 non-recursive 的作法,主要是使用到了 stack 的概念,多了兩個 array 來存放這次需要 begin and end 範圍,以下程式碼為主要的分割概念。 arr[L]=piv; beg[i+1]=L+1; end[i+1]=end[i]; end[i++]=L; 我們以 10 個 node 來做例子,假設第一次的 pivot 實際位於第七個 node, 最一開始的時候我們是檢查 0 ~ 10, 當第一個 pivot 結束後,應該要將他們拆開成 0 ~ 7 and 8 ~ 10, 所以目前的 array 就會變成以下的樣子,直到變成 i 變成 0 後跳出迴圈。
     Like  Bookmark
  • Contributed by: < HotMercury (p76111741) >, < freshLiver (P76114016) >, < tinhanho (P76121364) > Summary <HotMercury (p76111741)> <freshLiver (P76114016)>Fix Issue #258 (Immediate Bit Range Checking) Add testing unit for checking bit range <tinhanho (P76121364)> Add cache replacement policy: FIFO
     Like  Bookmark
  • contributed by < Hotmercury > Setup Learning jupyter docker install docker run -it --rm -p 8888:8888 ucbbar/chisel-bootcamp git clone git clone https://github.com/freechipsproject/chisel-bootcamp.git
     Like  Bookmark
  • contributed by < Hotmercury > we can find instruction reference code on github Find the position 0 the most close to LSB, and then make the position left to this postion become 0. we can use this to compute the carry flag. :::success example mask = 1010 0111 1010 0111 -> 0000 0111
     Like  Bookmark