01. [혼공컴운]1주차_컴퓨터 구조

hyewoon·2024년 1월 6일
0

1주차(1/2 ~ 1/7) chapter 01~ 03
chapter. 01. 컴퓨터구조 시작하기
chapter 02. 데이터
chapter 03. 명령어

Chapter 01. 컴퓨터구조 시작하기

1. 컴퓨터 구조를 알아야 하는 이유


컴퓨터 구조의 이해가 문제해결의 판단 기준을 제공한다.

컴퓨터 구조를 이해하면 문제상황을 빠르게 진단하여 문제해결의 실마리를 제공한다. 또한 사용자가 늘어날 경우 성능, 용량, 비용을 고려해야 하는데, 컴퓨터 구조르 알고 있으면 어떤 성능과 용량, 비용을 선택할지 판단하는 기준이 된다.

2. 컴퓨터 구조의 큰 그림


2-1. 컴퓨터가 이해하는 정보

  1. 데이터
    컴퓨터가 이해하는 숫자, 문자, 동영상, 이미지 등등의 정적인 정보
  2. 명령어
    데이터를 움직이고 컴퓨터를 작동시키는 정보

예시 화면에 출력하라, 안녕하세요를 은 명령어
안녕하세요는 데이터

2-2. 컴퓨터의 4가지 핵심 부품

  1. CPU
    : 컴퓨터의 두뇌로 메모리에 저장된 명령어를 읽어들이고(제어장치), 읽어 들인 명령어를 해석하고(제어장치), 실행하는부품(ALU)
    - ALU : 계산하는 장치
    - 레지스터 : CPU내부의 임시 저장장치
    - 제어장치 : 명령어를 해석하는 장치

  2. 메모리
    : 메모리는 현재 실행되는 프로그램의 명령어와 데이터가 저장되어 있는 장치

    • 프로그램이 실행되기 위해서는 반드시 메모리에 저장되어 있어야 한다.
    • 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장한다.
    • 메모리에 저장된 값의 위치는 주소로 알 수 있다.
  3. 보조기억장치
    : 메모리보다 크기가 크고 전원이 껴져도 저장된 내용을 읽지 않는 메모리를 보조할 저장 장치

    • 메모리가 '실행되는' 프로그램을 저장한다면, 보조기억장치는 '보관할' 프로그램을 저장한다.
  4. 입출력장치
    : 마우스, 스피커, 프린터 처럼 컴퓨터 외부에서 연결되어 컴퓨터 내부와 정보를 교환하는 장치

  5. 메인보드와 시스템버스
    메인보드에 연결된 부품들은 서로 정보를 주고받을 수 있는데, 이는 메인보드 내부의 '버스'라는 통로를 통해서 가능하다. 그 중 컴퓨터의 네 가지 핵심 부품을 연결하는 가장 중요한 버스는 '시스템 버스'

    • 시스템 버스
      • 주소버스 : 주소 주고 받는 통료
      • 데이터버스 : 명령어와 데이터 주고받는 통로
      • 제어버스 : 제어신호 주고 받는 통로

Chapter 02. 데이터

컴퓨터는 0과 1로 모든 정보를 표현하고, 0과 1로 표현된 정보만을 이해 할 수 있다.

그렇다면

  • 컴퓨터는 0과 1보다 큰 수는 어떻게 인식하는가?
  • 컴퓨터는 0과 1이 아닌 문자는 어떻게 인식하는가?

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


  1. 정보단위
  • bit : 컴퓨터가 이해하는 가장 작은 정보단위로, 1비트는 0과 1이라는 정보를 표현한다.

  • 다른 정보단위
    1바이트 = 8비트(8bit)
    1킬로바이트(KB) = 1,000바이트
    1메가바이트(MB) = 1,000킬로바이트
    1기가바이트(GB) = 1,000메가바이트
    1테라바이트(TB) = 1,0000기가바이트

  1. 이진법
    숫자를 0과 1만으로 표현하는 방법
    이진법에서 음수는 2의 보수로 표현할 수 있다.

    이진수의 음수표현
    1. 모든 0과 1 뒤집기
    2. 1더하기

  2. 십육진법
    이진법으로 표현하면 숫자의 길이가 길어진다는 단점 있음, 이것을 보완한 것이 십육진법, 또한 십육진법은 이진법으로 교환이 편리하다.

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


  1. 문자집합
    컴퓨터가 인식할 수 있는 문자의 모음으로, 문자 집합에 속한 문자를 인코딩하여 1과 0으로 표현 할 수 있다.
  2. 아스키코드
    : 아스키문자집합에서 0부터127까지의 수가할당되어아스키코드로 인코딩됨
  3. EUC -KR
    : 한글을 2바이트 크기로 인콩딩할 수 있는 방식
  4. 유니코드
    : 여러나라의 문자들 광범위하게 표현할 수 있는 문자 집합

Chapter 03. 명령어

1. 소스코드와 명령어


2. 명령어의 구조


2-1. 명령어 = 연산코드 + 오퍼랜드

  • 연산코드 : 명령어가 수행할 연산

  • 오퍼랜드 : 연산에 사용할 데이터 또는 데이터가 담긴 메모리의 주소값

    • 오퍼랜드의 갯수에 따라 0-주소 명령어, 1-주소명령어 ...

2-2. 주소지정 방식

오퍼랜드에 메모리 주소값을 넣는 이유?
명령어의 크기가 한정되어 있기 때문에 많은 데이터를 담기 위해 메모리의 주소값을 넣는다.

  • 즉시주소 지정방식 : 연산코드 + 연산에 사용할 데이터
  • 직접주소 지정방식 : 연산코드 + 유효 주소(연산에 사용할 데이터가 저장된 위치)
  • 간접주소 지정방식 : 연산코드 + 유효주소의 주소
  • 레지스터 주소 지정방식 : 연산코드 + 유효주소
  • 레지스터 간접주소 지정방식 : 연산코트 + 유효주소를 저장한 레지스터

🏅기본미션

p. 51의 확인 문제 3번 인증

  • 프로그램이 실행되려면 반드시 메모리 에 저장되어 있어야 합니다.


p. 65의 확인 문제 3번 인증

  • 1101(2)를 음수로 표현한 값은 0011 입니다.
    1101(2) -> 모든 0과 1 뒤집기 : 0010 -> 1더하기 : 0011

🎁선택미션

1주차 선택미션 : p. 100의 스택과 큐의 개념을 정리하기

  • 스택(STACK) : 한쪽 끝이 막혀 있는 통과 같은 저장공간
    나중에 저장한 데이터를 가장 먼저 빼내는 데이터 관리방식(후입선출)
    스택에 새로운 데이터를 저장하는 명령어 PUSH, 스택에 저장된 데이터를 꺼내는 명령어 POP

  • 큐(QUEUE) : 양쪽이 뚫려 있는 통과 같은 저장공간
    가장 먼저 저장된 데이터부터 빼내는 데이터 관리방식(선입선출)
profile
오늘도 달리는

0개의 댓글