티스토리 뷰
안녕하세요 Hani입니다.
병렬성을 위한 파이프라인에 이어서 이번 시간에는 파이프라인 해저드에 대하여 알아보겠습니다.
파이프라인은 '모든 명령이 정해진대로 수행된다'는 것을 가정합니다.
반대로 말하면 다음 명령이 다음 사이클에 수행될 수 없는 상황을 마주하게 되면 파이프라인이 깨집니다.
파이프라인을 망가트릴 수 있는 몇 가지 위험들을 알아보겠습니다.
Structural hazards
하드웨어가 동일한 클럭 사이클에서 실행하고자 하는 명령의 조합을 지원하지 않는 경우가 있습니다.
쉽게 말하자면, 한 클럭에서 두 가지 이상의 명령이 같은 메모리 주소의 자원을 필요로 하는 경우입니다.
A, B, C 명령이 있고 A, B 명령이 같은 자원을 필요로 한다면 C와는 무관하지만 A와 B간 해저드가 생깁니다.
Data hazards
명령이 아직 끝나지 않았음에도 다음 명령이 이전 명령이 사용하던 레지스터에 접근 할 때 발생하는 해저드입니다.
읽기 명령(R)이 끝나기 전에 쓰기 명령(W)이 발생하거나,
쓰기 명령(W)이 끝나기 전에 쓰기 명령(W)이 발생하거나,
쓰기 명령(W)이 끝나기 전에 읽기 명령(R)이 발생할 때 두 명령간 데이터 의존성(Data Dependency)이 있다고 말합니다.
데이터 의존성이 생기지 않는 경우는 둘 다 데이터를 변경시키지 않는 읽기 명령(R)일 때뿐입니다.
Control hazards
분기 예측에 실패하여 선택하지 말아야 할 명령어를 파이프라인에 가져와서 생기는 해저드입니다.
'컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] 메모리 계층 구조 (0) | 2020.12.12 |
---|---|
[컴퓨터구조] 파이프라인 (0) | 2020.11.21 |
[컴퓨터구조] MIPS 명령어 형식 (0) | 2020.10.14 |
[컴퓨터구조] MIPS 하드웨어 연산 (0) | 2020.09.23 |
[컴퓨터구조] ISA(Instruction Set Architecture) (0) | 2020.09.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- mach-o
- 최단경로문제
- 다익스트라 시간복잡도
- 강한 순환 참조
- 네트워크 유량
- 벨만포드 알고리즘
- 포드 풀커슨 알고리즘
- MeTal
- WWDC21
- 최단경로 알고리즘
- WWDC19
- 컴퓨터 추상화
- IOS
- WWDC16
- CompositionalLayout
- 최단경로 문제
- WWDC17
- observeOn
- 벨만포드 시간복잡도
- Testable
- 코딩대회
- rxswift
- 최대 매칭
- 네트워크 플로우
- 에드몬드 카프 알고리즘
- test coverage
- State Restoration
- 부스트캠프 6기
- HIG
- CPU와 Memory
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
글 보관함