1. CPU (Central Processing Unit)
CPU는 컴퓨터의 두뇌라고 말할 수 있다. 메모리에 저장된 값을 읽어서 해석하고 실행하는 장치이다.
CPU는 작업을 빠르게 연산하고 작동하는데 기능이 집중되어 있다.
또 CPU는 계산기라고도 얘기할 수 있다.
1) CPU의 구조
내부 모듈에는 산술/논리 연상 장치(ALU), 제어 장치, 레지스터가 있고 이들을 내부 버스로 연결한다.
(1) 레지스터
- CPU 내부의 작은 임시 저장 장치이다.
- 프로그램을 실행하는데 필요한 값들을 임시로 저장한다.
- CPU안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있다.
(2) ALU
- 쉽게 말해 계산기, 계산만을 위해 존재하는 부품
- 컴퓨터 내부에서 수행되는 대부분의 계산을 도맡아서 수행
(3) 제어장치
- 제어신호라는 전기 신호를 내보내고 명령어를 해석하는 장치
- 제어신호란? 컴퓨터 부품을 관리하고 작동시키기 위한 일종의 전기신호
(4) 버스
- CPU, 주기억장치, 외부 입출력 장치 사이의 정보를 전송하는 전기적 통로
2) CPU의 동작
(1) 명령어 인출(Fetch)
- 제어 장치가 이번에 수행할 명령어 정보를 가지고 온다.
(2) 명령어 해독(Decode)
- 보통 opcode라고 하는 명령어 코드를 인출하고 opcode의 성격에 맞게 레지스터들을 준비시킨다.
(3) 실행
(4) 반영
3) CPU의 성능
클럭과 코어 개수에 따라 성능에 영향을 미친다
(1) 클럭
- CPU 내부에서 일정한 주파수를 가지는 신호로, 이 신호로 모든 명령어가 동작되게 된다.
- 1Hz면 1초에 한 번의 주기, 1기가 Hz면 1초에 1기가(1024메가 = 10억번)만큼 → 클럭 주파수가 빠를수록 제한된 시간에 더 많은 명령을 처리할 수 있기에 더 좋은 성능의 중앙 처리 장치라고 할 수 있다.
(2) 코어
- 중앙처리 장치 역할을 하는 블록 → 멀티 코어들은 싱글코어에 비해 마치 여러개의 CPU가 작동하듯이 많은 연산을 빠르게 병렬 처리할 수 있다.
2. 메모리
1) 주 기억장치
CPU에 의해 실행될 프로그램과 데이터가 저장되는 곳으로 주 기억장치는 RAM과 ROM으로 나뉜다.
(1) RAM (Radom Access Memory)
- RAM은 DRAM과 SRAM이 있는데 주 기억장치는 주로 DRAM을 의미한다.
- 전원을 차단하면 저장된 내용이 지워지는 휘발성 메모리.
- 대부분의 개인용 컴퓨터 메인 메모리에 사용된다.
- Random Access는 어느 주소든지 동일한 속도로 데이터에 접근해 사용할 수 있다는 의미이다.
+ SRAM vs DRAM
가. SRAM : Static RAM
- 정적 메모리
- 전원 공급이 되는 동안 기록된 내용이 지워지지 않아 재충전이 필요 없다.
- 접근 속도가 빠르고 가격이 비싸다는 특징이 있으며 주로 캐시메모리나 레지스터로 사용된다.
나. DRAM : Dynamic RAM
- 동적 메모리
- 전원이 계속 공급되더라도 주기적으로 재충전이 되어야 내용을 유지할 수 있다.
- 주로 대용량의 기억장치에 사용되며 가격이 저렴합니다.
- 주로 RAM이라고 표현하는것(주기억장치)은 거의 DRAM을 가리킨다.
(2) ROM (Random Access and Read Only Memory)
- 전원을 차단해도 저장된 내용이 지워지지 않는 비휘발성 메모리
- 내용을 유지시키기 위해 ROM 내의 데이터는 읽을 수만 있고 보통은 변경할 수 없다.
- 주로 기본 입출력시스템(BIOS), 자가 진단 프로그램(POST), 부트스트랩 로더(Bootstrap Loader)들을 저장한다.
2) 보조 기억장치
- 사용자가 사용하고자 하는 데이터와 프로그램을 반영구적으로 저장한다.
- 전원을 끄더라도 저장된 데이터나 정보가 날아가지 않는 비휘발성 메모리
- 우리가 설치하는 모든 프로그램이나 파일들은 이곳에 반영구적으로 저장된다.
- ex) 자기 테이프, 자기 디스크, SSD
3. CPU와 메모리
1) CPU와 메모리 동작
- 주기억장치가 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어온다.
- CPU는 프로그램을 실행하기 위해 주 기억장치에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 주기억장치에 저장한다.
- 주기억장치는 처리결과를 보조기억장치에 저장하거나 출력장치로 보내서 출력시킨다.
- CPU내의 제어장치(CU)가 1~3번 과정에서 명령어가 순서대로 실행되도록 각 장치들을 제어한다.
2) CPU와 메모리의 구조
(1) 폰노이만 구조
- 폰 노이만이 고안한 내장 메모리 순차처리 방식으로, 명령과 데이터는 같은 버스와 메모리를 사용하기 때문에 동시에 접근하는 것이 불가능 → 느리다
- 보조기억장치에서 데이터들이 CPU에서 연산되기 위해서 하나의 메모리에 올라간다.
- 실행장치는 ALU에 데이터가 메모리 어디에 위치한지 알려주는 역할
- 프로그램 메모리와 데이터 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있어 병목현상이 일어난다
+ 병목현상
CPU와 메모리 사이에 하나의 통로를 통해 순차적으로 데이터가 이동하면서 처리되는데(직렬처리), 처리해야할 데이터 양이 많아지면 발생하는 지연현상
+ 버스
컴퓨터 안의 부품들 간에 또는 컴퓨터 간에 데이터와 정보를 전송하는 통로 (통신시스템)
(2) 하버드 구조
- 폰 노이만 구조의 문제를 완하하기 위해 나타나게 되었으며, 명령용 버스와 데이터용 버스가 물리적으로 분할되어 있다는 점에서 다르다.
- 명령어 메모리 : 프로그램에서 사용할 명령어를 모아둔 메모리
- 명령어 메모리 → 실행장치 : 명령어에 대한 정보를 보내줌
- 데이터 메모리 : 명령어들로 사용될 메모리
- ALU : 데이터를 가지고 명령어를 읽어서 연산 수행
- 장/단점
- 장점 : 메모리가 두개이기 때문에 역할이 나누어져 있으며 속도가 빠르다.
- 단점 : 구성이 많아 가격이 비싸고, 복잡한 구성으로 고장이 날 확률이 높다.
(3) 개선된 구조
- 하버드 구조 + 폰노이만 구조
- CPU의 캐시 메모리 형상에 관여
- CPU 내부 - 하버드 : CPU 내부에 캐시를 둬서 RAM과 CPU간의 속도 차이를 줄이려고 노력
- CPU 외부 - 폰노이만 : 메모리 하나에 하나의 버스를 가지는 구조이기 때문에 병목현상이 아직까지는 존재한다.
'CS 지식' 카테고리의 다른 글
Git 기초 (1) (1) | 2024.04.02 |
---|