컴퓨터 구조 1강 ~ 13강 정리

아놀드·2021년 9월 18일
4

컴퓨터 구조 강의

목록 보기
1/5

컴퓨터의 구조

전체적으로 하드웨어와 소프트웨어로 나뉜다.

소프트 웨어

  1. 시스템 소프트웨어 - 윈도우, 리눅스 등 운영체제를 의미한다.
  2. 응용 소프트웨어 - 사용자가 개발한 소프트웨어를 의미한다. ex) 엑셀, 파워포인트

하드웨어

잠시 학생 때로 돌아가 책상에 앉아 공부했을 당시를 떠올려 비유해보자.
중앙 처리 장치에는 CPU, MPU등이 해당되고, 이는 필기 도구에 해당된다.
주기억장치는 RAM, ROM이 해당되고, 이는 책상에 해당된다.
보조기억장치는 SSD, HDD가 해당되고, 이는 서랍에 해당된다.

우리가 책상에 앉아 공부할 때
서랍(HDD)에서 이전에 공부한 내용들을
책상(RAM)에 불러와서
필기도구(CPU)의 힘을 빌려 공부(연산)를 하고
공부가 끝나면 책상(RAM)을 비우고
다시 서랍(HDD)에 저장하고 하교한다.

비유가 완전히 맞진 않지만 이런 뉘앙스로 이해하면 편하다.

데이터 표현 및 단위

  1. 수치 데이터 (Numerical data): 연산용 데이터
  2. 비 수치 데이터 (Alphanumerical data): 입출력용 데이터
  3. 특수문자 (Special Character): 입출력/ 연산용 데이터

컴퓨터의 통신 기기로서의 발전

access net
edge라고 불림.
sk, kt같은 회선 지원 회사.
단말기.

isp
internet service provider
인터넷을 전세계에 연결.
구글과 아마존은 자체적으로 보유하고 있다.

ixp
internet exchange point
isp끼리 통신이 원활하지 않은 틈새를
원활하게 해준다.

컴퓨터의 구성 요소

중앙 처리 장치

  • CPU/MPU

주변 장치

  • 주기억 장치 (RAM, ROM)
  • 보조 기억 장치 (HDD, SSD)
  • 입출력 장치 (키보드, 모니터, 프린터)

마더 보드


데이터의 전달 통로가 디자인 되어있는 메인 보드이다.
CPU가 두뇌라면 마더 보드는 신경계와 같은 역할을 한다.
CPU, RAM, 파워 서플라이등등 컴퓨터 부품이 마더 보드를 통해 연결된다.

프로세서

기본적인 명령어들을 처리하는 논리회로

프로세서의 구성 요소

제어 장치(Control Unit): 소프트웨어와 하드웨어 사이의 조율
연산 장치(Arthmetic Logic Unit): 사칙연산과 논리연산을 담당

CPU


인간의 두뇌같은 존재
디바이스가 할 일을 총 지휘하는 프로세서

MPU

CPU를 고밀도 직접회로화(소형화) 한 칩이다.

CISC - 부팅, 입출력등 반복되는 작업을 OS가 아니라 하드웨어가 직접하는 방식
RISC - CISC와 반대
Bit Slice MPU - CISC와 RISC를 적절히 융합

위 3개의 버전이 존재한다.

memory

데이터를 기록하거나 읽기 위한 저장 공간

RAM (random access memory)

데이터를 읽는 속도와 기록하는 속도가 같다.
컴퓨터를 끄면 기억이 다 날라간다.
휘발성 메모리라고 부른다.

ROM (read only memory)

데이터를 읽고 기록하는 속도가 RAM에 비해 느리다.
컴퓨터를 꺼도 기억이 남아있다.
비휘발성 메모리라고 부른다.
컴퓨터 부팅시 ROM은 하드웨어의 os를 불러온다.

주변 장치 한 눈에 보기

주 기억장치와 보조 기억 장치의 관계

네트워크의 발전

1. 통신의 발달

아날로그 통신에서 디지털 통신으로 바뀌면서
컴퓨터 처리가 가능해지고 그 뜻은 모든 기기에 적용이 될 수 있다는 의미다.

인터넷 통신이 대단한 이유는 어떤 신호가 들어오든
네트워크를 계층별로 나누어 하위 계층에 도달했을 때
디지털 형태로만 도달했다면 운영체제가 처리를 할 수 있다.

2. 운영체제의 발달

네트워크의 발전으로
운영체제도 단순히 컴퓨터 시스템을 운영하는 역할에서 네트워크를 운영하는 역할로 발전했다.
NOS(Network Operating System)라고도 불린다.

3. 소프트웨어와 직접 기술의 발달

직접 기술이란 MPU같은 기술을 의미한다.
이로 인해 테슬라 자율 주행 자동차 탄생했다.

