하나의 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는 명령실행에 집중하여 성능이 향상됩니다.
'Computer Science' 카테고리의 다른 글
운영체제 - 프로세스와 스케줄링 (0) | 2024.05.02 |
---|---|
운영체제 - 커널과 쉘, 시스템 콜 (0) | 2024.05.01 |
컴퓨터구조론 - 명령어 코드 (0) | 2024.04.30 |
컴퓨터 구조론 - CPU 레지스터 (0) | 2024.04.30 |
컴퓨터구조론 - 메모리 : RAM (0) | 2024.04.30 |