티스토리 뷰
안녕하세요 Hani입니다.
이번 포스팅에서는 파이프라인에 대하여 알아보겠습니다.
Single Cycle Datapath / Multi Cycle Datapath
컴퓨터가 명령어를 처리하기 위한 단일 사이클을 돌린다면 한 명령이 끝날 때까지 다른 명령이 수행되지 못합니다.
예를 들어, 프로그램 카운터에서 Fetch를 한 후, Decode부터 사이클이 끝날 때까지 프로그램 카운터가 쉬고 있으면 프로세서를 완전히 사용하고 있다고 볼 수 없겠죠.
아래는 각각 Single Cycle Datapath와 Multi Cycle Datapath에 의한 CPU의 작업 처리 성능을 보여줍니다.
이렇게 한 명령어 사이클을 여러 단계로 나누고 각 단계에서 동시에 다른 명령어를 처리하는 작업 방식을 파이프라이닝이라고 합니다.
파이프라인을 통한 프로세서 설계에 의해 멀티코어를 활용한 병렬성(Parallelism)을 얻을 수 있습니다.
CPU는 같은 시간이라면 사이클을 최대한 많이 돌리고 싶습니다.
Clock Rate를 향상시켜 사이클 도는 속도를 빠르게 만드는 것도 좋지만 이 성능은 반도체 공정 영역으로 넘어갑니다.
컴퓨터 구조 측면에서 프로세서의 병렬성을 더 이용하기 위해 프로세서 구조에 대하여 더 알아봐야 합니다.
Superscalar + Pipeline
한 명령어 사이클 동안 여러 개의 명령어를 동시에 처리할 수 있도록 설계한 프로세서 구조입니다.
이는 싱글코어에서는 하나의 스칼라 프로세서에서 두 가지 이상의 사이클을 돌릴 수 있고, 멀티코어에서는 하나의 코어에서 두 가지 이상의 사이클을 돌릴 수 있음을 의미합니다.
따라서 같은 클럭 속도에서 슈퍼스칼라 구조를 가진 프로세서는 스칼라 구조의 프로세서보다 더 많은 명령들을 다룰 수 있습니다.
Superscalar + Super-pipeline
슈퍼 파이프라인은 한 클럭안에 여러 명령어를 실행할 수 있는 설계 방법입니다.
병렬성을 위한 파이프라인 기법을 통해 프로세서의 성능을 끌어올릴 수 있었습니다.
하지만 병렬성이 높아질수록 Pipeline Hazards라는 문제에 빠지기 쉽습니다.
다음 포스팅에서는 Pipeline Hazards에 대하여 알아보겠습니다.
'컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] 파이프라인 해저드 (2) | 2021.04.18 |
---|---|
[컴퓨터구조] 메모리 계층 구조 (0) | 2020.12.12 |
[컴퓨터구조] MIPS 명령어 형식 (0) | 2020.10.14 |
[컴퓨터구조] MIPS 하드웨어 연산 (0) | 2020.09.23 |
[컴퓨터구조] ISA(Instruction Set Architecture) (0) | 2020.09.22 |
- Total
- Today
- Yesterday
- test coverage
- 벨만포드 알고리즘
- 네트워크 플로우
- 강한 순환 참조
- 최대 매칭
- 최단경로문제
- 코딩대회
- rxswift
- WWDC16
- mach-o
- 부스트캠프 6기
- CompositionalLayout
- 포드 풀커슨 알고리즘
- State Restoration
- observeOn
- 네트워크 유량
- HIG
- MeTal
- 최단경로 알고리즘
- WWDC17
- IOS
- WWDC21
- 다익스트라 시간복잡도
- Testable
- 에드몬드 카프 알고리즘
- CPU와 Memory
- WWDC19
- 컴퓨터 추상화
- 최단경로 문제
- 벨만포드 시간복잡도
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |