CS/3-1 컴구

[컴퓨터구조] #0~1. 소개, MIPS 명령어(1)

이지이즤 2022. 3. 5. 15:02

Lec 0. Course_Intro


- Abstraction 추상화
  : Hardware -> Instruction Set -> Operationg System -> Programming

- Computer System
  : CPU, Main MemoryDisk, Chip Set

- Goal 수업 목표
  : Understand How Your Computer Works Really!
    MIPS라는 CPU에 대해 배울 예정. 

- programability
  : 한가지 하드웨어로 여러 가지 애플리케이션 실행 가능한 CPU

 

 

Lec 1. MIPS Instructions_1 (Language of the Computer)


- Instructions 명령어

- Instruction Set Architecture (ISA) 
  : collection of instructions
   -> CISC vs RISC

- CISC
  : 복잡, 명령어 길이 가변. ex) x86 (Intel, AMD)
RISC
  : 단순, 명령어 길이 고정. ex) MIPS, ARM, SPARC(어셈)

MIPS 
  : 우리는 32-bit version 공부할 예정.
  cf) MIPS기반의 CPU 사용하는 곳? Playstation2, Cisco routers

- MIPS (RISC) Design Principles (암기x)
  : 규칙적->단순화, 작게->빠르게, 빈번->빠르게, 적절히 타협

- Stored Program Concept ★
  : 명령어와 데이터를 이진수로 메모리에 저장, 
    Bus를 통해 하나씩 CPU로 이동하여 실행.







MIPS 명령어
  : Data processing (Arithmetic산술/Logical논리 연산),
    Memory access (Load읽기/Store쓰기),
    Branch

- Arithmetic Operations 산술 연산
  : 덧셈, 뺄셈.
    항상!! three operands 피연산자 3개.
            ex) add a, b, c   # a gets b + c

Registers 레지스터
  : 피연산자를 레지스터에서 가져옴.
    MIPS는 32개의 32bit 레지스터를 가짐. (32bit = 1word)

- Simplified Version of CPU Internal 덧셈 과정
  : binary format으로 메인메모리에 들어있는 명령어 add $3, $1, $5 (32bits)를
    Bus를 통해 CPU(MIPS)로 가져옴, 
    해석, 
    two sources and one destination 레지스터에 값 저장, 
    R1과 R5 값을 레지스터에서 읽어와서 덧셈기로 계산 후 
    R3 레지스터에 결과 저장.

Memory Hierarchy 계층적
  : 상위 레벨일수록 빠름, 하위 레벨일수록 용량 큼.
   ->레지스터(CPU내부) : 빠름, 용량 작음, 비쌈.
   ->메인메모리(DRAM) : 느림, 용량 큼.
   ->Disk(HDD) : 더 느림, 용량 더 큼, 저렴.







- Overview of MIPS Operation
 : 산술 명령어의 피연산자는 레지스터로부터 꺼내온다! f = g+ h;
  예외) 상수는 명령어 안에 표기함(immediate field) f = g + 3;

 : 레지스터는 프로그래머가 직접 지정/조작 가능함.

- MIPS Register File
 : 32개의 32bits 레지스터를 모아놓은 것.
  flip-flops or SRAM 으로 만들 수 있음.
  source를 위한 2개의 read port와 destination을 위한 1개의 write port가 있음.
  write port에는 오동작 방지용 write control 이 있음.

- MIPS Assembler Register Names
 : 32개의 레지스터가 각각 이름을 가짐.
  $t0 ~ $t9 : temporary values. 계산 과정에서 발생하는 임시 결과 저장공간
  $s0 ~ $s7 : saved values. 프로그래머가 기억하기 위해 만든 저장공간