엔지니어가 되고 싶은 공돌이
16. Exception and Interrupt 본문
16. 1. Exception and Interrupt
- MIPS는 Exception과 Interrupt가 발생했을 때 이를 처리할 수 있어야 합니다.
- Exception이 발생하면 문제를 일으킨 Address of Instruction를 EPC에 저장하고, OS로 제어를 넘깁니다.
그럼 OS가 Exception을 처리해서 프로그램을 종료할지, 계속 수행할지를 결정합니다.
- OS가 Exception이 발생하면 원인을 알기 위해서 2가지 방법을 사용합니다.
1) Cause Register: Exception이 발생한 원인을 나타내는 필드가 있으며, Exception을 기록하는데 사용됩니다.
2) Vectored Interrupt: 제어를 넘길 주소를 Exception의 원인에 의해 결정하는 Interrupt입니다.
해당 주소에서는 각 Exception을 처리하는 방법을 가지고 있습니다.
- Pipeline에서는 Exception을 Control Hazard의 형태로 처리합니다.
- 만약 1개의 Clock Cycle에서 여러 개의 Exception이 동시에 발생하면,
Exception에 우선순위를 매겨 처리합니다.
- Exception과 Interrupt는 OS에서 자세하게 서술하겠습니다.
16. 2. Memory
- Computer Architecture에서도 Memory를 다루고 있지만 OS에서 자세하게 서술하겠습니다.
- Memory는 빠른 접근을 위해 Locality를 사용합니다.
1) Temporal Locality: 어떤 항목이 참조되면 그 항목은 다시 참조될 가능성이 높습니다.
2) Spatial Locality: 어떤 항목이 참조되면 그 항목의 근처에 있는 다른 항목은 참조될 가능성이 높습니다.
Locality를 이용하기 위해서 Memory Hierarchy를 사용합니다.
- DDR(Double Data Rate): Clock의 Falling Edge, Rising Edge에서 모두 데이터가 전송가능하다는 뜻.
- Flash Memory: EEPROM의 한 종류로, 제품을 Write 할 수록 비트가 마모되기 때문에,
Write 를 분산시키기 위해서 제어기를 사용합니다.
이를 Wear Leveling(마모 균등화)이라 부릅니다.
'Computer Science > Computer Architecture' 카테고리의 다른 글
15. Control Hazard (0) | 2025.05.05 |
---|---|
14. Data Hazard (0) | 2025.05.05 |
13. Pipelining Datapath (0) | 2025.05.05 |
12. Pipelining (0) | 2025.05.05 |
11. Datapath Including Controls (0) | 2025.05.05 |