[計算機概論] 第一講、Data Storage (1)

reference

[計算機概論] 第一講、Data Storage (1)
臺大科學教育發展中心CASE

課後感想

前陣子在 Gigabyte 做轉職後第一份軟體工程師的工作,因為部門負責的臉部辨識及人型偵測應用程式,除了軟體外,也很吃硬體效能,常常聽到同事說:

「記憶體位置
    記憶體多少
    用了多少、
    剩多少、
    看一下 RAM、
    你電腦有兩個 RAM、
    這塊板子要裝 SATA、
    看一下 rpm...」

想當然耳,我根本都聽不懂,Google 這些單一名詞之後,努力把他們的定義背下來,大概知道他們可以幹嘛,在幹嘛,然後過一陣子就忘記了,這堂課在 Main Memory, Mass Memory 的部分很幫我解惑。
還多知道了公司的名字 Gigabyte 原來是 2 ^ 30 ,有趣XD
另外檔案系統中,資料是分散存取的,而飛連續,所以有 pointer 有 value,資料間有 link,像是 5 Mb 的檔案 1 Mb 存在 A、2 Mb 存在 B、 2 Mb 存在 C。讓我想起寫程式時用到的資料結構: linked list,程式碼裡的 pointer & value,真的是息息相關!
然而資料不連續地儲存,難免儲存空間會產生 fragmentation problem,所以需要格式化,但是記憶體存取的次數是固定的,超過一定次數後就會壞掉😱,以後不敢沒事就格式化。
聽完這門課後,終於覺得從單點知識變成線了。
. . . . . -> 雖然還是斷斷續的線 - - - ---- -- - ---
期待他們繼續慢慢從點,變線,最後變成一幅畫~

簡記課程內容

Data Storage

二進制

好處:
  • Simple 
  • Logical
  • unambiguous: 0, 1, only
這個世界是一個 Binary world,由 0, 1 組成。
二進制會讓表示太長
例如:要表示記憶體位置 0010111010110101 (這裡才 16 bits,現在很多都 64 bits 更長)
太冗長,所以有 16 進制

十六進制 Hexadecimal (Hex)

上面的位置就可以透過 16 進制表,表示成 2EB5,簡單多了

0010 | 1110 | 1011 | 0101
    2       E        B         5

Main Memory 主記憶體

bit 太小,通常用 cells or 1 bytes
8 bits = 1 bytes
_ _ _ _ _ _ _ _


Flip-Flop

存取資料
set 0 set 1

random accessible

現在儲存資料都是 random
循序的有例如錄音帶,錄影帶,不能跳過,要快轉

Memory Techniques

RAM (Random Access Memory)

SRAM (Static, flip-flop)
DRAM (Dynamic)
SDRAM (Synchronous DRAM)
DDR (Double Date Rate)
Dual channel(差兩個 RAM,資料寫入 2 個 bytes 時,可以各寫入一個,速度變兩倍) 

Capacity

Kilobyte: 2 ^ 10 bytes
Megabyte: 2 ^ 20 bytes
Gigabyte: 2 ^ 30 bytes
Terabyte: 2 ^ 40 bytes
現在很多硬碟出的 2T 就是 Tera

Mass Storage 硬碟

相對主記憶體,存取速度非常慢,但更穩定(不接電)

Magnetic Disk Storage System

  • Access time = seek time + rotation delay
找資料的時間
seek time 是找到資料的讀寫頭,找到後資料可能不在頭,在後面,所以還要繼續轉到後面(rotation delay)
rpm 就跟 rotation delay 有關,5400 轉, 7200 轉... 越快,讀得越快
找到資料後會進入 buffer,buffer 越大也越快,資料在 buffer 整理好後才會傳給電腦
  • Transfer rate: SATA 硬碟傳輸的一種標準

Representation with 0 and 1

用 0, 1 表達世界上一切的東西 => 編碼

文字

ASCII: 7 (or 8) bits(2^7 可以表達 128 個符號,後來不夠用,才有後面的衍生)
Unicode: 16 bits
ISO standard: 32 bits

數字

十進制  901
  9        0       1     representation
10^2 10^1 10^0   position's quantity

二進制 1011
  1     0    1     1      representation
2^3 2^2 2^1 2^0    position's quantity

  • 把 1011 換成 10 進制:
2^3 + 2^1 + 2^0 = 8 + 2 + 1 = 11

  • 把 11 變成 2 進制:一直除以 2,直到商為 0 
11 / 2 = 5...1
第一位放 1: 1

5 / 2 = 2... 1
第二位放 1: 11

2 / 2 = 1... 0 
第三位放 0: 011

1 / 2 = 0... 1
第四位放 1: 1011

圖像

  • Bit Map techniques
    • Pixel: Picture element 點位
    • colors: RGB, HSV
    • LCD, Scanner
  • Vector techniques
    • Scalabel
    • True Type

Comments

Popular posts from this blog

《 Imgproxy 使用分析一:圖片下載速度優化分析:Akamai CDN vs Imgproxy 效能比較》

《 Akamai + S3 與 CloudFront + Imgproxy + S3 使用分析二:壓縮圖片設計流程:檔案大小 vs 載入時間的權衡》

程式語言初學者 Docker 入門第二章 —— 安裝與驗證 (Mac)