[컴퓨터 구조를 알아야 하는 이유?]
1. 문제 해결 능력
2. 성능과 기능, 비용을 고려한 개발
처음 프로그래밍 공부를 시작하면 보통 컴퓨터 언어와 문법을 배운다고 생각한다.
프로그래밍 언어 문법만으로는 해결하기 어려운 문제들은 컴퓨터의 구조와 운영체제를 알게 된다면 컴퓨터를 관조할 수 있는 능력을 기를 수 있게 된다.
[컴퓨터 구조의 큰 그림]
1. 컴퓨터구조 - 컴퓨터가 이해하는 정보
1). 데이터
- 숫자, 문자, 이미지 동영상 등 정적인 정보를 뜻한다.
- 0과 1로 숫자, 문자를 표현하는 방법
2). 명령어
- 컴퓨터는 명령어를 처리하는 기계
- 명령어의 생김새와 동작 방식
* 컴퓨터를 실질적으로 움직이는 정보이자 데이터는 명령어를 위한 일종의 재료이다.
ex) 1과 2를 더하라
여기서 1과 2는 데이터이고
'1과 2를 더하라' 라는 내용은 명령어이다.
2. 컴퓨터구조 - 컴퓨터의 네 가지 핵심 부품
컴퓨터의 핵심 부품은 컴퓨터의 종류와 상관이 없다.
컴퓨터의 네 가지 핵심 부품에는 CPU, 메모리(RAM, ROM), 보조기억장치, 입출력장치가 있다.
* 메모리 = 주기억장치 (실질적으로 동작시키는 하드웨어는 RAM이 ROM보다 더 중요한 역할을 한다. )
[CPU]
- 컴퓨터의 두뇌
- 메모리에 저장 된 명령어를 읽어 들이고 해석, 실행하는 장치이.
- 내부 구성부품: ALU, 제어장치, 레지스터
- ALU: 계산기/ 산술논리연산장치 계산을 위한 회로모음
- 레지스터: CPU 내부의 작은 저장 장치
- 제어장치: 제어신호(컴퓨터 부품들을 관리하고 작동시키기 위한 전기신호) 를 내보내고, 명령어를 해석하는 장치
제어신호:
- CPU가 메모리에 저장된 값을 읽고 싶을 땐 메모리를 향해 메모리 읽기 라는 제어신호를 보낸다.
- CPU가 메모리에 어떤 값을 저장하고 싶을 땐 메모리를 향해 메모리 쓰기 라는 신호를 보낸다.
메모리에 있는 값을 CPU 레지스터에 담는다.
레지스터로 읽어들인 명령어를 제어장치 명령어를 해석한다.
명령어를 실행하기 위해서 필요한 데이터를 메모리 읽기 신호를 통해 메모리에서 가져온다.
각각 필요한 데이터를 레지스터로 가져온다.
명령어에 대한 계산을 수행하기 위헤 ALU는 각 레지스터에 있는 데이터를 가져온 후 연산한다.
해당 결과를 레지스터에 쓰게 된다.
[RAM]
- 현재 실행되는 프로그램(프로세스) 의 명령어와 데이터를 저장하는 부품
- 프로세스가 실행되기 위해서는 명령어와 데이터가 모두 메모리안에 저장한다.
- 메모리에는 주소의 개념을 갖고 있다.
주소라는 개념을 통해서 필요로하는 저장되어 있는 데이터와 명령어를 찾아간다.
[보조기억장치]
- 필요한 이유: 메모리는 (RAM) 비싸고 전원이 꺼지면 내용을 잃는 휘발성 저장장치의 특성을 갖고 있다.
- 전원이 꺼져도 프로그램을 보관할 수 있는 저장 장치이다.
- 메모리는 실행 할 정보를 저장하고 보조기억장치는 보관할 정보를 저장한다.
- 실행은 되고 있지 않지만 설치가 된 파일은 보조기억장치에 저장되어 있다.
ex) pc카카오톡
[입출력장치]
- 마이크, 마우스, 카메라 등등..
- 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 부품이다.
- 보조기억장치와 입출력장치의 차이점?
보조기억장치와 입출력장치는 딱 잘라서 구분되는 개념은 아니다.
다만 보조기억장치는 메모리를 보조하는 개념의 입출력장치이다.
[메인보드]
- 메인보드 안에는 컴퓨터의 핵심부품 4가지를 모두 부착시킨다.
- 메인보드에는 여러가지 슬롯과 연결단자들이 있다.
- 정보를 주고 받을 수 있는 통로/ 회로를 버스라고 하고 다양한 종류의 버스가 있다.
- 연결된 부품들이 버스를 타고 서로 정보를 주고 받을 수 있게 된다.
- 시스템 버스: 컴퓨터의 핵심부품을 연결하는 버스는 가장 중요한 시스템 버스라고 한다. (= 척추)
시스템 버스
- 주소버스: 주소를 주고받는 통로
- 데이터버스: 명령어와 데이터를 주고받는 통로
- 제어버스: 제어 신호를 주고받는 통로
메모리를 실행하는 버스는 제어신호를 통해 메모리 읽기, 쓰기를 갖게 된다.
'CS > 컴퓨터구조와운영체제' 카테고리의 다른 글
장치 컨트롤러와 장치 드라이버 (0) | 2023.07.01 |
---|---|
RAM의 특성과 종류 (0) | 2023.06.06 |
컴퓨터구조_빠른 CPU 설계 기법 (0) | 2023.05.20 |
CPU 내부 구성 (0) | 2023.05.17 |
컴퓨터구조_소스 코드와 명령어 (0) | 2023.05.14 |
댓글