728x90
반응형

Chapter 01 컴퓨터 구조 시작하기

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

문제 해결

프로그래밍 언어의 문법만 알고 있는 사람

-> 컴퓨터 = 코드 입력하면 결과 내놓는 '미지의 대상'

 

<컴퓨터 구조 이해 시 장점>

  1. 문제 상황 빠르게 진단
  2. 문제 해결의 실마리 다양하게 찾음

=> 문제 해결 능력 향상

 

=> 미지의 대상이 아닌 '분석의 대상'


성능, 용량, 비용

컴퓨터 선택에 따라 성능, 용량, 비용이 달라짐

=> 저렴한 제품이 무조건 좋은 것 X

 

개발한 프로그램을 위한 최적의 컴퓨터 환경을 스스로 판단해야 함

 

=> 입출력에만 집중하는 개발 X 성능, 용량, 비용까지 고려하는 개발자 O


2. 컴퓨터 구조의 큰 그림

Key Word: 데이터 / 명령어 / 메모리 / CPU / 보조기억장치 / 입출력장치 / 시스템 버스

 

<알아야 할 컴퓨터 구조 지식> 

  • 컴퓨터가 이해하는 정보
    • 데이터
    • 명령어
  • 컴퓨터의 4가지 핵심 부품
    • CPU
    • 메모리
    • 보조기억장치
    • 입출력장치

CPU-Z: 컴퓨터에 설치된 부품 사양 확인

레지스터 → (Cache_L1 Data: 가장 빠름 (→ L2 → L3)) → Memory → 보조기억장치

  • 레지스터: 연산을 실행하기 위해 가지고 있는 위치
  • 캐시: 조금 더 빠르게 만들려고 생겨남
  • SHA: 암호화/ x86-64, M1

컴퓨터가 이해하는 정보

컴퓨터는 0과 1로 표현된 정보만을 이해

0과 1로 표현된 정보(= 컴퓨터가 이해하는 정보): 데이터 / 명령어

 

데이터(data)

  • (숫자, 문자, 이미지, 동영상과 같은) 정적 정보
  • 컴퓨터와 주고받는 정보
  • 컴퓨터에 저장된 정보

명령어(instruction)

  • 데이터를 움직이고 컴퓨터를 작동시키는 정보
  • 실질적으로 컴퓨터를 작동시키는 더 중요한 정보
예시
1과 2를 더하라 -> 데이터: 1, 2 / 명령어: 더하라, 1과 2를
안녕하세요를 화면에 출력하라 -> 데이터: 안녕하세요 / 명령어: 화면에 출력하라, 안녕하세요를 
USB 메모리에 cat.jpg를 저장하라 -> 데이터: cat.jpg / 명령어: USB 메모리에 저장하라, cat.jpg를

 

=> 데이터: 명령어를 위해 존재하는 일종의 재료 / 명령어: 컴퓨터를 작동시키는 정보 

-> 컴퓨터 프로그램 = 명령어들의 모음


컴퓨터의 4가지 핵심 부품

  • 중앙처리장치(CPU; Central Processing Unit)
  • 주기억장치(메모리; main memory)
    : RAM(Random Access Memory) / ROM(Read Only Memory)
  • 보조기억장치(secondary storage)
  • 입출력장치(input/output(I/O) device)

CPU

컴퓨터의 두뇌

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

 

<CPU 내부 구성 요소 3가지>

  • 산술논리연산장치(ALU; Arithmetic Logic Unit)
    • 계산만을 존재하는 부품/ 계산기
    • 컴퓨터 내부에서 수행되는 대부분의 계산
  • 레지스터(register)
    • 작은 임시 저장 장치
    • 프로그램 실행 시 필요한 값들을 임시로 저장
    • 여러 개의 레지스터 존재, 각기 다른 이름과 역할 가짐
  • 제어장치(CU; Control Unit)
    • 제어 신호(control signal)라는 전기 신호를 내보내고 명령어를 해석하는 장치
      • 제어 신호: 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호
    • CPU가 메모리에 저장된 값 읽고 싶을 때 -> 메모리를 향해 '메모리 읽기' 제어 신호 보냄
    • CPU가 메모리에 어떤 값 저장하고 싶을 때 -> 메모리를 향해 '메모리 쓰기' 제어 신호 보냄

 제어장치) 메모리 읽기(제어 신호) -> 1번지에 저장된 명령어 읽음
저장된 명령어: 더하라, 3번지와 4번지를

-> 메모리) 1번지에 저장된 명령어 -> CPU(레지스터)
-> 제어장치) 명령어 해석(3번지와 4번지 데이터가 필요 판단) -> 메모리에 읽기(제어 신호) 보냄

