728x90
반응형

2024/03/03 4

[Computer Architecture] Exceptions

Exception unscheduled event that disrupt program excution(프로그램의 실행을 멈춤) User program의 Instruction을 수행하다가 문제사항이 생기게 되면 그 문제를 해결할 수 있는 OS 안에 위치하는 Exception handler을 이용하기 위해 OS에게 해결해달라고 소프트웨어에게 알리는 것입니다. 즉, 하드웨어가 소프트웨어에게 알리고 소프트웨어가 OS에게 handling 해달라고 부탁하게 됩니다. Exception 처리가 끝난 뒤에는 다시 원래 지점으로 돌아와서 진행하게 됩니다. (returns control to user) Exception 종류 Interrupts CPU 바깥의 event로 인해서 일어나는 Exception (caused b..

[Computer Architecture] Hazard Detection

Hazard Detection 각 파이프라인 사이 위치하는 정보를 전달하는 파이프라인 레지스터에서 hazard를 감지 Hazard 유형 EX/MEM단계의 Rd 레지스터와 ID/EX 단계의 Rs1 레지스터가 같은 경우 EX/MEM단계의 Rd 레지스터와 ID/EX 단계의 Rs2 레지스터가 같은 경우 MEM/WB단계의 Rd 레지스터와 ID/EX 단계의 Rs1 레지스터가 같은 경우 MEM/WB단계의 Rd 레지스터와 ID/EX 단계의 Rs2 레지스터가 같은 경우 문제 앞선 Instruction이 register에 write를 하지 않은 명령어라면 forwarding을 하면 안됩니다. x0는 항상 0으로 고정되어 있기에 어떠한 값도 안써지기 때문에 x0에 대한 계산에 대해 nonzero result value를 f..

[Computer Architecture] Pipeline Hazards

Pipeline Hazards Structural Hazards 동시에 두 가지 다른 방식으로 같은 자원을 사용하려고 시도하는 경우 발생합니다. Data Hazards 항목을 준비되기 전에 사용하려고 시도하는 경우 발생 명령어가 파이프라인에 있으면서 아직 처리되지 않은 이전 명령어의 결과에 의존하는 경우 앞쪽의 Instruction이 결과가 나오지 않았는데 뒤에 따라오는 명령어가 그 레지스터 값을 얻으려고 할 때 발생하는 hazards -> data dependency 발생 Control Hazards 조건이 평가되기 전에 결정을 내리려고 시도하는 경우 발생 branch instructions branch 결과가 나오기 전에는 어떤 instruction을 fetch 해야하는지 알 수 없습니다. Hazar..

[Computer Architecture] Enhancing Performance with Pipelining

Pipelining 복잡한 프로세스를 여러 단계로 나누어 각 단계가 병렬적으로 동작할 수 있도록 함으로써, 전체적인 처리 속도를 향상시키는 방법입니다. 파이프라인 기술은 일련의 데이터 처리 단계를 마치 공장의 조립 라인처럼 연속적으로 배치하여, 한 번에 하나의 명령어만 처리하는 대신 여러 명령어가 동시에 각기 다른 처리 단계를 수행할 수 있도록 합니다. 크게 5가지 동작으로 Fetch, Decode, Execute, Memory Access, Write Back 나눌 수 있고, 하나의 명령어가 Write Back 단계까지 끝나고 다음 명령어를 시작하는 것이 아니라 각 단계마다 일을 배치하는 방식으로 한 명령어가 Fetch가 끝나고 Decode 단계로 들어가면 Fetch 단계에는 그 다음 명령어를 실행합니..

728x90
반응형