초보 코린이의 성장 일지

컴퓨터 구조 (2) - 이론 본문

컴퓨터 구조

컴퓨터 구조 (2) - 이론

코오린이 2023. 7. 12. 17:07

CPU안에 연산할 수 있는 코어가 하나였었다. 그 코어는 하나의 일을 처리할 수 있지만 한계가 존재했고,

안에 구조가 복잡하기 때문에 발열을 잡기 힘들어서 속도를 높여서 이 문제를 해결하려고 했다.

이 문제를 해결하기 위해 코어들을 하나 둘씩 추가하게 되면서 병렬 프로그램이 나오게 되었다.

 

병행성 (Concurrency)

- 여러개의 프로그램을 하나의 코어가 처리한다.

- 한 순간에 한개의 프로그램만 처리된다.

- 대상은 프로세스

- 프로세스 동기화라는 문제점이 존재

 

병렬성 (Parallelism)

- 하나의 프로세스를 여러개의 코어들이 함수 단위로 구역(쓰레드)을 나눠서 처리한다. 

- 한 순간에 두 개 이상의 프로그램이 처리된다.

- 대상은 연산

- 프로세서 동기화라는 문제점이 존재

 

병렬컴퓨터 - 메모리 공유방식 : 컴퓨터를 어떻게 분리할 것인가

여러 가지가 있지만 Flynn을 아는게 제일 좋은거 같다.

Flynn에는 SISD, SIMD, MISD, MIMD 가 존재한다.

I = 명령어 D = Data

SISD

- 하나의 데이터를 하나의 명령어로 처리한다.

- 오버랩하며 시간적인 병렬 처리 가능

 

SIMD

- 하나의 명령어로 여러개의 데이터를 처리한다.

- 하나의 제어 장치가 다수의 차리기와 로컬 메모리를 통제

- 배열 처리기에 주로 활용된다.

- GPU에서 사용하는 방식

- 게임 프로그래밍 기준으로 보면 DX에서 Vector3D를 사용할때 float 자료형 3가지를 사용하게 된다. 이때 3가지 float를 묶어서 하나의 명령어로 처리하는 과정이 SIMD가 된다.

 

MISD

- 여러개의 명령어로 하나의 데이터를 처리한다.

- 아직까지는 이론상의 개념. 시스템 발전이 이뤄지면 적용될거 같다.

 

MIMD

- 여러개의 명령어로 여러개의 데이터를 처리한다.

- 하나하나의 코어에 데이터가 할당되고, 각 코어들은 해당 명령에 따라 움직이는 방법

- 현재의 CPU 방식

- LAN으로 연결된 컴퓨터, 공유 버스, 다중 포트

 

멀티코어 - 멀티코어 SW 기술 (게임에서 등장한 방법, 많이 사용되는 방식)

OpenCL (Open  Computing Language)

- GPU를 활용할 수 있는 방법 : 쿠다 

- CPU가 담당하는 구역이 너무 크고 방대해서 GPU에게 그래픽 부분에 기능들을 넘겨준 방식.

 

'컴퓨터 구조' 카테고리의 다른 글

컴퓨터 구조 - 이론  (0) 2023.07.11
Comments