본문 바로가기
개발 이론/CS

[CS] 컴퓨터 구조

by dal_been 2024. 2. 11.
728x90

이제 취준취준취준...해야지... CS도 다시 복습해야지...

 


 

컴퓨터의 핵심 4가지

 

컴퓨터의 핵심 부품음 중앙처리장치 (CPU), 주기억장치(메모리), 보조기억장치, 입출력장치이다.

가장 큰 사각형은 메인보드라고 한다면 메인보드 안에는

- 시스템 버스(양방향 수직 화살표)

- CPU (ALU(산술논리연산장치), 제어장치, 여러 레지스터) + 시스템버스와 연결

- 메모리 + 시스템 버스와 연결

- 보조기억장치 + 시스템 버스와 연결

- 입출력 장치(모니터, 키보드, 마우스) + 시스템 버스와 연결

 

 

▶ 메모리(RAM)

현재 실행되는 프로그램의 명령와 데이터를 저장하는 부품이다.

메모리에 저장된 값의 위치는 주소로 알 수 있다.

다만  가격이 비싸 용량이 적고 , 전원이 꺼지면 저장된 내용을 잃는다.

 

중앙처리장치(CPU)

컴퓨터의 두뇌이다.

CPU는 메모리에 저장된 명령어를 읽고 해석하여 실행하는 부품이다.

- ALU : 계산기로 비교와 연산 담당

- 레지스터 : CPU내부의 임시 작은 임시 저장 장치 + 프로그램 실행시 필요한 값들를 임시로 저장 + 속도가 빠른 데이터 기억 장소

- 제어장치 : 제어신호라는 전기신호를 내보내고 명령어를 해석하는 장치

   -> 메모리 읽기 : 메모리에 저장된 값을 읽고 싶을때 메모리를 향해 제어신호를 보냄

   -> 메모리 쓰기 : 메모리에 어떤 값을 저장하고 싶을때 메모리를 향해 제어신호를 보냄

 

CPU의 과정 엿보기

1. 제어장치에서 메모리에게 "메모리 읽기" 제어신호를 보냄

2. 메모리는 저장된 명령어를 CPU건네주고 이 명령어를 레지스터에 저장

3. 제어장치는 읽어들인 명령어를 해석한뒤 필요한 데이터를 메모리에게 "메모리 읽기" 신호를 보냄

4. 메모리는 저장된 데이터를 CPU에게 건네주고 데이터들을 서로다른 레지스터에 저장

5. 제어장치 ALU는 데이터로 연산 수행하고 결과값을 레지스터에 저장

6. 제어장치는 다음 명령어를 읽어들이기 위해 1,2번과정 진행하여 메모리에 결과값을 저장해야한다고 판단

7. 제어장치는 메모리에게 "메모리 쓰기" 제어 신호와 함께 계산결과를 보냄

 

 

▶ 보조기억장치

전원이 꺼져도 저장된 내용을 잃지 않는 메모리

앞선 메모리는 명령어와 데이터를 저장하지만 가격이 비싸 용량이 적고 , 전원이 꺼지면 저장된 내용을 잃는다는 단점이 존재한다.

이에 보조기억장치를 통해 전원이 꺼져도 내용을 잃지 않게 해주었다

(하드 디스크, SSD, USB, DVD등)

 

 

  입출력 장치

마이크,스피커, 프린터,마우스 등 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치

 

 

▶ 시스템 버스

CPU, 메모리, 보조기억장치, 입출력장치 네가지 부품이 서로 정보를 주고 받는 통로

 

- 주소버스 : 데이터를 정확히 실어나르기 위해 기억장치 주소를 정해줘야하함 + 중앙처리장치가 주기억장치나 입출력 장치로 기억장치주소를 전달하는 통로라 단방향

- 데이터 버스 : 명령어와 데이터를 주고받는 통로 + 양방향

- 제어버스 : 주소버스와 데이터버스는 모든 장치에 공유되기 때문에 제어할 수단이 필요 + 제어신호(읽기,쓰기) 전달하는 양방향

 

CPU과정 시스템버스와 함께 엿보기

1. CPU 제어장치에서 "메모리 읽기" 신호를 보냄. 다만 CPU가 제어신호만 보내는 것이 아니라 제어신호 "메모리읽기" + 주소버스 "읽고자하는 주소"를 보냄

-> 주소버스와 제어버스 이용

2. 메모리는 데이터버스로 CPU가 요청한 주소에 있는 내용 전송

3. 이후 메모리에 저장할때도 CPU는 데이터 버스에 "저장할 값" + 주소보스 "저장할 주소" + 제어버스 "메모리 쓰기" 신호를 보냄 

'개발 이론 > CS' 카테고리의 다른 글

[CS] 소스코드와 명령어  (1) 2024.02.12