일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- over()
- CPU
- 객체지향
- 입출력
- java
- spring security 설정
- 자바의정석
- SQL Mapper
- break 사용법
- 자바의 정석
- 멀티프로세싱
- 붕대 감기
- 캡슐화
- 중첩 break
- contiune
- 티스토리챌린지
- 리눅스
- 프로그래머스
- spring security
- hackerrank
- 혼공얄코
- 멀티태스킹
- 다형성
- continue 사용법
- 오버라이딩
- 오블완
- 붕대 감기 자바
- 프로그래머스 붕대 감기
- 쿠키
- 오버로딩
- Today
- Total
쉽게 쉽게
컴퓨터 구성요소 본문
'혼자 공부하는 얄팍한 코딩 지식'을 읽으며 추가적으로 공부한 내용을 정리한 글입니다.
컴퓨터의 구성요소는 연산을 담당하는 CPU, 기억을 담당하는 Memory, 그리고 다양한 입출력 장치(모니터, 키보드, 마우스, 프린터)로 구성된다.
컴퓨터를 구성하는 핵심 요소와 그것들이 작동하는 방식에 대해 알아보겠다.
1. CPU(Central Processing Unit)
CPU는 중앙처리장치로 명령어의 해석과 자료의 연산, 비교 등의 처리를 제어하는 핵심장치이다.
컴퓨터에 주어진 일들을 해내는 주체로, 다른 컴퓨터의 구성 요소와 정보를 주고받으면서 사실상 컴퓨터에서 이뤄지는 모든 일을 관할한다.(컴퓨터의 뇌)
CPU의 구성
CPU는 비교와 연산을 담당하는 산술논리연산장치(ALU)와 명령어의 해석과 실행을 담당하는 제어장치, 속도가 빠른 데이터 기억장소인 레지스터로 구성되어 있다.
(1) 산술논리연산장치(ALU: Arithmetic Logic Unit)
산술적인 연산과 논리적인 연산을 담당하는 장치로 가산기, 보수기, 누산기, 기억 레지스터, 데이터 레지스터 등으로 구성된다. 캐시나 메모리로부터 읽어 온 데이터는 레지스터(Register)라는 CPU 전용의 기억장소에 저장되며, ALU는 레지스터에 저장된 데이터를 이용하여 덧셈, 곱셈 등과 같은 산술 연산을 수행한다.
연산장치는 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보내 저장한다.
(2) 제어장치
CPU가 자신 및 주변기기들을 컨트롤하는 장치로 명령어를 순서대로 실행할 수 있도록 제어한다.
프로그램의 수행 순서를 제어하는 프로그램 계수기(program counter), 현재 수행 중인 명령어의 내용을 임시 기억하는 명령 레지스터(instruction register), 명령 레지스터에 수록된 명령을 해독하여 수행될 장치에 제어신호를 보내는 명령해독기(instruction decoder)로 이루어져 있다.
제어장치는 주기억장치에서 프로그램 명령어를 꺼내 해독한 다음, 해독한 결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력 장치로 보낸다.
또한 이들 장치가 보낸 신호를 받아 다음에 수행할 동작을 결정한다.
(3) 레지스터(Register)
중앙처리장치(CPU) 내부에 있는 기억장치이다.
연산에 필요한 데이터, 연산 결과, 명령어 주소, 명령어 코드 등을 임시로 저장한다.
주로 산술 연산 논리장치에 의해 사용되는 범용 레지스터(General-Purpose Register)와 PC 등 특수 목적에 사용되는 전용 레지스터(Dedicated-Purpose Register)로 구분할 수 있다.
특수 목적 레지스터의 종류는 IR(Instruction Register), PC(Program Counter), AC(Accumulator) 등이 있다. 각각 CPU의 내의 메모리로 다음과 같이 사용된다.
- IR(Instruction Register) : 현재 실행 중인 명령어 저장
- PC(Program Counter) : 다음에 수행할 명령어 주소 저장
- AC(Accumulator, 누산기) : 연산 결과 임시 저장
- MBR(메모리 버퍼 레지스터) : 주기억장치에서 읽어온 데이터 or 저장할 데이터 임시 저장
- MAR(메모리 주소 레지스터) : 읽기와 쓰기 연산을 수행할 주기억장치 주소 저장
CPU의 동작과정
1. 주기억 장치는 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어온다.
2. CPU는 프로그램을 실행하기 위해 주기억장치에서 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 주기억장치에 저장한다.
3. 주기억장치는 처리결과를 보조기억 장치에 저장하거나 출력장치로 보낸다.
4. 제어장치는 1~3 과정에서 명령어가 순서대로 실행되도록 각 장치를 제어한다.
CPU의 성능
CPU의 성능을 나타내는 지표는 코어, 스레드, 클럭이 있다.
(1) 코어
코어는 CPU 중에서도 가장 핵심이 되는 부품이다.
CPU에서 코어(core)는 연산 작업을 수행하는 핵심적인 부분이며, CPU의 성능을 판단하는 기준 중 하나가 바로 ‘코어의 수’다.
CPU에 코어가 많아지면 연산을 여러 개의 코어가 처리하기 때문에 훨씬 빠른 일 처리가 가능해진다.
과거에는 하나의 CPU가 한 개의 코어를 가지고 코어의 속도를 높여가는 방식으로 발전했지만 CPU를 일정 속도 이상까지 끌어올리면 발열이 생기는 등의 문제가 발생하여 여러 개의 코어를 탑재하는 방식을 택하기 시작했다.
지금은 하나 또는 두 개의 다이에 여러 개의 코어가 있는 ‘멀티 코어’ 형태로 출시되고 있으며, 8개의 코어까지 들어간 CPU도 존재한다.
2 코어 CPU는 동시에 두 개의 작업을 처리할 수 있으므로 이론적으로 1코어 CPU보다 2배 많은 작업을 동시에 처리할 수 있지만 여기서 중요한 것은, 한번에 처리하는 작업량이 2배가 된다는 것이지, 속도가 2배가 된다는 것은 아니다.
(어떤 작업이냐에 따라 1코어 CPU가 2코어 CPU보다 성능이 좋을 수도 있다.)
(2) 클럭
클럭(clock)이란 코어의 속도를 나타내며 단위는 기가헤르츠(GHZ)이다.
클럭은 1초 동안 파장이 한 번 움직이는 시간을 의미하는데, 이 시간 동안 처리하는 데이터 양에 따라 CPU의 속도가 달라지게 된다.
과거, CPU의 성능을 높이는 가장 편리한 방법은 클럭(동작 주파수)을 올리는 것이었지만 클럭이 높아질수록 발열량과 소비 전력이 커지는 문제가 발생하였다.
따라서 최근에는 클럭을 일정 수준으로 유지하는 대신, ‘멀티 코어’나 ‘멀티 스레드’ 같은 방식으로 CPU 성능을 높이고 있다.
이를 통해 하나의 CPU로 동시에 처리할 수 있는 연산 개수를 늘려 연산 능력 향상을 꾀하는 것이다.
고속도로를 지나가는 자동차가 데이터라면, 클럭(동작 주파수)은 고속도로의 ‘제한 속도’를, 코어 수는 고속도로의 ‘차선 수’로 비유할 수 있다. 1차선 고속도로에서는 순서대로 자동차 한 대씩만 지나갈 수 있지만, 2차선 고속도로에서는 동시에 2대의 자동차가 지나갈 수도 있다.
(3) 스레드
스레드(thread)란 CPU 내부에서 실질적으로 업무를 수행하는 가장 작은 단위이다.
동시에 동작하는 스레드의 수는 각 CPU의 기능과 코어의 수에 따라 달라지게 된다.
일반적으로 ‘1개의 코어=1개의 스레드’라는 공식이 성립하지만, 인텔의 ‘하이퍼스레딩(Hyperthreading)’ 기술을 통해 1개의 코어에서 2개의 스레드를 만들 수도 있다.
(1 코어 2 스레드란 뜻은 하나의 로봇으로 두 대의 로봇이 일하는 듯한 효율을 낼 수 있다는 뜻이 된다.)
예를 들어 2 코어 4 스레드 사양의 CPU를 장착한 컴퓨터의 정보를 열어보면 4 코어가 설치되어 있다고 인식한다.
자신이 사용하는 서버의 CPU가 지원하는 스레드 형태를 알고 싶다면, 작업 관리자에서 성능을 확인하면 알 수 있다.
2. 메모리(Memory)
데이터를 임시 또는 영구적으로 보관할 수 있는 공간을 메모리라고 한다.
메모리는 주기억장치와 보조기억장치로 나누어진다.
주기억장치는 CPU와 직접 자료를 교환할 수 있는 기억 장치로 프로그램 수행에 필요한 기본적인 명령어와 데이터를 기억한다.
보조 기억 장치보다 접근 속도가 매우 빠르며 순간적인 내용을 찾고 저장할 수 있다.
주기억 장치는 임의접근 기억 장치(RAM: Random Access Memory)와 읽기용 기억 장치(ROM: Read Only Memory)로 나누어지고 주로 RAM을 사용한다.(RAM을 메인 메모리라고도 한다.)
임의접근이란 메모리 어느 위치에 있는 데이터든지 같은 속도로 읽고 쓸 수 있다는 뜻(요리 탁자 어디에 재료를 두어도 집는 데 걸리는 시간은 거의 차이가 없다)
RAM과 ROM의 차이
RAM과 ROM의 차이
ROM은 내용을 읽을 수는 있어도 바꿀 수는 없는 기억 장치(메모리). RAM은 읽고 쓰기가 모두 가능하다.
롬(ROM)은 컴퓨터의 전원이 끊어져도 그 내용이 변함없이 유지되므로 보통 컴퓨터에 기본적인 운영 체제 기능이나 언어의 해석 장치(interpreter)를 내장시키기 위해 이용된다.
보조기억장치는 하드디스크, SSD, USB 등을 말하며, 주기억장치에 비해 속도는 느리지만 많은 자료를 영구적으로 보관할 수 있는 장점이 있다.
보조기억장치의 용량이 크면 파일과 프로그램을 많이 저장해 둘 수 있다.
CPU는 보조 기억 장치에서 프로그램의 코드와 필요한 데이터를 꺼내어 메인 메모리(RAM)에 올려놓고 작업을 한다.
메모리와 함께 사용되는 또 다른 형태의 기억 장치로 캐시가 있다.
캐시 메모리는 CPU 내부에서 임시로 사용하는 버퍼(Buffer) 메모리 중 하나이다.
실제 메모리와 CPU 사이에서 빠르게 전달을 위해서 미리 데이터들을 저장해 두는 좀 더 빠른 메모리이다.
네트워크에서 캐시는 로컬에 파일을 미리 받아놓고, 그 내용을 보거나 웹서버에서도 매번 로딩을 해야 하는 파일들을 미리 로딩해 두고, 응답을 주기도 한다. 데이터 베이스를 매번 확인해야 하는 것도 캐시서버를 이용한다면 빠른 응답을 해줄 수 있다.
캐시를 사용함으로써 CPU는 자주 사용하는 데이터를 바로바로 사용할 수 있다.
3. 입출력 장치
입출력 장치는 다른 말로 I/O(Input/Output)라고 한다.
입력 장치로 가장 많이 쓰이는 것은 키보드와 마우스이다.
이 외에도 시각적 정보를 받는 웹캠과 스캐너, 소리를 입력받는 마이크 등도 입력 장치에 속한다.
대표적인 출력 장치는 모니터다.
또 다른 출력 장치로는 사운드 카드와 스피커 같은 소리 출력 장치가 있다.
https://library.gabia.com/contents/infrahosting/1227/
https://cloudstudying.kr/lectures/183
https://superohinsung.tistory.com/84#CPU%EC%9D%98%20%EB%8F%99%EC%9E%91%EA%B3%BC%EC%A0%95-1
https://terms.tta.or.kr/dictionary/dictionaryView.do?subject=%EA%B8%B0%EC%96%B5+%EC%9E%A5%EC%B9%98
잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다. |
'CS > CS' 카테고리의 다른 글
SQL Mapper와 ORM이란? (0) | 2023.05.14 |
---|---|
멀티태스킹, 멀티프로세싱, 멀티스레딩 (1) | 2023.05.07 |
XML, JSON (0) | 2023.04.05 |
API, REST, REST API (0) | 2023.04.01 |
쿠키, 세션, 토큰, 캐시 (0) | 2023.03.26 |