[넓고 얕게 배우는 컴퓨터 구조] CPU가 작동하는 원리

YUZAMIN
Hello, World! I'm YUZAMIN, a diligently endeavoring frontend developer 🐤💦
[넓고 얕게 배우는 컴퓨터 구조] CPU가 작동하는 원리

강의 영상📼

정리📝

  • 논리 게이트 회로
  • 논리의 곱
    • 2개의 인풋이 모두 참일 때만 참
  • 논리의 합
    • 2개의 논리 중 하나만 참이어도 참
  • 배타적(Exclusive)
    • 두 개의 입력이 서로 같으면 거짓이며 서로 다르면 참
  • Not
    • 인풋이 참이면 거짓, 거짓이면 참

  • IC 칩
  • 5V 전기를 흘려 보냄 -> And 연산 시 +5V가 출력됨
  • 한 쪽엔 전기 가고 한 쪽엔 안가면 출력은 0

  • A가 1이고 B가 0일 때, S는 1, C는 0
  • 반가산기: 1 개의 비트를 갖고 연산함 -> 자리올림 등의 개념이 없음

  • A = 2와 B = 5를 더하기
    • 4의 자리에서 자리 올림이 발생
    • 1비트 전가산기의 인풋은 A, B, C로 세 개
      • C는 자리 올림
      • 즉, 2와 5를 더할 때 4의 자리에서 발생하는 연산은 A는 0, B는 0, C는 1이 됨

  • 4비트 가산기

  • 컴퓨터는 덧셈만 할 줄 알아도 된다! 왜?
    • 보수를 더하면 뺄셈
      • 만약 12 – 9 = 3 연산을 한다고 하면?
        • 9에 1을 더하면 10이 됨 -> 1은 10에 대한 보수
        • 12에서 9를 뺄 때는 12에 9의 보수인 1을 더해 버림 -> 13이 됨 -> 10의 자리를 버리고 3만 취하면 12 – 9의 답
    • 2진수 계산할 때는 2의 보수를 사용
      • 얼마를 더하면 2가 되는가?
        • 1의 보수에 1을 더하는 것
        • 1의 보수는 0을 1로, 1을 0으로 뒤집음 (= Not 연산)
      • 3 – 2 연산
        • 3은 0011, 2는 0010
          • 2의 1의 보수는 1101
          • 2의 2의 보수는 1101 + 1 = 1110
          • 3과 1110를 더하면 10001이며, 4비트까지만 인정하기 때문에 0001, 즉, 1이 됨

  • 9를 3으로 나눌 때, 9에서 3을 뺌 -> 6은 3보다 크거나 같음 -> 3을 뺌 -> 3은 3보다 크거나 같음 -> 3을 뺌 -> 총 세 번 뺏으므로 몫은 3, 나머지는 0

  • 0으로 나눌 수 없음
    • 7에서 0을 빼면 7, 7에서 0을 빼면 또 0 … 무한 반복 -> 열 발생 -> 칩 폭발

  • 5를 왼쪽으로 밀고 자리 올림 버리며 1의 자리에는 padding 0을 채워 넣으면 10이 됨

  • 6를 오른쪽으로 밀면 3이 됨
  • 컴퓨터라는 기계의 작동 원리는 게이트 회로를 조합하여 가산기를 만든 것 -> 결과적으로 사칙연산을 수행(계산기)

출처