MIPS의 기본

DevWoony·2021년 4월 9일
1

컴퓨터구조

목록 보기
4/7

컴퓨터구조 - DevWoony가 복습을 위해서 전공과목을 정리하는 내용이에요!

Instructions 란?

  • 기계에서 사용되는 언어이다.
  • high-level 언어보다 원시적이다.
  • 양식이 매우 제한적이다.

MIPS의 발전

우리가 알아볼 MIPS 라는 CPU는 RISC(Reduced Intructions Set Computer) 기반이다.
MIPS 디자인은 Performance를 최대화하고 Cost를 최소화하며 설계에 걸리는 시간을 최소화 하는 것을 설계의 목표로 삼았다.

  • MIPS에서 Load and Store의 words 4 byte단위로만 addressing된다.
  • MIPS에서 arithmetic은 registers 에서만 동작한다.

MIPS Arithmetic

MIPS의 arithmetic 명령어는

  • 다음과 같은 설계철학
    • "Simplicity favors regularity"="단순성은 규칙 성을 선호한다"
    • "Smaller is faster"="작을수록 빠르다"
  • 모든 instructions는 3개의 operands를 갖는다.
    • 2개는 sources, 1개는 destination이다.
  • Operands의 순서는 고정이다.
    • destination이 먼저 온다.
  • Operands들은 registers여야 하며, 32bit registers들만 제공된다.

Registers vs. Memory

  • Arithmetic instructions에 사용되는 operands 들은 항상 32 bit refisters로 제공되어야 한다.
  • Compiler는 registers들의 변수들과 관계있다.
  • 만약 프로그램에 많은 변수들이 있다면 어떻게 할까?
    • Compiler는 registers에서 자주 사용되는 변수들을 지속적으로 유지하기를 시도하고 나머지를 메모리에 배치시킨다.
    • loads and store을 사용하여 변수들을 registers와 memory사이를 이동시킨다.

Memory Organization

  • 거대한 1차원 배열 형태로 address와 함께 제공된다.
  • memory address는 배열에 접근하기 위한 index이다.
  • "Byte addressing"을 사용한다. 이는 index를 가르킬때 byte 단위의 memory 접근을 의미한다.
  • Bytes 단위도 좋지만 대부분 데이터들은 더 큰 "words"를 사용한다.
  • MIPS에서의 word는 32 bits 또는 4 bytes 이다.
  • 2^32 bytes의 byte address는 0 부터 2^32-1 까지다.
  • 2^30 word의 byte address는 0, 4, 8, ... 2^32-4 이다.

Byte Order

  • Big Endian (0x11223344)
  • Little Endian (0x11223344)

Load and Store

Let's Swap()

출처: [Computer Organization And Design: The Hardware/Software Interface]

profile
냉장고에 카페인이 가득한 회사에 가고싶다.

0개의 댓글