컴퓨터 프로그래밍 공부/컴퓨터 구조 + 운영체제

컴퓨터 구조

뽀또치즈맛 2024. 4. 8. 16:59
 컴퓨터 구조

1. CPU
2. 레지스터
3. 캐시
4. BUS
5. GPU

 

 

 

 1. CPU

중앙처리 장치 (CPU : Central Processing Unit)

컴퓨터 시스템의 기능에는 입력, 출력, 기억, 연산, 제어의 5대 기능이 있다.

이 중에서 연산, 제어 및 기억 기능은 컴퓨터의 중심이 되는 기능이라고 볼 수 있는데

이러한 기능을 수행하는 장치로 컴퓨터의 두뇌로서의 역할을 수행한다고 볼 수 있기 때문에

중앙처리장치 즉, CPU라고 한다.

코어( 개수가 많을수록 여러 가지 작업을 동시에 수행할 수 있다.)

싱글 > 듀얼 > 쿼드 > 핵사 > 옥타 (8개)

 

CPU는 기계어로 쓰인 컴퓨터 프로그램의 명령어를 해석하여 실행한다.

CPU는 프로그램에 따라 외부에서 정보를 입력받아, 이를 기억하고, 연산하며 결과를 외부로 출력한다.

 

즉, CPU는 컴퓨터 부품과 정보를 교한하면서 컴퓨터 전체의 동작을 제어한다.

기본 구성으로는 CPU에서 처리할 명령어를 저장하는 역할을 하는

프로세서 레지스터, 비교, 판단, 연산을 담당하난 산술논리연산장치(ALU),

명령어의 해석과 올바른 실행을 위하여 CPU를 내부적으로 제어하는

제어부와 내부 버스가 있다.

 

 

2. 레지스터

 

레지스터의 종류

1. 데이터 레지스터 : 정수 값을 저장할 수 있는 레지스터.

2. 주소 레지스터 : 메모리 주소를 저장하여 메모리 접근에 사용되는 레지스터,

어떤 프로세서에서는, 주소를 저장하는 것이 아니라 조작하기 위한 목적으로 색인 레지스터를 사용하기도 한다.

3. 범용 레지스터 : 데이터와 주소를 모두 저장할 수 있는 레지스터.

4. 부동 소수점 레지스터 : 많은 시스템에서 부동소수점 값을 저장하기 위해 사용한다.

5. 상수 레지스터 : 0이나 1 등 고정된 값을 저장하고 있는 레지스터

6. 특수 레지스터 : 프로그램의 상태를 저장한다. 프로그램 카운터, 스택 포인터, 상태 레지스터 등이 있다.

6-1. 명령 레지스터 : 현재 실행중인 명령어를 저장한다.

6-2. 색인 레지스터 : 실행중에 피연산자의 주소를 계산하는 데 사용된다.

 

프로세서 내부의 레지스터 구성은 일반적으로 다음과 같다.

 

PC (프로그램 계수기) : 다음에 실행할 명령어(instruction)의 주소를 가지고 있다.

IR (명령어 레지스터) : 현재 수행 중인 명령어를 가지고 있다.

MAR (메모리 주소 레지스터) : 메모리로부터 읽어오거나 메모리에 쓰기 위한 주소를 가지고 있다.

MBR(메모리 버퍼 레지스터) : 메모리로부터 읽어온 데이터 또는 메모리에 써야할 데이터를 가지고 있다.

I/O AR (입출력 주소 레지스터) : 입출력 장치에 따른 입출력 모듈의 주소를 가지고 있다.

I/O BR (입출력 버퍼 레지스터) : 입출력 모듈과 프로세서 간의 데이터 교환을 위해 사용된다.

 

3. 캐시

 

캐시는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다.

캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나

값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용된다.

캐시에 데이터를 미리 복사해 놓으면

계산이나 접근 시간없이 더 빠른 속도로 데이터에 접근할 수 있다.

 

