본문 바로가기

Computer Science

컴퓨터구조론 - CPU 성능 개선

 

 

 

 

하나의 CPU에서 작업을 할 때, 중간에 대기하는 시간이 많아질수록 효율이 떨어집니다.

이를 막기위해 다양한 방법으로 CPU의 개선을 수행합니다.

 

 

 

 

파이프라인

   - 하나의 코어에 여러개의 스레드를 사용하는 방법입니다.

   - 병렬 프로세스 구조라고 하며, 단일 CPU 내에서 병렬처리 시스템과 유사한 연산속도를 만듭니다.

   - 각 작업을 중첩하여 동일한 작업을 보다 적은 시간 안에 처리할 수 있게 합니다.

 

 

 

 

파이프라인 위험

   - 동시에 여러 작업을 수행하는 구조로 인해 몇가지 문제가 발생할 수 있습니다.

   - 데이터 위험, 제어 위험, 구조적 위험 3가지가 존재합니다.

   1. 데이터 위험

      - 데이터 의존성 문제로 발생합니다.

      - 작업 2에서 작업 1의 데이터가 필요한데, 작업 1이 끝나지 않고 작업 2로 진입하여 생길 수 있습니다.

      - 필요한 데이터가 제공되기 전까지 작업을 지연시켜 해결할 수 있습니다.

 

   2. 제어 위험 

      - goto문이나 if 문 등의 분기를 통해 프로그램 카운터 값이 변경될 경우 발생합니다.

      - 분기 이동을 통해 PC 값이 변해 현재 동시에 처리되고 있는 명령어들이 쓸모 없어지는 문제가 발생합니다.

      - 분기 예측이나 분기 지연 방법으로 해결할 수 있습니다.

 

   3. 구조 위험

      - 서로 다른 명령어가 같은 자원에 접근하려 할 때 발생하는 문제입니다.

      - 둘 이상의 명령어가 동시에 자원에 접근할 수 없도록 하여 해결할 수 있습니다.

 

 

 

 

메모리 활용

   - 메모리는 성능, 가격, 용량 세가지 요소가 존재합니다.

      : 성능이 좋은 메모리를 많이 사용하면 가격이 비싸집니다.

      : 가격이 싸면 많이 사용할 수 있어 많은 용량을 확보할 수 있지만, 성능이 떨어집니다.

      : 용량은 가격과 성능을 고려하여 결정됩니다.

 

   - 메모리가 비싸 메모리를 늘리는 대신, 소프트웨어 성능을 높여 문제를 해결합니다.

      : 비싼 메모리는 작지만 속도가 빠르므로, CPU 바로 옆에두고 사용합니다.

      : 값이 싼 메모리는 느리기때문에 먼곳에 두고, 크게 만들어 용량을 확보합니다.

 

   - DMA (Direct Memory Access)

      : CPU가 캐쉬까지는 데이터를 가져오는데 관여합니다. (Instruction Fetch)

      : 그러나, 메모리와 SSD에서 데이터를 가져오는데까지 관여하면 CPU활용도가 저하됩니다.

      : 이를 방지하기위해 DMA를 두면 CPU는 명령실행에 집중하여 성능이 향상됩니다.