728x90
반응형
문제
- 해저드(Hazzard)의 정의와 유형에 대해 설명하세요.
- 데이터 해저드의 발생 원인과 해결 방법에 대해 설명하세요.
- 버퍼의 정의와 사용 이유에 대해 설명하세요.
- CPU 성능 향상을 위한 슈퍼스칼라와 하이퍼스레드에 대해 설명하세요.
- 파이프라인 분기의 정의와 분기 비용을 줄이기 위한 방법에 대해 설명하세요.
- 예외의 정의와 파이프라인에서의 예외 처리 방식에 대해 설명하세요.
- 명령어를 통한 병렬성과 병렬성을 높이기 위한 방법에 대해 설명하세요.
- 메모리 계층 구조와 지역성의 원리에 대해 설명하세요.
- 캐시와 버퍼의 차이점에 대해 설명하세요.
- 플래시 메모리의 종류와 Wear Leveling에 대해 설명하세요.
정답
- 해저드(Hazzard)는 명령어가 파이프라인에서 정상적으로 실행되지 않는 상황을 의미합니다. 이로 인해 실행불가(stall 발생)이나 파이프라인 버블(bubble)이 발생할 수 있습니다. 해저드의 유형으로는 구조적 해저드, 데이터 해저드, 제어 해저드가 있습니다.
- 데이터 해저드는 명령어를 실행하기 위한 데이터가 준비되지 않아 생기는 지연입니다. 이를 해결하기 위한 방법으로는 전방전달/우회전달이 있습니다.
- 버퍼는 큐(원형 큐)와 유사한 자료구조로, 입출력 속도에 차이가 있을 때 사용합니다. 버퍼를 사용하면 시스템 안정성이 증가하고 동기식 시스템의 단점을 보완할 수 있습니다.
- 슈퍼스칼라는 한 번에 여러 개의 명령어를 동시에 실행시킬 방법으로, 파이프마다 실행하는 명령어 간의 연관관계가 없어야 합니다(병렬성). 하이퍼스레드는 물리적으로 하나의 실행 장치를 가지고 있는 CPU에 가상 실행 장치를 두 개 할당하는 기술입니다.
- 파이프라인 분기란 비교문/반복문에서 조건 분기가 발생하는 것을 의미합니다. 조건에 따라 파이프라인 지연이 발생할 수 있습니다. 분기 비용을 줄이기 위한 방법으로는 분기 덧셈기를 EX단계에서 ID단계로 옮기기, 동적 분기 예측, 지연 분기 슬록, 연관 예측기, 토너먼트 예측기, 조건부 이동 등이 있습니다.
- 예외란 프로그램의 흐름을 바꾸는 기술로, 정의 안된 명령어나 산술 오버플로 처리에서 적용됩니다. 처리 방식으로는 EPC(Exception Program Counter)에 저장하고 특정 주소(운영체제의 핸들러)로 점프하는 방식이 있습니다. 파이프라인에서의 예외 처리 방식으로는 한 사이클에서 여러 개의 예외가 동시에 일어날 수 있으므로 예외의 운선순위를 반영하는 것이 있습니다(MIPS에서는 명령어 순서에 따름).
- 명령어를 통한 병렬성(ILP: 명령어 사이의 병렬성)은 Thread-safe(동시에 수행되면서도 일정한 결과)합니다. 병렬성을 높이기 위한 방법으로는 파이프라인의 깊이 증가(더 많은 명령어 중첩), 다중 내보내기(컴퓨터의 내부 구성요소를 여러 개 가짐-슈퍼스칼라) 등이 있습니다.
- 메모리 계층 구조란 비싸고 빠른 메모리와 싸고 느린 메모리를 섞어서 더 빠른 쪽에 가까운 메모리의 속도가 나도록 하는 기법입니다. 지역성의 원리란 시간적 지역성(한번 참조된 항목은 다시 참조되는 경향이 있음)과 공간적 지역성(어떤 메모리 참조 주변의 메모리 참조가 일어날 가능성 높음)을 활용하여 프로그램에서 최대한 지역성을 활용해 성능 향상을 도모하는 것입니다.
- 캐시는 메모리 계층 구조/지역성을 이용한 성능 개선을 위해 사용되며, 교체 정책과 쓰기 정책이 있습니다. 반면, 버퍼는 입출력 속도가 다른 경우 안정성을 높이고 병목을 개선하는 기술로, 우선순위/스케줄러를 사용합니다.
- 플래시 메모리의 종류로는 SLC/MLC/TLC/QLC가 있으며, 셀당 1/2/3/4 비트를 저장합니다. Wear Leveling은 모든 셀의 마모(wear)를 균일하게 만드는 기술로, 실제 셀과 메모리 주소를 재매핑하는 기술입니다. 주로 플래시 컨트롤러가 담당하며, 셀의 수명 향상으로 플래시 메모리 수명이 향상됩니다.
2023.06.11 - [컴퓨터구조/컴퓨터구조] - [컴퓨터구조] #9 해저드
728x90
반응형
'전공 > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] #13~14 추가 사설 문제 (0) | 2023.06.11 |
---|---|
[컴퓨터구조] #11~12 추가 사설 문제 (0) | 2023.06.11 |
[컴퓨터구조] #14 병렬프로세서 (0) | 2023.06.11 |
[컴퓨터구조] #13 가상메모리 (0) | 2023.06.11 |
[컴퓨터구조] #12 가상머신/가상화/클라우드 (0) | 2023.06.11 |