[CS] 컴퓨터가 이해하는 정보와 핵심 하드웨어 구조

눈치없어·2025년 1월 22일

컴퓨터가 이해하는 정보

컴퓨터는 우리가 작성한 프로그래밍 언어를 직접 이해하지 못함
컴퓨터가 이해할 수 있는 정보는 데이터명령어로 이루어져 있음

  • 데이터: 숫자, 문자, 이미지, 동영상 등 정적인 정보
  • 명령어: 데이터를 활용하는 정보로, 수행할 동작과 대상이 포함됨

결론적으로, 컴퓨터는 0과 1로 정보를 표현하며, 이를 활용해 명령어를 실행
그리고 명령어를 실행하는 주체가 바로 CPU

데이터는 명령어에 종속적인 정보로, 명령의 대상이자 재료


컴퓨터의 핵심 부품

컴퓨터는 노트북, 데스크탑, 서버, 스마트폰 등 다양한 형태로 존재

  • 주요 부품
  • CPU: 데이터와 명령어를 처리하는 핵심 장치
  • 메모리: 프로그램과 데이터를 임시로 저장
  • 캐시 메모리: CPU와 메모리 간 데이터 전송 속도를 높임
  • 보조기억장치: 데이터를 영구적으로 저장
  • 입출력장치: 외부 세계와의 인터페이스 역할

CPU

컴퓨터의 두뇌에 해당
컴퓨터가 이해하는 데이터와 명령어를 읽고 해석하며 실행하는 부품

  • 구성요소
  • ALU(산술논리연산장치): 연산 수행
  • 제어장치: 명령어 해석 및 제어 신호 생성
  • 레지스터: 임시 저장소로, 연산 중 데이터를 저장

CPU는 직접적으로 개발자가 접근하지 않지만, 알고리즘 최적화와 데이터 구조 설계에서 중요한 배경 지식
최적화 팁: 알고리즘 설계 시 CPU 캐시의 크기와 작동 방식을 고려하면 성능을 극대화 할 수 있음

메모리와 캐시 메모리

  • RAM: 실행 중인 프로그램의 데이터와 명령어를 저장. 휘발성 특성을 가짐
  • 캐시 메모리: CPU와 메모리 사이의 데이터 병목을 줄이기 위한 고속 메모리

보조기억장치

보조기억장치는 데이터를 영구적으로 저장하며, HDD, SSD, USB 메모리 등이 있습니다. 데이터를 메모리로 복사한 후 CPU에서 사용

RAID: 여러 저장장치를 묶어 성능과 안정성을 향상시키는 기술

입출력 장치

  • 입력 장치: 키보드, 마우스, 터치스크린 등
  • 출력 장치: 모니터, 스피커, 프로젝터 등
  • 보조기억장치도 특별한 입출력 장치로 간주될 수 있음

메인보드와 버스

  • 메인보드: 컴퓨터의 모든 부품이 연결되는 기판
  • 버스: 부품 간 데이터 통신 통로. 시스템 버스, 데이터 버스 등으로 세분화

저장장치의 계층 구조

저장장치는 CPU와의 거리, 성능, 용량에 따라 계층적으로 나뉨:

  • 계층 순서: 레지스터 → 캐시 메모리 → 메모리 → 보조기억장치

컴퓨터가 이해하는 정보의 단위

비트와 바이트

  • 비트: 정보의 최소 단위 (0 또는 1)
  • 바이트: 8비트로 구성. 1바이트는 최대 256개의 값을 표현

데이터 표현 방식

2진수와 16진수:

  • 2진수: 컴퓨터 내부 표현 방식
  • 16진수: 사람이 읽기 쉽도록 2진수를 압축한 표현. 예: MAC 주소, IPv6

부동소수점 표현:

  • 실수를 표현하기 위해 IEEE 754 표준을 따르며, 숫자는 다음 세 가지로 구성
    • 부호(Sign): 양수(0), 음수(1)
    • 지수(Exponent): 숫자의 크기
    • 가수(Significant): 숫자의 세부적인 값

부동소수점 방식은 제한된 저장 공간으로 인해 근사치를 저장하므로, 계산 시 미세한 오차가 발생할 수 있음

문자 표현 방식

문자 인코딩:

  • ASCII: 7비트로 128개의 문자 표현
  • EUC-KR: 한글 표현용 2바이트 인코딩
  • 유니코드: 전 세계 문자를 통합적으로 표현
    - UTF-8: 가변 길이 인코딩 방식으로 메모리 절약
    - Base64: 바이너리 데이터를 텍스트로 변환

명령어와 사이클

명령어 구성

  • 연산 코드: 수행할 동작
  • 오퍼랜드: 동작에 사용될 데이터나 데이터의 주소

명령어는 연산 코드와 0개 이상의 오퍼랜드로 구성되며, 다음과 같은 과정으로 실행
1. 지시 확인
2. 데이터 가져오기
3. 계산 후 저장

연산 코드는 연산자, 오퍼랜드는 피연산자라고도 부른다.

명령어 사이클

  1. 인출 사이클: 명령어를 메모리에서 CPU로 가져옴
  2. 실행 사이클: 명령어 실행
  3. 간접 사이클: 추가 데이터 인출이 필요한 경우 수행

    CPU는 명령어를 반복적으로 인출, 실행하며 프로그램을 처리


기계어와 어셈블리어

  • 기계어: 0과 1로 표현된 언어
  • 어셈블리어: 기계어를 사람이 읽기 편한 형태로 번역한 언어

참고: 북스터디 - 이것이 취업을 위한 컴퓨터 과학이다 (Chapter 2-1, 2)

profile
dock 사이즈 다르잖아

0개의 댓글