본문 바로가기
What I Learned

[WIL] Day 14

by 케찹이 2023. 6. 10.

~컴퓨터 구조를 알아햐 하는 이유~

컴퓨터를 미지의 대상에서 분석의 대상으로 전환하기 위해 CS를 배우는 것이라고 생각하자.

성능, 용량, 비용. 절대로 간과해서는 안되는 것들. 

 

~컴퓨터구조의 큰 그림~

앞으로 배울 크게 2가지 주제

  1. 컴퓨터가 이해하는 정보
  2. 컴퓨터의 네가지 핵심 부품

 

컴퓨터가 이해하는 정보는 크게 2가지

  1. 데이터
  2. 명령어

 

데이터란 숫자, 문자, 이미지 같은 정적인 정보. 

명령어는 컴퓨터를 실질적으로 움직이는 정보. 

 

컴퓨터의 4가지 핵심부품, 이 부품들은 다양한 종류의 컴퓨터에 모두 동일하게 들어가있음. 

  1. CPU
  2. 메모리(RAM, 이해하는데 더 중요함)
  3. 보조기억장치
  4. 입출력장치

메인보드(마더보드)로 연결한다. 

시스템버스: 정보를 주고 받는 통로, 그중 가장 중요한 버스, 4가지 부품이 정보를 교환하는 통로

메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품. 

메모리는 주소라는 정보가 존재. 주소로 필요한 명령어나 데이터를 찾는다.

정리하면…

  • 프로그램이 실행되기 위해서는 메모리에 저장되어 있어야 한다.
  • 메모리는 실행되는 프로그램의 명령어와 데이터를 저장한다.
  • 메모리에 저장된 값의 위치는 주소로 알 수 있다.  

 

CPU는 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 부품이다.

CPU의 내부 구성 부품은 3가지

  1. ALU, 
  2. 제어장치, control unit
  3. 레지스터

ALU: 계산기. 계산을 위한 회로들의 모음. 산술논리연산장치. 

레지스터: CPU내부의 작은 저장장치

제어장치: 제어 신호를 내보내고, 명령어를 해석하는 장치.

제어신호는 컴퓨터 부품들을 관리하고 작동시키기 위한 전기 신호.

 그 종류에는 메모리 읽기 신호, 메모리 쓰기 신호가 있다.

cpu의 제어장치는 메모리로 제어 신호를 보내는데 그 신호가 메모리 읽기. 이때 cpu의 레지스터로 가져오게 됨. 

제어장치는 명령어를 해석하는 장치이기도 함. 그래서 레지스터에 들어온 명령어를 해석을 하고 다시 메모리의 어느 데이터가 

필요하겠구나 판단을 하고 메모리 읽기 신호를 통해서 필요한 데이터를 한번 더 가져오게 된다. 

그리고 ALU는 명령어를 실행한 결과를 레지스터에 저장하게 됨. 명령어를 듣고 계산을 했다라고 생각. 

 

정리를 하자면

CPU는 메모리에 저장된 값을 읽어 들이고, 해석하고 실행하는 장치이다.

CPU 내부에는 ALU, 레지스터, 제어장치가 있다. 

 

보조기억장치

-값이 비싸고

-전원이 꺼지면 저장된 내용을 잃어버림.

보조기억장치는 전원이 꺼져도 보관될 프로그램을 저장하는 부품이다.

메모리는 실행할 정보를 저장하고 보조기억장치는 보관할 정보를 저장한다.

 

입출력장치

입출력장치는 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 부품이다.

 

보조기억장치와 입출력장치랑 뭐가 다른거인가?

개념상 나눠놓지만 실제로 딱 잘라 구분되는 개념은 아니다. 주변장치라 통칭하기도 한다.

메모리를 보조하는 특별한 입출력장치가 보조기억장치다라고 이햐하면된다.

 

메인보드

핵심부품을 연결해서 정보를 주고 받음. 정보를 주고 받는 것이 버스, 그리고 가장 중요한 버스들을 시스템버스.

 

시스템버스 내부구성

주소버스, 데이터버스, 제어버스 구성들이 있다. 

 

~ 0과 1로 숫자를 표현하는 방법~

8비트-> 1바이트

1킬로바이트 -> 1000바이트

1메가바이트 -> 1000킬로바이트

1기가바이트 -> 1000메가바이트

1테라바이트->1000기가바이트

1024개씩 묶는 단위는 kiB, MiB, GiB,…

 

워드

  • cpu가 한번에 처리할 수 있는 정보의 크기 단위
  • 하프 워드: 워드의 절반 크기
  • 풀 워드: 워드 크기
  • 더블 워드: 워드의 두 배 크기

 

이진법………

음수르 어떻게 표현? 2의 보수

어떤 수를 그보다 큰 2^n에서 뺀 값.

모든 0과 1을 뒤집고 1을 더하면 해당 양수값의 음수가 됨. 

예를 들어 0101(2)가 있을 때, 양수와 음수를 구분하기 위한 flag 레지스터가 존재.

flag레지스터에 양수음수를 표기를 해준다.

 

16진법

2진수를 16진수로 바꾸기 쉬움.

 

~0과 1로 문자를 표현하는 방법~

문자집합

  • 컴퓨터가 이해할 수 있는 문자의 모음

인코딩

  • 코드화하는 과정
  • 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정

디코딩

  • 코드를 해석하는 과정
  • 0과 1로 표현된 문자 코드를 문자로 변환하는 과정

 

아스키코드

7비트로 하나의 문자 표현

  • 8비트중 1비트는 오류 검출을 위해 사용되는 패리티 비트

A는 65, a는 97로 인코딩

  • 간단한 인코딩

 

한글을 위한 인코딩이 필요

  • 한글의 특징
  • 초성, 중성, 종성의 조합으로 이루어진 한글
  • 완성형 인코딩 방식(단어 하나 자체에 고유한 코드를 부여)
  • 조합형 인코딩(자음과 모음의 조합, 각 자음 모음의 고유 코드 부여)

 

EUC-KR

  • 완성형 인코딩 
  • 글자 하나에 2바이트 크기의 코드 부여
  • 모든 한글 표현 불가, 예) 쀏, 뙠, 휔…

 

유니코드 문자 집합 utf-8

유니코드

  • 통일된 문자 집합
  • 한글, 영어, 화살표, 이모티콘
  • 현대 문자 표현에 있어 매우 중요한 위치
  • 인코딩 방식, utf-8, utf-16, utf-32

 

Utf-8 인코딩

  • UTF(Unicode Transformation Format) == 유니코드 인코딩 방법
  • 가변 길이 인코딩: 인코딩 결과가 1바이트 ~ 5바이트
  • 인코딩 결과가 몇 바이트가 될지는 유니코드에 부여된 값에 따라 다름 

 

 

 

'What I Learned' 카테고리의 다른 글

[WIL] Day 16  (0) 2023.06.18
[WIL] Day 15  (0) 2023.06.17
[WIL] Day 13  (0) 2023.06.09
[WIL] Day12 (기말준비 Day3)  (0) 2023.06.09
[WIL] Day 11 (기말준비 Day 2)  (0) 2023.06.06

댓글