Mips design principle

David8·2022년 9월 15일
0

컴퓨터구조

목록 보기
10/18

목표

  1. 성능 최대, 비용 최소, 디자인 시간(컴파일러와 하드웨어) 줄임 --> 하드웨어를 간소화!

mips 레지스터

  1. 32X32 bits 일반 레지스터(32bit짜리 레지스터 32개 있음)
  2. 32X32 bits floating point 레지스터
    1. double의 경우 16X64bits로 레지스터 이용 가능
  3. HI(32bits), LO(32bits)
    1. 곱셈, 나눗셈 결과값 저장
      1. 나눗셈: HI-나머지, LO-몫 저장
      2. 곱셈: HI-상단 32bit(msb), LO-하단 32bit(lsb)
  4. pc
  5. 레지스터 convention
    1. $a0~a3: arguments
    2. $v0~v1: return value
    3. $ra($31): return address(함수 종료 후 돌아오는 장소 저장)

메모리 구조

  1. 기본은 byte 단위 주소
    1. 필요에 따라 word(4bytes) 단위로 사용 가능

Mips design principle

  1. regularity

    1. 특정한 규칙 사용 고수 --> istruction format 단순화!
      1. 예시
        1. 대부분 3개 operand 사용
        2. Mips 산술, 논리 연산의 operand는 레지스터 사용
  2. smaller

    1. 32 레시스터만을 제공
    2. 많은 레지스터 --> clock cycle time 증가
  3. make the common case fast

    1. 예시
      1. 산술 연산 중 상수 사용 빈번
        1. sol1: 레지스터에 상수값 넣어줌
        2. sol2: 상수 산술 연산 만듬 --> ADDI
          1. 피연산자 상수 허용한 새로운 명령 --> 메모리부터 load 하는 것 보다 빠름
  4. good design demands good compromise

    1. 기본적으로 r포맷 사용 --> 상수를 넣기 위해 i-type 사용
      1. i-format에서는 rd가 없어지고 rt가 destination 역할!
    2. 예시
      1. addi 명령어에서 상수를 5bits로 모두 나타내기 어려움 --> addi의 포맷을 바꾸어 상수를 16bit로 나타냄

0개의 댓글