CS/컴퓨터 구조

2장 : 컴퓨터 산술/논리 - (2) 논리 연산2

infobox503 2024. 11. 15. 21:45

<요약>

  • 덧셈
    • 회로
      • 반가산기
      • 전가산기
      • 병렬가산기
        • 플래그
          • v, z, s, c
  • 뺼셈
    • 회로
      • 병렬 가감산기
  • 오버플로우 검증
    • C4 XOR C3(맨 왼쪽, 맨 왼쪽 + 1 비트)
  • 곱셈
    • 부호없는 곱셈
    • 부호있는 곱셈
      • Booth 알고리즘
        • 우측 시프트 시, 최상단 비트는 부호 유지
        • 2의 보수 사용

1) 덧셈

1. 반가산기

  • 역할
    • 더하기
  • 회로

<요약>

  • 덧셈
    • 회로
      • 반가산기
      • 전가산기
      • 병렬가산기
        • 플래그
          • v, z, s, c
  • 뺼셈
    • 회로
      • 병렬 가감산기
  • 오버플로우 검증
    • C4 XOR C3(맨 왼쪽, 맨 왼쪽 + 1 비트)
  • 곱셈
    • 부호없는 곱셈
    • 부호있는 곱셈
      • Booth 알고리즘
        • 우측 시프트 시, 최상단 비트는 부호 유지
        • 2의 보수 사용

1) 덧셈

1. 반가산기

  • 역할
    • 더하기
  • 회로

 

2. 전가산기

  • 역할
    • 더하기(아랫자리에서 올라온 올림수도 고려함)
  • 진리표

회로

3. 병렬 가산기

  • 역할
    • 덧셈 수행하는 전체 모듈
    • 비트 개수만큼 전가산기를 이어 붙임
  • 플래그 종류
    • V 플래그(오버 플로우)
      • 데이터 표현 크기를 벗어나면 1로 설정(=error)
    • Z 플래그(0)
      • 연산 결과값이 0이면 1
      • 용도
        • 반복문 사용 시, 카운트가 0이 되는 지점 찾기 쉬움
    • S 플래그(부호)
    • C 플래그(올림수)
      • 맨 왼쪽 비트에서 올림수 발생하면 1
      • 올림수는 버릴 수도 있으므로, C 플래그가 있어도 오버플로우로 판단 불가
  • 예시(4비트 병렬 가산기)

 

4. 덧셈 오버플로우

  • 의미
    • 표현 범위를 벗어나서 데이터 값이 틀린 상태
  • 검출 방법
    • C4 XOR C3
    • 이유
      • C3에서만 캐리 발생
        • C3가 부호 비트로 넘어가서 값을 바꾸기 때문에 값의 부호가 바뀌어버림
      • C4에서만 캐리 발생
        • C4에서 발생한다는 것은 부호비트의 값이 0이 된다는 것
        • 따라서, 음수 + 음수(1)를 더했는데 0(양수)가 되므로 값의 오류 발생
      • C3,C4 둘다 캐리 발생 시, 오버플로우 X
        • C4에서 부호가 반대로 바뀌었는데, C3가 다시 원래 부호로 바꿔줌

2) 뺄셈

  • 따로 회로가 존재하지 않음
    • 음수는 보수 취해서 덧셈 회로를 쓰면 되기 때문

1. 뺄셈 오버플로우

  • 검출 방법
    • C4 XOR C3

2. 4비트 병렬 가감산기

  • 역할
    • 덧셈, 뺄셈 모두 수행하는 회로
    • 2의 보수 기반으로 계산해보면 계산 결과가 일치함
  • 회로

 

3) 곱셈

1. 양수끼리의 곱셉

  • 방법
    • 시프트 연산 + 더하기 연산을 수행하면 됨

 

  • 동작 과정
    • 피승수 : 곱함을 당하는 수
    • 승수 : 곱하는 수

 

2. +,- 부호를 고려한 곱셉

  • Booth 알고리즘(곱셈 최적화 기법) 적용

 

  • 예시
    • 주의
      • 우측 시프트 시, A의 최상단 비트는 부호를 유지해야됨.