728x90
0.4 컴퓨터는 왜 2진수를 사용할까?
- 컴퓨터는 다양한 정보들을 모두 숫자(0,1)로 바꿔서 처리함
- 에디슨 효과를 이용해 진공관에서 전자를 생성하고 그 전자가 음극에서 양극으로 흐르게 함(켜짐) / 흐르지 못하게 함(꺼짐) 을 제어함 -> 컴퓨터에서 2진수를 사용하는 근본적인 이유
- 벨 연구소에서의 트랜지스터의 발견
- 기능은 진공관과 유사하나 안정성이 뛰어나고 훨씬 작음
- 반도체를 이용해 만듦 (실리콘이 반도체의 대표적인 예시)
- Base에 들어오는 전압을 조절하여 전기가 Collector에서 Emitter로 흐를지 말지를 결정
- 작은 전기신호(Vin)로 큰 신호를 제어할 수 있음
- 이를 기반으로 현대의 디지털 기기들이 발전
- IC (Integrated Circuit) : 다수의 트랜지스터들을 집어넣음
0.5 현대적 컴퓨터의 기본 구조
- CPU와 메모리가 협력해서 기능하는 것이 컴퓨터의 구조
- 앨런 튜링 : "컴퓨터 과학의 아버지". 알고리즘, 계산 개념을 '튜링 기계' 라는 추상 모델을 통해 형식화하여 컴퓨터 과학의 발전에 큰 공헌을 함
- 폰 노이만 : 지금의 컴퓨터 구조를 직접적으로 제안한 사람.
- CPU와 Memory를 최초로 분리시킴
- 입/출력 구조는 OS가 알아서 처리해주므로 프로그래머가 신경을 덜 씀
- 시간이 지날수록 프로그램이 복잡해져 데이터 메모리와 명령어(프로그램 메모리)가 한 통로로 들어가 기억장치에 병목현상 발생
- 이를 해결하고자 하버드 구조가 나타남
- 명령어 버스와 데이터 버스를 물리적으로 분할한 구조
- 폰 노이만 구조와 달리 CPU가 명령어와 데이터에 동시에 접근 가능
- 현재는 위처럼 CPU 외부적으로는 폰 노이만 구조, 내부적으로는 하버드 구조를 적용하여 속도를 높임
0.6 컴퓨터 메모리의 기본 구조
CPU <->메모리
- 메모리에 있는 프로그램을 CPU가 하나씩 가져오며 실행시키고, 그 결과를 다시 메모리에 전달하여 저장시킴
- 캐쉬 메모리(Cache Memory)가 위의 과정에서 쓰이는데, 이는 자주 쓰이는 메모리를 저장하는 것으로, 메인 메모리와 CPU간의 데이터 속도 향상을 위한 중간 버퍼 역할을 하는 CPU내 또는 외에 존재하는 메모리이다.
- 캐쉬 메모리는 메모리 계층 구조에서 가장 빠른 속도를 가지는 소자로, 처리 속도가 CPU와 유사하다
- RAM에서 데이터를 꺼내는 속도가 CPU의 처리 속도보다 느린데, 이때 캐쉬 메모리가 CPU와 메모리 사이에 위치하여 데이터를 고속으로 전달함
- 캐쉬 메모리 사용을 통해 메모리로의 접근 횟수를 줄여 컴퓨터의 처리 속도를 높임
- 캐쉬 메모리는 수KB~수MB 정도의 크기를 가짐
- 순차 접근(Sequential Access) : Cell을 하나하나 뒤져가며 찾음. 자기 테이프 등에서 쓰임
- 임의 접근(Random Access) : 찾고자 하는 위치로 바로 접근
- Control Bus : 데이터를 불러올 때 읽을지 쓸지를 결정
- Data Bus : 데이터가 이동하는 경로
- Address Bus : 데이터의 주소가 이동하는 경로. 주소값은 CPU->메모리 방향으로만 이동
- RAM은 데이터를 CPU에 주고 받는 기능만 함
**Address Bus로 Random Access를 하기 위해 Pointer가 존재 (주소에 직접 접근)**
- 주소에 직접 접근시 프로그램을 더 세세하게 제어할 수 있음 -> 하드웨어 제어에 유리. 처리 속도가 빠름
강의 출처 : https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 1.5 통합개발환경 소개 ~ 1.7 비주얼 스튜디오 2019의 기본적인 사용법 (0) | 2021.07.02 |
---|---|
[홍정모의 따라하며 배우는 C언어] 1.1 C언어의 탄생 ~ 1.4 소프트웨어 개발의 7가지 단계 (0) | 2021.07.01 |
[홍정모의 따라하며 배우는 C언어] 0.9 정보의 단위 ~ 1.0 C언어를 제대로 배우는 방법 (0) | 2021.06.30 |
[홍정모의 따라하며 배우는 C언어] 0.7 CPU의 기본 구조 ~ 0.8 CPU가 일하는 방법 (0) | 2021.06.29 |
[홍정모의 따라하며 배우는 C언어] 0.1-컴퓨터의 구성 요소들 ~ 0.3 운영체제가 해주는 일들 (0) | 2021.06.29 |