강의 출처
이 링크를 통해 구매하시면 제가 수익을 받을 수 있어요. 🤗

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
인프런 강의 - 그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
인프런 강의 - 만들면서 쉽게 배우는 컴퓨터 구조



컴퓨터 구조

  • 현대 컴퓨터가 따르는 구조는 " 폰 노이만 " 구조로 이루어짐.

폰 노이만 구조

  1. CPU (중앙처리장치)
  2. 메모리 (명령어와 데이터를 저장하는 )
  3. 입출력 장치 (외부와의 통신)


CPU (중앙처리장치 )

  1. 산술 논리 장치: 계산
  2. 제어 장치 : CPU의 두뇌역할 , 메모리에서 명령어를 가져와서 해석& 명령어 실행하기 위해 다른 장치들에게 제어 신호를 보냄.


메모리

  • 컴퓨터의 메모리는 크게 메인 & 보조 메모리로 나뉜다.
  • 메인메모리 : RAM & ROM 구성

RAM ( Random Access Memory )

  • 휘발성 메모리 , 전원이 꺼지면 데이터 소실, 일반적인 메모리 얘기할때, RAM을 의미

ROM ( Read Only Memory )

  • 비휘발성 메모리, 전원이 꺼져도 데이터 유지됨, 컴퓨터 부팅에 필요한 BIOS가 저장되어 있는 읽기전용 메모리

    🤔질문 | BIOS란 무엇일까?

    Basic Input Output System의 약자로 , 컴퓨터 킬 때 가장 먼저 실행되는 프로그램.

    주로 하드웨어가 정상적인지 검사하고, 정상인 경우 하드디스크나 SSD등에서 운영체제를 찾아 메모리로 불러오는 작업(부팅) 을 한다고 한다!.

    또한, 부팅 순서나 시스템 시간 + 메모리 정보 등 각종 하드웨어 설정을 관리하는 프로그램.


보조 메모리(부족한 용량을 보조하는 역할 )

  • 메인 메모리보다 , 속도는 느리지만 👉 용량이 크고, 비휘발성이라 소프트웨어를 저장하는데 사용.

  • 컴퓨터에 설치한 모든 프로그램들이 이 보조기억장치에 저장됨.

    • 하드디스크 : 내부의 디스크가 회전하여 데이터에 접근, 위치에 따라 접근속도가 다름.
    • SSD : 전기적으로 데이터에 접근, 하드디스크보다 빠른 속도 제공

캐시 메모리

  • CPU가 자주 사용하는 데이터를 RAM에서 미리 가져와 저장한다.

  • CPU는 이 데이터를 필요로 할 때, RAM까지 가지 않고, 캐시에서 바로 가져와서 처리 속도 높여준다.

    ####🤔캐시메모리는 어디에 위치하는가?

  • CPU레지스터와 별도로 구분되는 메모리 공간임.

  • 메인 메모리 : 앞으로 사용될 것 같은 데이터 미리 저장
    👉🏻 CPU에서 메인메모리 데이터를 참조시 속도가 더 빠른 캐시를 먼저 "조회 "
    👉🏻 만약 캐시 데이터가 있다면? 레지스터로 가져와 계산 진행 !

  • 크게 L1,L2,L3 나눠져 있음. 👉🏻 L1과 L2캐시는 CPU내부, L3는 CPU외부에 위치함.



비트와 바이트

비트(Bit)란?

  • 컴퓨터가 처리하는 데이터는 0과 1로 구성됨 ( 0과 1로 데이터와 명령어를 나타냄 )
  • 이러한 0과 1을 표형하는 기본 단위를 "비트" 라고 부름.
  • 1비트는 0또는 1로 표현 할 수 있어서 1bit = 2개
    • 즉 , 2의 1승 = 2

🤔질문 | 왜 컴퓨터는 0과1로만 표현? 다른 숫자는 NO?

1. 전기 신호의 단순성

  • 컴퓨터는 전기 신호로 작동함
  • 전기 신호는 두 가지 상태, 즉 켜짐(ON)꺼짐(OFF) 로 표현하는 게 가장 간단하고 안정적.
  • 0은 "전기 꺼짐(낮은 전압)", 1은 "전기 켜짐(높은 전압)"으로 매핑.


    2. 신뢰성과 오류 최소화
  • 0과 1 두 가지 상태만 다루면 신호를 구분하기 쉬움.
  • 예를 들어, 0은 0V, 1은 5V로 설정하면 중간 값(예: 2.5V)이 애매하게 혼동될 가능성이 적다.
  • 만약 0~9(십진수)를 직접 사용하려면, 전압을 10단계로 나눠야 함
  • (예: 0V, 0.5V, 1V, ..., 4.5V) 이건 하드웨어가 복잡해지고, 작은 전압 차이로 오류가 생길 확률이 높아짐.

    3. 효율적인 데이터 표현
  • 0과 1의 조합으로 모든 데이터를 표현할 수 있다.
  • 숫자, 문자, 이미지, 심지어 소리까지 이진수로 변환 가능!
  • 예: 문자 'A'는 ASCII 코드로 01000001(8비트). 숫자 5는 00000101.
  • 이진수로 모든 걸 표현할 수 있으니 다른 숫자 체계(예: 0~9)를 굳이 쓸 필요가 없다.

바이트(byte)란?

  • 8비트 = 1바이트 = 2⁸ = 256

32bit컴퓨터와 64bit컴퓨터

  • CPU내 구조와 레지스터에 대해 살펴보자

  • 이미지 처럼, CPU내에선 어떤 데이터값을 계산하고 결과값들을 레지스터에 저장을 한다.
  • 각 레지스터들은 여러개 존재하며, 해당 레지스터들은 1비트 단위로 저장하는 " 플리플롭 " 이라는 회로를 사용하여 비트를 저장한다.
  • 만약, 플립플롭 8개로 레지스터를 만들었으면 " 8비트 레지스터 " 라고 부름.

  • 즉, 이미지와 같이 산술논리연산 장치가 한번에 계산하는 단위는 32비트가 된다.
  • 그래서 32비트 CPU 라고 불리운다.
  • 64비트 컴퓨터 👉🏻 산술논리 연산장치가 한번에 계산하는 단위가 64비트임

무슨 차이가 있을까?

  • 한 큐에 처리되는 비트의 수가 다름 👉🏻 표현할 수 있는 데이터 수의 차이

  • 32비트 컴퓨터는 메모리 주소가 42억개 -> 사용가능한 RAM 메모리는 4기가만 가능

  • 메모리 크기가 4GB 뿐 👉🏻 게임이나 영상편집은 어려움

    RAM을 여러개 사서 설치하면 되지 않을까?

    그래도 소용 없음 , 애초에 레지스터의 주소 표현 갯수가 42억개로 제한되어 있어서 돈낭비임

  • 64비트 컴퓨터 👉🏻 18경 표현 가능

  • 컴퓨터의 속도(성능) 클럭속도, 명령어 최적화, 메모리와 레지스터간의 속도가 중요함.



강의 목표

  • 이번 강의에서 만들 컴퓨터 8비트 컴퓨터 만들 예정
  • CPU의 기본 레지스터가 8비트이며 버스의 크기도 최대 8비트.
profile
소금빵을 좋아하는 프론트앤드 0년차 개발자 취준생

0개의 댓글