Program 은 결국 recipe에 불과하고, CPU는 data라고 하는 ingredient를 pragram에 따라 처리하는 것.
CPU
Register
1 bit정보를 저장할 수 있는 놈의 연속으로 이루어져 있음.
32 bit cpu에서 32 registers가 연속된 것을 사용함. 즉, register의 width가 32임. 그리고 architecture에 따라 다른 수의 register 를 가짐.
RISC-V에서는? 32 bits width.
PC
Speacial register form이며, execute할 instruction의 위치정보를 가지고 있음.
ALU
Arithmetic operation, Logical operation을 하는 놈.
CPU 밖에 있는 memory에서 register로 data를 가지고 온 뒤에, 그걸 연산하는 역할.
실행 순서
1. Fetch instruction from memory
2. Decode
3. Execute
4. Update PC
의 무한 반복임.
Architecture
Architecture는 Software도 아니고 Hardware도 아님. 두 사이에 있는 "Interface", " concepture structure and fuctional behavior"에 해당함.
ex) 자동차에서, steering wheel과 acceleration, break가, 음악에서 musical notatation 들이 architecture라고 볼 수 있음.
모든 Hardware(like cpu, hdd..)가 architecture를 가지고 있는데, 특별히 CPU의 architecture를 ISA라고 부르고,
각 ISA마다 Instruction set, Processor registers, Memory addressing modes, Data types and representations, Byte ordering등이 각각 정의되어 있는것.
Intel의 x86만 아직 CISC고, 나머지는 전부 RISC방식을 사용중.
RISC-V는 RISC방식의 ISA이고, UC Berkely에서 만들었으며, Open ISA이다.
Open 되어있지 않고, 한 회사에 종속된 ISA의 경우 회사가 끝남과 함께 그 기기는 수명이 다하는 것과 동일함. 따라서 지속가능한 Open ISA가 장점을 가진다.
하나의 종류가 있는게 아니라, address의 넓이에 따라서 32, 64, 128 bit도 있고, 기능에 따라 M, A, F, D, G, Q C도 있음.
가장 기본이 되는 RV32I의 경우 40개의 instruction만 가지고 있으며, Integer Multiply, Divide기능조차 없음! (Add, Substract만 가능)
ex) RV32IA: width가 32인 address 를 가졌으며, Integer의 사칙연산을 할 수 있음.
"For RV32, the x registers are 32 bits wide, and for RV64, they are 64 bits wide" 출처
Register는 32개가 있는데 (RV64등 그 이상에서는 register값이 바뀌는 지는 모르겠음)
Register의 첫번째(=x0)에는 Hard-Wired된 Zero값이 있는데, 이걸 왜 쓰나?
00000...0000 이라는 값 대신 memory[x0]값을 쓰는등 이점이 있음.
Instruction 의 종류
Question.
"RISC-V"의 모든 Instruction은 4B" 라고 했는데, 그렇다면 RV32, RV64도 Instruction의 length는 4B인건가?
RV32와 RV64의 차이점은 register의 length 차이?
Non-linear circult 분석
Diode의 v-i characteristc (In realistic)
I_d = I_s(e^(V_d/V_th)-1)
즉, 전류가 전압에 비해서 exponential하게 증가함.
근데 모델링해서 쉽게 나타내는 것 부터 차차 볼거임.
Non-linear circult의 크게 3가지 풀이 방법.
1. Anylytic Solutions
Diode의 모델링
1. 가장 단순한 모델 -> -| 꼴로 v=0일때를 기준으로 꺾이는 그래프.