본문 바로가기

Study_C, C++/홍정모의 따라하며 배우는 C언어

[홍정모의 따라하며 배우는 C언어] 0.4-컴퓨터는 왜 2진수를 사용할까? ~ 0.6-컴퓨터 메모리의 기본 구조

728x90

0.4 컴퓨터는 왜 2진수를 사용할까?

  • 컴퓨터는 다양한 정보들을 모두 숫자(0,1)로 바꿔서 처리함
    • 에디슨 효과를 이용해 진공관에서 전자를 생성하고 그 전자가 음극에서 양극으로 흐르게 함(켜짐) / 흐르지 못하게 함(꺼짐) 을 제어함 -> 컴퓨터에서 2진수를 사용하는 근본적인 이유

- 벨 연구소에서의 트랜지스터의 발견

  • 기능은 진공관과 유사하나 안정성이 뛰어나고 훨씬 작음
  • 반도체를 이용해 만듦 (실리콘이 반도체의 대표적인 예시)

 

 

 

  • Base에 들어오는 전압을 조절하여 전기가 Collector에서 Emitter로 흐를지 말지를 결정
  • 작은 전기신호(Vin)로 큰 신호를 제어할 수 있음
  • 이를 기반으로 현대의 디지털 기기들이 발전

 

 

 

  • IC (Integrated Circuit) : 다수의 트랜지스터들을 집어넣음

 

0.5 현대적 컴퓨터의 기본 구조

- CPU와 메모리가 협력해서 기능하는 것이 컴퓨터의 구조

  • 앨런 튜링 : "컴퓨터 과학의 아버지". 알고리즘, 계산 개념을 '튜링 기계' 라는 추상 모델을 통해 형식화하여 컴퓨터 과학의 발전에 큰 공헌을 함

Turing Machine

 

  • 폰 노이만 : 지금의 컴퓨터 구조를 직접적으로 제안한 사람. 
  • CPU와 Memory를 최초로 분리시킴

폰 노이만 구조

  • 입/출력 구조는 OS가 알아서 처리해주므로 프로그래머가 신경을 덜 씀
  • 시간이 지날수록 프로그램이 복잡해져 데이터 메모리와 명령어(프로그램 메모리)가 한 통로로 들어가 기억장치에 병목현상 발생
  • 이를 해결하고자 하버드 구조가 나타남

 

하버드 구조

  • 명령어 버스와 데이터 버스를 물리적으로 분할한 구조
  • 폰 노이만 구조와 달리 CPU가 명령어와 데이터에 동시에 접근 가능

 

  • 현재는 위처럼 CPU 외부적으로는 폰 노이만 구조, 내부적으로는 하버드 구조를 적용하여 속도를 높임

 

 

0.6 컴퓨터 메모리의 기본 구조

CPU <->메모리

  • 메모리에 있는 프로그램을 CPU가 하나씩 가져오며 실행시키고, 그 결과를 다시 메모리에 전달하여 저장시킴
  • 캐쉬 메모리(Cache Memory)가 위의 과정에서 쓰이는데, 이는 자주 쓰이는 메모리를 저장하는 것으로, 메인 메모리와 CPU간의 데이터 속도 향상을 위한 중간 버퍼 역할을 하는 CPU내 또는 외에 존재하는 메모리이다.
    • 캐쉬 메모리는 메모리 계층 구조에서 가장 빠른 속도를 가지는 소자로, 처리 속도가 CPU와 유사하다
    • RAM에서 데이터를 꺼내는 속도가 CPU의 처리 속도보다 느린데, 이때 캐쉬 메모리가 CPU와 메모리 사이에 위치하여 데이터를 고속으로 전달함
    • 캐쉬 메모리 사용을 통해 메모리로의 접근 횟수를 줄여 컴퓨터의 처리 속도를 높임
    • 캐쉬 메모리는 수KB~수MB 정도의 크기를 가짐

 

  • 순차 접근(Sequential Access) :  Cell을 하나하나 뒤져가며 찾음. 자기 테이프 등에서 쓰임
  • 임의 접근(Random Access) : 찾고자 하는 위치로 바로 접근

CPU 동작 원리 - 임의 접근이 가능하게 하기 위해 주소와 데이터의 이동 경로가 분리 되어 있음

  • Control Bus : 데이터를 불러올 때 읽을지 쓸지를 결정
  • Data Bus : 데이터가 이동하는 경로
  • Address Bus : 데이터의 주소가 이동하는 경로. 주소값은 CPU->메모리 방향으로만 이동
  • RAM은 데이터를 CPU에 주고 받는 기능만 함

**Address Bus로 Random Access를 하기 위해 Pointer가 존재 (주소에 직접 접근)**

  • 주소에 직접 접근시 프로그램을 더 세세하게 제어할 수 있음 -> 하드웨어 제어에 유리. 처리 속도가 빠름

강의 출처 : https://www.inflearn.com/course/following-c/dashboard

 

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원

www.inflearn.com