컴퓨터아키텍처
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 시뮬레이터 사용
- 홈페이지에서 다운로드
http://spimsimulator.sourceforge.net/
- 홈페이지에서 다운로드
- 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를 여러 개 사용과 같은 방식으로는
나눗셈 계산의 병렬화가 잘 되지 않는다
- n번째 뺄셈을 하려면 n-1번째까지 빼고 남은
과제 설명 및 반복문 예제
-
수업시간에 MIPS Assembly 예제 코드를 직접 실행해 보며 설명함
컴퓨터아키텍처
By 안기영 (Ahn, Ki Yung)
컴퓨터아키텍처
2016-03-24
- 1,837