캐시의 지역성

캐시가 효율적으로 동작하려면, 캐시에 저장할 데이터가 지역성을 가져야 한다.

지역성이란 데이터 접근이 시간적, 혹은 공간저긍로 가깝게 일어나는 것을 의미한다.

 

시간적 지역성

특정 데이터가 한번 접근되었을 경우,

가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것을 시간적 지역성이라고 한다.

 

공간적 지역성

특정 데이터와 가까운 주소가 순서대로 접근되었을 경우를 공간적 지역성이라고 한다.

CPU 캐시나 디스크 캐시의 경우 한 메모리 주소에 접근할 때 그 주소뿐 아니라

해당 블록을 전부 캐시에 가져오게 된다.

이때 메모리 주소를 오림차순이나 내림차순으로 접근한다면,

캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상된다.

 

 

4. 시스템 버스

 

하드웨어는 CPU, 메인 메모리, 입출력 장치로 구성되어 있다.

이들은 시스템 버스로 연결되어 있다.

 

시스템 버스는 하드웨어 구성 요소를 물리적으로 연결하는 선이다.

각 구성요소가 서로 데이터를 주고받는 통로이다.

용도에 따라 데이터 버스, 주소버스, 제어버스로 나뉜다.

 

 

제어 버스 (Control bus)

제어 신호가 오고간다.

CPU의 제어장치와 연결이 되어있다.

CPU, 메모리, 주변장치와 양방향으로 연결되어 있다.

 

주소 버스 (Address bus)

주소(메모리의 위치 정보)가 오고간다.

메모리 주소 레지스터와 연결되어 있으며, 단방향으로 연결되어있다.

(CPU > 주소 버스)

 

데이터 버스 (Data bus)

데이터를 실어 목적지까지 이동한다.

메모리 버퍼 레지스터와 연결되어 있으며, 양방향으로 연결되어 있다.

 

 

5. GPU

 

그래픽 처리 장치로 컴퓨터 시스템에서 그래픽 연산을 빠르게 처리하여 결과값을

모니터에 출력하는 연산 장치이다.

GPU는 경량코어가 96개 ~ 수천개 코어로 구성되어 있다.

그래픽 처리를 위한 고성능의 처리 장치로 수학적 연산이 최적화된 CPU라고 볼 수 있다.

 

GPGPU

그래픽 처리를 위한 보조 장치였던 GPU를 보완하여 컴퓨터의 중앙처리 장치인

CPU를 대신하여 모든 데이터 연산 및 처리를 하는 CPU 상의 범요 ㅇ계산 장치이다.

 

현재는 아주 제한적이지만 컴퓨터 아키텍처를 변형하여

데이터에 스트림 프로세싱을 이용하여 고정도 연산을 그래픽 파이프라인에

연결 방식으로 CPU의 역할을 대신하는 방법이 지속저긍로 연구 개발 중이다.

 

 

운영체제 기본 용어

 

프로그램이란?

 어떤 작업을 위해 실행할 수 있는 파일 

Job = Program + Data

 

커널

 운영체제의 기능 가운데 운영체제를 구성하는 프로세서와 운영 체제 제어로

수행되는 프로그램에 대하여 자원 할당을 수행하는 부분

 

자원

 커널의 관리하에 프로세스에게 할당/반납 되는 수동적 개체

- 하드웨어와 소트프웨어

하드웨어 ex) Monitor, Keyboard 등

소프트웨어 ex) Signal, Files 등

 

PCB(Preocess Control Block)

 커널 공간 내에 존재하며 각 프로세서들에 대한 정보를 관리

- PID (Preocess Identification Number) : 프로세스 고유 식별 번호

- 스케줄링 정보, 프로세스 상태

- 메모리 관리정보, 입출력 상태 정보, 문맥 저장 영역 (Context SAve Area)

- 계정 정보 : 자원 사용 기간 등을 관리