4. 4차 산업 혁명

네트워크의 발전은 1, 2, 3의 발전을 야기했고, 4차 산업 혁명으로 이어졌다.
네트워크는 결국 컴퓨터가 구현해주기 때문에 컴퓨터의 구조는 어떻게 되어야하는지 알아볼 필요가 있다.

데이터의 종류

보수

보수란 서로 보완해주는 수

1진 보수
최댓값을 형성할 때 서로 보완 관계에 있는 두 수
ex) a + b = 9

2진 보수
최대 표현 자리수를 형성할 때 서로 보완 관계에 있는 두 수
ex) a + b = 10

보수가 중요한 이유는 컴퓨터는 덧셈밖에 모르기 때문에
보수를 이용해서 뺄샘을 구현하기 때문이다.
강의론 이해가 가지 않아서 보수 링크 << 이 블로그의 글을 많이 읽었다.

요약하면,
n진법에서 n의 보수란 '최대 자리수'를 표현하도록 만들어주는 수이다.
n - 1의 보수란 n의 보수에서 -1을 한 값이거나, '최대 자리수' - 1을 만들어주는 수이다.

10진수 체계일 때

3에 대한 10의 보수는 7이다.
10(가장 가까운 최대 자리수) - 3 = 7

3에 대한 9의 보수는 6이다.
7 - 1 = 6 or (10 - 1) - 6 = 3

2진수 체계로 확장을 해보면
0011의 2의 보수는 10000(가장 가까운 최대 자리수) - 0011 = 1101가 된다.
이 뜻은 1의 보수를 구하고 + 1을 하면
10000 - 0001 = 1111 (가장 가까운 최대 자리수 - 1)
1111 - 0011(원본) = 1100 (1의 보수)
1100 + 0001 = 1101 (2의 보수)
이러한 원리다.

이 원리를 이용해 음수 계산을 이용하면 자릿수 올림된 애들은 버리는 작업만 하면 돼서
무지 편해진다.
자세한 내용은 위 블로그를 참조하자. (하트도 눌러주자!)
위의 요악한 내용만 이해하면 컴퓨터의 음수 연산을 이해하는 건 껌이다.

10진수의 입출력

연산하지 않을 10진수를 굳이 2진수로 변환해서 입출력을 해야되나? 라는 고민에서 나온 아이디어.
10진수를 입출력용으로 만들 땐 unpacked decimal로 변환하고
컴퓨터에 들어갔으면 연산을 위해 packed decimal로 환원한다.

부동 소수점

역시 강의로는 이해가 안가서 바킹독 블로그 << 이 글을 참조했다.
컴퓨터가 실수를 어떻게 표현하는지 잘 설명해준다.

bcd 코드

unpacked decimal과 마찬가지로 입출력용으로만 쓰이는 10진수를 2진화한 코드이다.

3초과 코드(excess-3코드)


bcd 코드에서 +3을 해주면 된다.
신기하게도 3초과 코드는 서로 보수 관계가 있다.
예전에는 통신할 때 많이 썻던 코드이지만 요즘엔 쓰이질 않는다고 한다.

패리티 비트

최초의 암호화 검증 코드이다.
패리티 비트 -> 해쉬 함수 -> 보안 체계 성립

논리회로와 데이터의 표현

논리 게이트

  • 논리가 지나가는 문
  • 논리 연산을 수행하는 전자 소자
  • 논리적인 연산을 수학적으로 표현
  • 컴퓨터를 구성하는 가장 기본적인 요소

스위치가 연결된 상태: 1
스위치가 연결되지 않은 상태: 0

마더보드를 만들 때나 cpu, mpu 칩을 만들 때
기본적으로 다 적용되는 요소이다.

논리곱(AND 게이트)


A와 B가 둘 다 1일 때 결과가 1


회로는 이런 식으로 되어있다.
s1과 s2 둘 다 연결되어야만 전류가 흐르는 상태(1)이 된다.

논리합(OR 게이트)


A와 B가 둘 중 하나라도 1일 때 결과가 1


회로는 이런 식으로 되어있다.
s1과 s2 둘 중 하나만 연결되어도 전류가 흐르는 상태(1)이 된다.

논리 부정(NOT 게이트)

배타적 논리합(XOR 게이트)

A와 B가 달라야 결과가 1

논리 게이트를 이용한 덧셈 구현

1bit에 대한 연산에 대해 나올 수 있는 경우의 수를 진리표로 구해봤더니
S는 xor 게이트의 결과가 나오고 C는 and 게이트의 결과가 나오게 된다.

고로 논리 게이트를 이용한 덧셈의 회로는

이와 같이 설계된다.
실제로 cpu는 이러한 논리 회로들을 수만개씩 가지고 있다.

profile
함수형 프로그래밍, 자바스크립트에 관심이 많습니다.

0개의 댓글