Category: Notes
-
Pipeline Speak, Part 2: The Second Part of the Sandy Bridge Pipeline 中文翻譯
原文:https://software.intel.com/en-us/blogs/2011/12/01/pipeline-speak-part-2-the-second-part-of-the-sandy-bridge-pipeline 管線後端 The Back-End 管線的後端負責執行從前端產生的微指令。為了要讓後端的資源能夠有效的被利用,後端使用自己的 bookkeeping system 來追蹤每一個微指令,其所需資料 [data requires] 以及執行狀態 [exectes status]。然後它將以任何順序來執行微指令 ─ 根據微指令的所需資料什麼時候全部準備完成以及是否有可用的執行資源。微指令的 bookkeeping 以及排程可以說非常的複雜,而且需要許多專用的隊列結構。當有些隊列結構已經滿了,也就是後端不能在從前端接收新的微指令 ─ 在 Sandy Bridge 最佳化方法中,我們稱這種情況做 ” back-end bound pipeline slots”。 後端持續在追蹤的執行資源 [ execution resources] 稱做執行單元 [execution units]。每個 microarchitecture 可能會有稍微不同的 Layout 以及不同的可用執行單元。這些執行單元是在處理上處理特定功能的邏輯組件,像是加法、除法、邏輯位移、從記憶體讀取等。當微指令使用完執行單元以及所有資料都已經讀取或儲存完畢,我們稱他們已經 “退休” [retired] ─ 這表示微指令已經完成在管線該做的工作。這些微指令絕對不會再被顯式的被轉換回指令 [instructions]。而一個指令被 “退休” 則代表所有的其產生的微指令都已經 “退休”,不過這只是個抽象化的表達方式來說明管線後端是如何處理微指令而已。 了解一點處理器的微架構,包括管線的基礎知識,在效能分析上可以說非常的有幫助。特別是在 Intel Sandy Birdge 架構,因為,第一次在 x86 處理器上,performance events 可以從一個內聚的方法…
-
Pipeline Speak: Learning More About Intel Microarchitechture Codename Sandy Bridge 中文翻譯
中文翻譯前言 為了理解 perf 的輸出意義[1],必須要了解 CPU Microarchitecture。如果你用 perf stat -d gzip file1 這個方式來輸出,你會發現到輸出中有加粗這個部份: ➜ /tmp perf stat -d gzip files Performance counter stats for ‘gzip files’: 6990.942695 task-clock:u (msec) # 0.996 CPUs utilized 0 context-switches:u # 0.000 K/sec 0 cpu-migrations:u # 0.000 K/sec 112 page-faults:u # 0.016 K/sec 22,653,310,816 cycles:u # 3.240 GHz (33.32%) 9,561,514,420 stalled-cycles-frontend:u #…
-
高應大跨校選成大的課的教學
因為成大沒有在南區區域教學資源中心裏面,所以如果你就讀高應大,並不能夠透過這個管道來選課。也就代表你選成大的課,需要繳交學分費。大學部課程每學分1300、碩博士課程每學分1600。像我這次選了6學分碩博士課程就要9600…… 好的,看完需要繳費,還想要選成大的課的你肯定對課程很有愛。 1. 工欲善其事,必先利其器。 以下幾個網址與檔案,是在選課過程中會需要用的: 國立成功大學課程查詢系統:http://course-query.acad.ncku.edu.tw/qry/ 國立成功大學校際選課系統:http://140.116.165.53/~ins/ 國立高雄應用科技大學本校學生至外校修課申請書:http://academic.kuas.edu.tw/ezfiles/1/1001/img/371/tc1.odt 比較要注意的是,第3點本校學生至外校修課申請書可能會改版。如果改版的話可以到綜合教務組的日間部【加退課、註冊、修讀輔系、修讀雙主修】公告中下載。 2. 開始找課 你必須先到國立成功大學課程查詢系統中,查詢你想要修的課的課程代碼。 例如說我想要修資訊所黃敬群老師的課,就點電機資訊學院的 (P7) 資訊所 CSIE,然後找的想要修的課,記下前三欄的資訊,晚點會用到: 系所 名稱 系號 序號 資訊所 CSIE P7 107 3. 上成大選課系統 3.1 註冊帳號 如果你是第一次到這個系統,點選 申請帳號 申請新的帳號,如果已經有帳號的就登入。 註冊帳號的時候,學校代碼是083 (如果你是高應大日間部的話) 學校名稱 083 國立高雄應用科技大學(原市立高雄工商專校、工專、科技學院) 134 國立高雄應用科技大學附設專科補習學校(原高雄工專、工商專、科學技術學院) 658 國立高雄應用科技大學附設進修學院 3.2 選課 登入之後到 (2) 報名上課科目中,在上方的新增選課暫存中,填入剛剛記下的代號 (系所代號:P7, 科目序號:107),接著點新增選課暫存。 如果你輸入的代號正確,下面的選課暫存區就會出現剛剛輸入的課程。把所有你想選的課都新增完之後,選取你要選的課左邊的方框,按下產生申請單,就會跑出一張「國立成功大學 OOO 學年度第 O 學期他校學生選讀本校課程申請表」,把這張表印下來,我們晚點會用到。 如果這時候沒有印下這張表,之後可以到 (3) 申請單補印 把剛剛的申請單印出來。 4. 最麻煩的地方來了…
-
delete git branch local and remote (刪除本地跟遠端 git branch)
剛剛不小心推錯 commit 到新的 branch 上面,因為只有這個 commit,就想說直接把 branch 給刪掉就好。 git branch -D wip/foobar 但是到 gitlab 上看 branch 還是存在於 remote 端。 回到 cli 下 git push 卻告訴我 Already up to date…… 上網看了一下,要把 branch 推回 remote 端才行 git push origin wip/foobar 搞定!
-
罗辑思维 184 怎么样成为一个高手
有效的學習要刻意的去學習,不是以賽代練,是要能去操作小片斷的學習。針對性重複練習。持續做你不會做的事情。 看了文章要記得寫筆記或心得,跟文章做一次互動。 「人類不僅創造了工具,工具反過來也塑造人類」 —- 拿來程式上來看,是不是就是一直去看 code 呢?如果把 code 當詩詞來看,會讓自己的工具庫變大嗎? 這集跟學徒模式這本書裏面說的很相似。脫離舒適圈,進入深水區,練習練習再練習,找個老師…etc
-
2016年暑期系統軟體課程參後感想
在這個活動報名結束前三天,看到 FB 河道上出現了 jserv 的貼文,是有關系統軟體的課程,為期三天在台大資工系館。當時候看了一下日期是星期日、一、二,本來想說現在正在實習,課程的時間跟實習有衝突要放棄掉,但想到機會難得,剛好在我在的地方而且報名還沒結束,權衡一下後就決定要來報名這個課程了。 打開報名網頁,才發現是一場災難的開始。在校生報名是有條件的!先決條件中最頭痛的就是「事先閱讀指定先修教材的心得和疑惑」。給予的指定先修教材共12份,大半都超過100頁,開始讀起來可以說是場悲劇,不過越讀下去是越讀越多停不下來,因為,「幹,都看不懂啊!」 不過不懂這些東西這倒還好,課程中 jserv 一直提到類似的概念「不懂沒關係,這代表你還有很多進步的空間」、「你懂的話幹嘛還要我教咧」、「我當初也是很挫折啦,看不懂啊」,這些話語可以說是讓我撐過三天課程的支柱啊。課程的資料可以參考: http://hackfoldr.org/sysprog-ntu2016/ 上完課了解到自己不論是 c programming 的掌握很不足,還有基本知識的淺薄,距離可用還有很長的一段距離。