CS/3-1 컴구

[컴퓨터구조] #2. MIPS 명령어(2)

이지이즤 2022. 3. 11. 11:18

 

Lec 2. MIPS Instructions_2 (Language of the Computer)


- MIPS Arithmetic Instructions
 : add, sub, addi, addiu, mult, div

- Levels of Program Code
  High-level language : productivity, protability(이식성 : 타깃 하드웨어의 instruction set을 신경 쓸 필요 x )
  Assembly language : textual, symbolic
  Machine code (object code or binary) : binary bits of instructions and data

- High-Level Code is Portable
 : 어떤 CPU에서 어떻게 돌아갈지 해당 CPU의 instruction set을 이해할 필요 x.
   어떤 CPU가 되었건 상관없이 high-level code는 다 알아들음(이식성 있음).
   -> 컴파일러가 타깃 CPU에 맞게 컴파일해줌

  고급언어(one-to-many) -> 컴파일러 -> 어셈블리어(one-to-one) -> 어셈블러 -> 기계어

 

- Register File in Verilog
  Verilog : 하드웨어를 module 단위로 기술하는 언어. 

 

assign

  module 키워드로 시작을 알리고 기술하고 싶은 모듈의 이름(regfile)을 써줌.  
  이후 module을 둘러싸는 입출력port에 대한 기술.

  reg[31:0] 는 각 레지스터가 32bit인 것을, rf[31:0] 는 레지스터 32개를 나타냄.

동작-read/write

  클럭이 positive edge(0->1)일 때
  write enable(we)이 1이면 rf[wa]에 wd값을 집어넣음.
 
  클럭(clk) : 순차회로에서 동기화를 맞추기 위한 신호. 0과 1을 반복하는 파형임.

  ra1==0이면 (굳이 R0을 읽지 않고) rd1은 0을 배출함.
  R0은 전부 0으로 차있는 read only register임. 







- MIPS Instruction examples in 2 forms
  : Human-readable form(sub $7, $7, $2), Machine-readable form(2진수)

- MIPS Instruction Fields

  rs (source1), rt (source2), rd (destination) => 각각 5-bits
  opfunct (add, sub, .. 등을 나타냄) => 각각 6-bits


- add
  : add rd, rs, rt

 

Simplified Version of CPU Internal

  ALU (Arithmetic and Logical Unit) : 덧셈, 뺄셈, 로직 연산 등이 들어있는 뭉치

- sub
  : sub rd, rs, rt