-> 메모리) 3번지와 4번지에 저장된 데이터 -> CPU(서로 다른 레지스터)
-> ALU) 연산 수행(120+100) -> 레지스터

제어장치) 메모리 읽기(제어 신호) -> 2번지에 저장된 명령어 읽음
저장된 명령어: 저장하라, 연산 결과를

-> 메모리) -> 2번지에 저장된 명령어 -> CPU(레지스터)
-> 제어장치) 명령어 해석(메모리에 계산 결과 저장) -> 메모리에 쓰기(제어 신호) + 계산 결과(220) 보냄

CPU 한계 O, GPU 한계 X → GPU) 병렬 처리, 순서 상관 없이 실행도 됨

하드웨어 올려서 속도 증가 시키는 것은 한계가 옴

But, 소프트웨어(알고리즘) 변경 → 속도 빨라짐

<정리>

  1. CPU는 메모리에 저장된 값을 읽어 들이고, 해석하고, 실행하는 장치
  2. CPU 내부에는 ALU, 레지스터, 제어장치가 있음
  3. ALU는 계산하는 장치, 레지스터는 임시 저장 장치, 제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치

 

메모리

  • 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품
  • 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 함

컴퓨터가 빠르게 작동 -> 메모리 속 명령어와 데이터 중구난방 저장 X 위치 정돈 O

=> 저장된 값에 빠르고 효율적인 접근 -> 주소(address) 사용

 

주소 ~> 메모리 내 원하는 위치에 접근 가능

 

<정리>

  1. 프로그램이 실행되기 위해서는 반드시 메모리에 저장되어 있어야 함
  2. 메모리는 현재 실행되는 프로그램의 명령와 데이터를 저장
  3. 메모리에 저장된 값의 위치는 주소로 알 수 있음

 

보조기억장치

<메모리 단점>

  1. 가격 ↑ -> 저장 용량 ↓
  2. 전원 꺼지면 저장된 내용 잃음

=> 메모리보다 크기 ↑ + 전원 꺼져도 저장된 내용 잃지 X 메모리 보조할 저장 장치 = 보조기억장치

 

ex. 하드 디스크, SSD, USB 메모리, DVD, CD-ROM

 

  • 메모리: 현재 '실행되는' 프로그램 저장
  • 보조기억장치: '보관할' 프로그램 저장

 

입출력장치

(마이크, 스피커, 프린터, 마우스, 키보드와 같이) 컴퓨터 외부에 연결

-> 컴퓨터 내부와 정보를 교환하는 장치

Q: 보조기억장치로 알고 있던 하드 디스크, USB 메모리, CD-ROM도 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 장치로 볼 수 있지 않나?
A: 보조기억장치는 관점에 따라 입출력장치의 일종으로 볼 수 있다.
=> 보조기억장치와 입출력장치: 주변장치(peripheral device)_컴퓨터 주변에 붙어있는 장치
But, 보조기억장치는 입출력장치에 비해 메모리를 보조하는 특별한 기능 수행

 

메인보드와 시스템버스

컴퓨터 핵심 부품들은 메인보드라는 판에 연결

ㄴ메인보드(main board) = 마더보드(mother borad)

 

메인보드 내부에 버스(bus)라는 다양한 통로 O

-> 메인보드에 연결된 부품들은 서로 정보를 주고 받을 수 있음 

가장 중요한 버스: 시스템 버스(system bus)

 

<시스템 버스>

  • 주소 버스(address bus): 주소를 주고받는 통로
  • 데이터 버스(data bus): 명령어와 데이터를 주고받는 통로
  • 제어 버스(control bus): 제어 신호를 주고받는 통로
CPU가 메모리 속 명령어 읽어 들이기 위해 (제어장치)에서 '메모리 읽기'라는 신호 보냄
=> (제어 버스)로 '메모리 읽기' 신호 + (주소 버스)로 읽고자 하는 주소 보냄
-> 메모리는 (데이터 버스)로 CPU가 요청한 주소에 있는 내용 보냄

메모리에 어떤 값 저장
CPU는 (데이터 버스) 메모리에 저장할 값 + (주소 버스) 저장할 주소 + (제어 버스) '메모리 쓰기' 제어 신호 보냄

출처

 

[한빛미디어] 혼자 공부하는 컴퓨터 구조+운영체제

좋은 개발자는 컴퓨터를 분석의 대상으로 바라볼 뿐, 두려워하지 않는다!‘전공서가 너무 어려워서 쉽게 배우고 싶을 때’, ‘개발자가 되고 싶은데 뭐부터 봐야 하는지 모를 때’ ‘기술 면접

hongong.hanbit.co.kr

 

728x90
반응형
김앩옹