컴퓨터아키텍처

Computer Architecture

2016-03-24


3장 앞부분 (floating point 전까지)
이진수 정수의 사칙연산
 

과제 제출 안내

  • Google Drive 공유 폴더를 통해 (종이 X, 메일 X)
  • [새로 만들기] 버튼을 눌러
    CA16<이름><학번> 폴더를 만들고 (예: CA16김연아123456)
    만들어진 폴더를 우클릭하여 나오는 드롭메뉴에서
    폴더 공유설정으로 kyagrd@gmail.com 에게 공유 (편집권한)
  • Google 메일 계정만 있으면 Google Drive 서비스 이용 가능 
  • Google 메일 계정은 무료로 만들 수 있으며
    참고로 안드로이드 스마트폰 사용자는 누구나 이미 보유
  • 과제1 파일명 hw1.s 로 공유폴더 안에 저장해서 제출

MIPS 어셈블리 실습

  • SPIM 시뮬레이터 사용
  • MIPS 어셈블리 syntax coloring 지원하는텍스트 에디터
    • Sublime Text
    • Notepad++
    • Vim
    • Emacs

2의 보수 표현에서 덧셈과 뺄셈

  • 음수를 포함한 덧셈과 뺄셈을 sign비트에 대한 특별한 예외처리 필요 없이 unsigned 덧셈과 똑같은 이진수 덧셈으로 계산 가능
    (2의 보수 표현의 대표적 장점 중 하나)
     
  • m, n 이 음이 아닌 수일 때
    • m + n        ==> 쉽다. 그냥 상식적으로 아는 이진수 덧셈.
    • m - n         ==> m + (-n) 으로 계산. 교과서 예제 7 - 6 의 경우
    • (-m) + (-n) ==> (-7) + (-6) 을 수업시간에 같이 해보자
       
  • 오버플로, 언더플로 판별 조건 p. 168의  Figure 3.2 참조

곱셈

  • 종이에 손으로 하는 것과 기본 원리는 같다
  • 두 1 word 정수를 곱한 결과를 보통 2 word에 저장
    (MIPS 에서는 hi, lo 레지스터가 이에 해당)
    • mult $t1, $t2  # t1xt2 결과 hi,lo에 저장
  • 4비트 이진수 1111 x 1111 을 예제로 수업시간에 해보기
    (p. 174의 Figure 3.5 방식으로)
  • 여러 개의 adder를 사용해 더 빠른 곱셈 가능
    (p. 176의 Figure 3.7)

나눗셈

  • 종이에 손으로 하는 것과 기본 원리는 같다
    (divisor에서 계속 dividend를 빼나가는 방식)
    • div $t1, $t2 # t1을 t2로 나눈 몫을 lo에
                   # 나머지를 hi에
  • 나눗셈에서 반복되는 뺄셈은
    곱셈에서 반복되는 덧셈과 달리 방향성이 있다.
    • n번째 뺄셈을 하려면 n-1번째까지 빼고 남은
      중간값을 알아야 함
    • 그래서 adder를 여러 개 사용과 같은 방식으로는
      나눗셈 계산의 병렬화가 잘 되지 않는다

과제 설명 및 반복문 예제

  • 수업시간에 MIPS Assembly 예제 코드를 직접 실행해 보며 설명함

컴퓨터아키텍처

By 안기영 (Ahn, Ki Yung)

컴퓨터아키텍처

2016-03-24

  • 1,763