TIL - 2021.09.30

Wanna be __·2021년 10월 4일
0

TIL

목록 보기
38/45
post-thumbnail

Today, I Learned

1. Computer Architecture

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를 가지고 온 뒤에, 그걸 연산하는 역할.

  • Control logic

실행 순서
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 의 종류

  1. Arithmetic or Logical Function
  2. Transfer data between memory and register (load <-> Store)
  3. Transfer Control (PC)

Question.
"RISC-V"의 모든 Instruction은 4B" 라고 했는데, 그렇다면 RV32, RV64도 Instruction의 length는 4B인건가?
RV32와 RV64의 차이점은 register의 length 차이?

2. EEC

Non-linear circult 분석

  • Non -Linear element(diode등)가 하나라도 있으면 non-linear circuit임.

Diode의 v-i characteristc (In realistic)
I_d = I_s(e^(V_d/V_th)-1)
즉, 전류가 전압에 비해서 exponential하게 증가함.
근데 모델링해서 쉽게 나타내는 것 부터 차차 볼거임.

Non-linear circult의 크게 3가지 풀이 방법.
1. Anylytic Solutions

  • Lon-linear element의 i-v characteristic이 비교적 쉬운 폼일 때, 전체 회로를 풀면서 i와 v를 직접 계산해내는 방식.
    간단한 회로에서, 그리고 i-v 관계가 쉬워야 할 수 있지 diode같이 exponential 꼴의 함수에서는 사실상 어렵다.
  1. Graphical Solutions
  • Analytic과 사실상 동일한 해법인데, 실제 계산으로 정확하게 값을 계산하는 것인 아니라, 그림을 그려서 보는방법.
    ~~할 R의 최대값을 구해라. 등의 문제를 풀 때 유용하게 사용될 수 있음.
  1. Piecewise linear Analysis
  • Diode의 on/off를 가정하고 풀어보는 방법임.
    켜져있다고 가정 -> Short Circuit -> 거기를 흐르는 전류가 있고, 전압이 0인지 확인.
    꺼져있다고 가정 -> Open Circuit -> 거기를 흐르는 전류가 없고, 전압이 -인지 확인.
  1. 일단 Nonlinear element를 제외한 다른 회로를 Thevenin, Norton 등가 회로를 통해 간소화 한다.
  2. 간소화 된 상황에서 non-linear element의 i-v characteristic을 계산한다.
  3. 다시 돌아와서 전체 회로를 계산한다. 끝

Diode의 모델링
1. 가장 단순한 모델 -> -| 꼴로 v=0일때를 기준으로 꺾이는 그래프.

  • 단순한데, 너무 단순하다. 실제는 turn-on voltage가 0.6~0.7V 선을 유지하고 있다.
  1. turn-on voltage를 가정한 모델. -> 1번 그래프를 우측으로 평행이동 한 그래프.
  • offset만 주었지 위에꺼랑 큰 차이는 없음.
  1. 작은 register를 추가함. -> 수직으로 올라가는 그래프가 아니라, 매우 가파른 기울기 (1/R)을 가짐.
profile
성장하는 개발자

0개의 댓글