Posts

Showing posts from February, 2023

[計算機概論] 第五講、Data Manipulation (2)

Image
 [計算機概論] 第五講、Data Manipulation (2)  臺大科學教育發展中心CASE reference [計算機概論] 第五講、Data Manipulation (2)  臺大科學教育發展中心CASE 課後感想   簡記課程內容 `Communication with other device DMA Hand Shaking 2-way communication Coordinating activities Parallel/Serial Parallel 平行傳輸:SATA/LPT port 印表機 Serial 一個一個傳:USB Serial 漸漸成為主流 Transfer rate bps, Kbps, Mbps router 傳輸速率通常是 bits/per second Pipelining

[計算機概論] 第四講、Data Manipulation (1)

Image
reference [計算機概論] 第四講、Data Manipulation (1) 臺大科學教育發展中心CASE 課後感想 我們可以使用高階語言,是件幸福的事   簡記課程內容 Computer Architecture CPU Registers Memory Bus Motherboard Machine Instructions Data transfer 主記憶體與 CPU,皆通過 registers 暫存器 LOAD STORE 週邊裝置:滑鼠、Mass storage, 鍵盤 Arithmetic/Logic AND, OR, ADD, SUB, etc SHIFT, ROTATE Control JUMP, HALT CPU 現在分兩類 CISC x86, x86-64 intel 的 CPU RISC 嵌入是系統如手機 CPU 組成 機械指令 156C 組合語言 LOAD, 5, 6C 高階語言 c = a + b: a 的 pointer 在 6C Compile 編譯 把高階語言轉成機械指令 不完整,還有 Link 完整流程: C/C++ ---compile----> object (c out) 還缺 library (函式庫) 人家寫好可以執行的東西 object + library = exe (可執行檔) 這個過程叫 Link Program Execution CPU 執行指令的過程 Instruction register (IR): 執行指令 2 bytes program counter(PC): cell 記憶體位置 1 bytes Machine Cycle fetch:根據 PC 從 main memory 拿資料到 IR decode:根據執行指令,知道要幹嘛 execute:執行 clock 時脈: 1 秒鐘可以執行多少個 cycle (3 * 10^9)  Shift/Rotation Logic shift Arithmetic shift Rotation 會比 + - 運算快,因為電腦 2 進位,shift 通常是 * 2 或 / 2 Controller CPU 跟 MM 透過 bus 溝通 周邊系統存取也透過 bus CPU 再跟某裝置溝通,無法同時跟別人溝通 為了避免同時,因此...

[計算機概論] 第三講、Data Storage (3)

Image
reference [計算機概論] 第三講、Data Storage (3) 臺大科學教育發展中心CASE 課後感想 終於知道為什麼電腦指定值為 0.1 時,實際上會是 0.000000000000000000555111151 因為電腦在算數學的時候都只是「大概」,太好笑ㄌ 雖然他計算速度很快,但是值只是大概XD 因為電腦記憶體不夠,以二進位表示法儲存 10 進位的數字時,只能找「最接近」的數字,而非「精確」的數字。有趣! 知道 overflow 是什麼,truncation error 是什麼~ 接著是檔案傳輸。 電腦在傳輸檔案的時候,會需要壓縮,課程講了常用到的 rar, zip, mp3 等壓縮檔壓縮的方式。 壓縮後的傳輸,是怎麼 Encoding 的,把文字或音訊變成 01010 的信號。 其中有提到很多方法,不過我就是看看而已XD 簡記課程內容 Data Storage 延續上一講  Data Storage (2) Normalized form IEEE normalized Double, Float 記憶數字的大小固定,以 python 來說 float: 4 bytes 如果 a = 0.1 當你強破電腦印出小數以下 50 位時,他會顯示 format ( 0.1 , ".50f" ) '0.10000000000000000555111512312578270211815834045410' 簡單來說就是記憶體位置不夠 當用 4 bytes 存取數字時 = 8 * 4 = 32 bits 那麼最多能存取的位數就是 32 個 bits,所以在存的時候,對電腦來說,0.1 是個大概。 用 2 進位表示法,電腦沒辦法精準給到 0.1,所以會有後面的數字。 因為 1/10 在 2 進位,怎麼換都換不完 除非你叫他記 1/2 那他會很開心 :)) 資料傳輸 資料量很大,如何有效率?資料壓縮 傳輸過程有錯,怎麼辦? Data compression .zip, .rar, .mp3, ,mpg Lossy Relative/difference 影像,連續圖片,但一直紀錄圖片很浪費,因此只紀錄有變化的東西,像是上課教室的黑板是固定的,兩張圖之間就不用一直記黑板 Lossless 非失真 Run-length encod...

[計算機概論] 第二講、Data Storage (2)

Image
 reference [計算機概論] 第一講、Data Storage (2) 臺大科學教育發展中心CASE 課後感想 簡記課程內容 Data Storage 延續上一講  第一講 - Data Storage  最後的 Topic Representation Representation with 0 and 1 聲音 每隔一段時間,紀錄震幅位置 參數設定 Sampling rate:每隔多久紀錄一次(赫 HZ) Bit resolution: 振幅要用 _ bits 表達,ex: 用 1 bytes 只能分 256 種不同高度 Bit rate = sample rate * bit resolution: 聲音檔案每秒鐘有多少 bit 的儲存量 bps: bit per second 數字越高,聲音品質越接近原音,檔案越大 每秒鐘有 200 個數字要記,每個數字 8 個 bits,200 * 8 = 1600 bits/每秒鐘 要寫入 = 1600 bps 數字(延伸) + - * / Binary System Revisited Addition Subtraction Negative Numbers Two's Complement 3 bits 表達一個數字時 _ _ _ 會有七個符號 都是正數: 0 ~ 7  有負數: -4 ~ 3 這樣的設計有一個好處,加法會直接成立: 2 - 1 = 2 + (-1) = 010 + 111 = 1001(第一位捨棄,因為只能記住 3 個 bits) = 001 = 1 Two's Complement Encoding 3 bits -2 表示: 2^3 = 8 8 - 2 = 6 6 的 binary = 110 4 bits -2 表示: 2^4 = 16 16 - 2 = 14 14 的 binary = 2^3 + 2^2 + 2^1 = 1110 Excess 表示法 平移 加法 如果正數是 2^16 個 = 2^n 加入負數就是除以 2 = 2^15 = 2^(n - 1) Overflow 記憶體不夠,導致兩個正的相加變成負的 Bin: 2 + 3 = 010 + 011 = 101 = -3 = 5 (mod 8) -2 + -3 = 101 + 110...