오늘은 컴퓨터 구조에 대해서 정리해 봤다. 컴퓨터 구조를 정확하게는 모르고 있기 때문에 운영 체제가 어떻게 동작하는지를 이해하는 데에도 어려움이 있었어서 정리 해보면 좋을 것 같다고 생각을 했었다.
컴퓨터 구성요소
컴퓨터 구성요소는 크게 소프트웨어와 하드웨어로 이루어져 있다. 하드웨어는 크게 CPU, 메모리, 디스크, 입출력장치(IO),메인보드와 시스템 버스로 나누어져 있다. 그리고 소프트 웨어는 크게 나누어져 있진 않고 시스템 소프트웨어, 응용 소프트웨어가 있다.
먼저 하드웨어에 대한 설명을 해보도록 한다.
CPU
CPU는 Central Processing Unit 즉 중앙 처리 장치라고 한다. 중앙 처리장치란 연산 작용을 하는 것이다. 프로그램이라는 것에 속해 있는 명령어나 함수를 열심히 수행하고 그 명령어나 함수는 연산의 연속이다.
CPU는
- 프로세서 레지스터
- 처리할 명령어를 저장하는 역할
- CPU 안에서 연산을 처리하기 위해 데이터를 저장하는 공간
- 산술논리 연산장치(ALU)
- 비교, 판단, 연산을 담당
- 제어장치
- 제어 신호라는 전기 신호를 보내고 명령어를 해석하는 장치.
- 제어 신호는 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호이다.
- 제어 신호라는 전기 신호를 보내고 명령어를 해석하는 장치.
로 구성되어 있다.
프로세서 레지스터(Processor Register)란?
- 단순히 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억 장소.
- 일반적으로 현재 연산을 수행중인 값을 저장하는 데 사용된다.
- 프로세서에 위치한 고속 메모리로 극히 소량의 데이터나 처리 중인 중간 결과와도 같은 프로세서가 바로 사용할 수 있는 데이터를 담고 있는 영역을 레지스터라고 한다. 컴퓨터 구조에 따라 크기와 종류가 다양하다. 용도에 따라 범용 레지스터와 특수 목적 레지스터 등 여러 종류의 레지스터가 있다.
- 범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장한다. 데이터와 주소를 모두 저장할 수 있는 레지스터
- 특수 목적 레지스터 : 특별한 용도로 사용하는 레지스터이다. 프로그램의 상태를 저장하는 레지스터
산술논리 연산장치(Arithmetic Logic Unit) 란?
- 쉽게 생각하면 계산기이다. 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 담당해 수행한다.
- 덧셈, 뺄셈 같은 두 숫자의 산술 연산과 AND, OR, XOR 등 논리연산을 계산하는 디지털 회로이다.
제어장치 란?
- 제어 신호라는 전기 신호를 내보내고 명령어를 해석하는 장치이다.
- 제어 신호(Control Signal)란 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호이다.
- CPU가 메모리에 저장된 값을 읽고 싶을 땐 메모리를 향해 메모리 읽기라는 제어 신호를 보낸다.
- CPU가 메모리에 어떤 값을 저장하고 싶을 땐 메모리를 향해 메모리 쓰기라는 제어 신호를 보낸다.
주기억장치
주기억장치는 컴퓨터 내부에서 현재 CPU가 처리하고 있는 내용을 저장하고 있는 기억장치이다.
비교적 용량이 크고 처리 속도가 빠르다. 특징은 CPU의 명령에 의해 기억된 장소에 직접 접근하여 읽고 쓸 수가 있다.
종류에는 ROM(Read Only Memory), RAM(Random Access Memory) 가 있다.
- ROM
- 기억된 내용을 읽을 수만 있는 기억장치며 일반적으로 쓰기는 불가능하다.
- 전원이 실제로 꺼져도 기록된 데이터가 지워지지 않는 비 휘발성 메모리이다.
- 데이터를 한번 저장하면 수정할 수 없지만 PROM, EPROM, EEPROM 등 특수한 방법으로 데이터를 다시 쓸 수 있다.
- RAM
- ROM과 달리 읽고 쓰기가 가능하고, 응용 프로그램, 운영체제 등을 불러와 CPU가 작업할 수 있도록 하는 기억장치
- 전원이 꺼지면 기억된 내용이 모두 사라지는 휘발성 메모리이다.
- 일반적으로 주기억장치 또는 메모리라고 하면 RAM을 의미한다.
- 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품
- 메모리에 저장된 값의 위치는 메모리 번지라는 공간에 저장되어 있어 그 위치는 address 로 알 수 있다.
- 저장된 데이터의 원하는 곳에 접근이 가능하다.
보조기억장치
보조기억장치란 중앙처리장치(CPU)가 아닌 프로그램이나 데이터를 저장하기 위한 저장장치를 말한다.
주기억장치 같은 경우 휘발성 메모리로서 컴퓨터의 전원이 꺼지면 저장된 내용을 잃는데, 보조기억장치 같은 경우 영구적으로 데이터를 저장할 수 있다. 메모리가 현재 '실행되는' 프로그램을 저장한다면, 보조기억장치는 '보관할' 프로그램을 저장한다.
보조기억 장치의 종류로는 HDD(Hard Disk Driver)와 SSD(Solid State Driver)가 있다.
- HDD
- 물리적인 디스크를 고속으로 회전시켜 데이터를 저장하는 장치
- 디스크에 물리적으로 저장하기 때문에 충격에 약하며, 소음이 발생한다.
- SSD
- 전기적으로 데이터를 저장하고 HDD에 비해 속도가 월등히 빠르며, 소음이 발생하지 않는다
- HDD에 비해 가격이 비싸다는 단점이 있다.
입출력장치
입출력장치는 컴퓨터와 사용자 사이의 정보를 교환할 수 있는 장치의 집합을 말한다. 입출력장치는 주변장치라고도 한다.
입력장치는 문자, 목소리, 그림, 숫자 등의 자료를 컴퓨터 내부로 입력하는 장치이다. (키보드, 마우스 등의 장치)
출력장치는 컴퓨터 내부에서 처리한 정보를 인간이 인지할 수 있는 다양한 형태로 변환하여 외부로 표현하는 장치이다. (모니터 등의 장치)
메인보드와 시스템 버스
위에 나열되어 있는 모든 컴퓨터의 핵심 부품들은 메인보드라는 판에 연결된다. 메인보드는 마더보드라고도 한다.
메인보드에 연결된 부품들은 메인보드 내부에 있는 버스라는 통로를 통해 서로 정보를 주고 받는다.
여러 버스 가운데 컴퓨터의 네 가지 핵심 부품(CPU, 메모리, 보조기억장치, 입출력장치)을 연결하는 가장 중요한 버스는 시스템 버스이다.
시스템 버스는 주소 버스, 데이터 버스, 제어 버스로 구성되어 있다.
- 주소 버스
- 주소를 주고받는 통로
- 데이터 버스
- 명령어와 데이터를 주고받는 통로
- 제어 버스
- 제어 신호를 주고받는 통로
CPU가 메모리 속 명령어를 읽기 위해 제어장치에서 '메모리 읽기'라는 신호를 보낸다. 실제로는 CPU가 메모리를 읽을 때 제어 신호만 보내지 않고 일련의 과정을 거친다.
1. 제어 버스로 '메모리 읽기' 제어 신호를 보내고, 2. 주소 버스로 읽고자 하는 주소를 보내고, 3. 메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용을 보낸다.
또한 메모리에 어떤 값을 저장할 때도 1. CPU는 데이터 버스를 통해 메모리에 저장할 값을 보내고, 2. 주소 버스를 통해 데이터를 저장할 주소를 보내고, 3. 제어 버스를 통해 '메모리 쓰기' 제어 신호를 보낸다.
내 생각
뭔가 한 링크만 보고 작성한 것 같기도 한데 너무 잘 되어 있어서 참고를 많이 했다.
이전에는 이렇게 까지 컴퓨터의 구조에 대해 하나하나 그리고 어떻게 동작하는 지 뜯어 보지를 않았었는데 깊이 있게 확인할 수 있는 기회가 되었다.
[참조] :
https://velog.io/@leeyoungwoozz/CS-CPU%EB%9E%80
https://mindstation.tistory.com/152
'CS 지식' 카테고리의 다른 글
Kafka란? (2) | 2023.09.30 |
---|---|
서킷 브레이커(Circuit Breaker)란? (0) | 2023.09.25 |
비동기와 동기란? (0) | 2023.07.25 |
트레이싱(Tracing)이란? (0) | 2023.07.19 |
DB Clustering이란? (0) | 2023.07.18 |