컴퓨터 구조/Ch3. 컴퓨터 연산

    오류 및 함정

    오류 및 함정

    오류와 함정 (여기서 부르는 함정은 흔히들 하는 실수이고, 오류는 많은 사람들이 공통적으로 잘못 알고 있는 부분이다.) 오류 : 한 비트 왼쪽 자리이동 명령어가 2를 곱해준 것과 같은 결과를 보이듯이 오른쪽 자리이동 명령어는 2로 나누어 준 것과 같은 결과를 나타낸다. 해당 오류는 부호 없는 정수에서는 찾을 수 없다. 문제는 부호있는 정수를 사용하는 경우이다. 예를 들어, -5를 4로 나눈다고 생각하자. 1111 1111 1111 1111 1111 1111 1111 1011 (-5의 2의 보수 표현법) 이러한 오류에 따르면 2비트 오른쪽으로 자리이동한 것은 4로 나눈 것과 샅아야 한다. 0011 1111 1111 1111 1111 1111 1111 1110 이 수는 -1이 아닌 양수의 굉장히 큰 수가 되..

    7. 부동소수점 덧셈과 곱셈

    7. 부동소수점 덧셈과 곱셈

    Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 부동소수점 덧셈 부동소수점으로 표현된 수들의 덧셈은 어떻게 진행되는지 알아보자. 1. F1과 F2의 hidden bit을 복구시킨다. ex) F1이 011000...000이라면 원래 수는 1.011이다. (hidden bit = 1) 2. E1과 E2의 자릿수를 맞춰준다. * 자릿수를 맞추는 방법 (1) E1과 E2 중에 큰 것을 고른다. E1 > E2라고 가정하자. (2) E1 - E2 만큼 F2를 right shift(나누기 2) 해준다. (3..

    6. 부동 소수점 반올림과 근사

    6. 부동 소수점 반올림과 근사

    Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) IEEE 754에는 4가지 자리맞춤 모드(rounding modes)가 있다. Always round up (항상 자리올림) (+∞ 방향) Always round down (항상 자리내림) (-∞ 방향) Truncate (잘라내기) Round to nearest even (가장 가까운 짝수로의 자리맞춤) (반올림) 이러한 자리맞춤 모드들이 존재하는 이유는 아래와 그림과 같이 F field의 비트 수가 제한되어 있기 때문이다. 소수자리 숫자의 개수가..

    5. 부동소수점

    5. 부동소수점

    Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 프로그래밍 언어는 부호있는 정수와 부호없는 정수뿐만 아니라 소수 부분을 갖는 수, 실수(reals)도 표현할 수 있어야 하고, 엄청나게 큰 값도 표현할 수 있어야 한다. 이 수들은 32비트 부호있는 정수로는 표현할 수 없다. 과학적 표기법과 정규화된 수, 부동소수점 우선 과학적 표기법과 정규화된 수에 대하여 알아보자. 과학적 표기법(scientific notation)은 소수점의 왼쪽에는 한 자리 수만이 나타나게 하는 표기법이다. 0.0000000..

    4. 나눗셈

    4. 나눗셈

    Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 나눗셈 나눗셈은 곱셈보다 사용 빈도는 낮지만 훨씬 까다롭다. 0으로 나누기와 같이 수학적으로 유효하지 않은 연산을 요구하기도 한다. 먼저 0과 1로만 이루어진 십진수의 나눗셈, 1001010 ÷ 1000을 보자. 나누어지는 수는 피제수(dividend), 피제수를 나누는 수는 제수(devisor)로 부르고, 몫(quotient)이라 불리는 결과와 나머지(remainder)라고 불리는 두 번째 결과가 있다. 피제수 = 몫 × 제수 + 나머지 보통 초..

    3. 곱셈

    3. 곱셈

    Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 곱셈 먼저 곱셈 연산의 순서와 피연산자의 명칭을 확실히 해야한다. 0과 1로만 구성된 십진수의 곱셈, 1000×1001을 보자. 첫 번째 피연산자는 피승수(multiplicand), 두 번째 피연산자는 승수(multiplier)라고 부른다. 최종 결과는 곱(product)이라고 부른다. 이진수 곱셈은 위에서 본 예시와 같이, 다음과 같은 단계만 거치면 된다. 1. 승수의 자리 수가 1이면 피승수(1×피승수)를 해당 위치에 복사한다. 2. 승수의 자..

    2. 덧셈과 뺄셈

    2. 덧셈과 뺄셈

    Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 덧셈과 뺄셈 32비트의 이진수의 덧셈과 뺄셈은 ALU에서 어떻게 이루어질까? 우리가 10진수 덧셈을 할 때와 똑같다. 오른쪽에서 왼쪽으로 한 비트씩 더하고, 올림수는 바로 왼쪽 자리로 보낸다. 즉, 이진수에서는 최대 표현 가능한 수는 1이므로 1+1이 되면 1이 올림수가 되어 10이 된다. 예를 들어, 000111(7)과 000110(6)을 더한다고 생각해보자. 사람이 손으로 계산하는 것과 똑같이 올림(carry)을 진행해주면 된다. 그렇다면 뺄셈..

    1. 서론

    1. 서론

    Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 컴퓨터 워드(word)는 비트로 구성되어 있으므로 이진수로 표시할 수 있다 명령어 : 컴퓨터 언어 에서 정수가 십진수나 이진수로 표현될 수 있음을 보였는데, 흔히 볼 수 있는 다른 수들은 어떨까? ex) 소수나 실수는 어떻게 표현할까? 컴퓨터로 표현할 수 있는 것보다 더 큰 수가 계산의 결과로 나오면 어떻게 될까? 이런 문제들의 바탕에 깔려 있는 수수께끼가 하나 있는데, 그것은 하드웨어가 실제로 어떻게 곱셈, 나누셈을 수행하는가 하는 것이다. 이 ..