計算機組織不難,但東西很多
這個科目也是我比較不熟悉的,在此之前都是自學,所以會寫的更詳細一點
1.計算機組織在學什麼?
想像計算機的架構就像一個蛋糕有好多層,上半是軟體下半則是硬體,對我來說,軟硬體的兩端是電腦的核心(應用程式&半導體),而中間的每一層都是串接兩端的橋樑;那計算機組織就是要探討軟體與硬體交界處的那兩層,分別是(1)ISA(軟體最硬)和(2)Processor、Memory、Controller、Input/Output(硬體最軟)。
2.現今大多數的電腦建立在這個原則上:stored-program conception=Von Neuman architecture=內儲程式概念
(1)Instructions are represented as numbers 指令都用數字表示
(2)The program to be executed must first be placed in the memory. (just like numbers)指令執行前一定要先被放進記憶體
3.電腦的五個經典元件
(1)Control unit (2)Data path(做+-×÷的元件)(3)Memory(4)Input device(5)Output device,(1)(2)合起來就是CPU(Central component unit)
4.CISC&RISC(complex/reduced instruction set architecture)
早期的電腦都是CISC因為記憶體空間有限→沒辦法儲存過長的程式碼→所以指令要夠強夠多;然而如今都是RISC了,因為比較快
5.MIPS R2000(Micro processor without Interlocked Pipe Stages)
MIPS是一種指令集(Instruction set),指令集是一部電腦所擁有的指令集合
考試70%考MIPS 30%考RISC-V,聽說跟MIPS很像但還是要看
MIPS是RISC,它的CPU大小是32 bits(不同指令集的CPU大小可能不同)(32bits=4bytes,1byte一定=8bits)也就是說一個word大小是32 bits,而word是電腦一次可處理的資料量
6.ISA(Instruction set architecture)指令集架構
ISA是硬體與low level軟體間的橋樑,所以位置在中間。ISA就是包含硬體的指令集的架構,這之中又包含了(1)記憶體(2)暫存器(3)指令格式(4)定址模式
6-1.記憶體
(1)把記憶體想像成一個大櫃子,且每個抽屜都有編號,如果抽屜號碼有4個bits,如_ _ _ _,則總共最多可以有2^4=16個抽屜,而1個抽屜的大小為8bits=1bites,所以我們說這個記憶體的大小是64bites。
(2)一個word的大小是4bytes,所以word address為0,4,8….
(3)alignment(對齊)
所有word都要從4的倍數位址放起
(4)big/little endian
資料從最左(權重最大)/最右(權重最小)開始放
6-2.Register(暫存器)
(1)SPR/GPR(special/general purpose register)
SPR:Hi(餘數)、Lo(商數)、PC(程式計數器)
GPR:
Procedure call:$vo-$v1(return的值)、$a0-$a3(argument(引數)的值)、$ra(return address)
Variables:$s0-$s7(saved)、$t0-$t7 & $t8-$t9(temporary、$zero(0)
Memory management:$gp(global point)(指向靜態資料區域)、$sp(stack point)(指向stack的最新資料)、$fp(frame point)(指向procedure frame(也叫activation record)的第一個word),$fp是多餘的設計
(2)procedure call related registers
Add(1,10)//caller,1跟10是argument(引數)
x//return address會回到這行
x
Add(M,N)//callee
int M,N,Sum;//M跟N是Parameter(參數)
For(i=M to N)
x
x
Return(Sum)//Sum是return value
結論:畢竟是六小時的課,整理起來也特別費工,但整理完後有搞清楚很多之前似懂非懂的東西,蠻值得的,不過,不清楚地以及沒寫到的部分還有很多,像是memory management related registers,看看有沒有人可以補充或以後再說。