본문 바로가기

IT_Study/CS_Study30

[Computer Architecture] (1-2) Pipeline Hazards Hazard가 발생하는 상황이란 다음 사이클에 다음 Instruction을 수행할 수 없을 때를 말한다.Hazard는 종류에 따라 Structural/Data/Control Hazard로 구분할 수 있다.1. Structural Hazard구조적인 문제로 인하여 발생하는 Hazard를 말한다. 예를 들어 어떤 자원을 사용하는 데 충돌이 발생하는 경우이다. IF - ID - EX - MEM - WB 로 구분되는 5-Stage Pipeline를 기존으로 생각해보자. 각 Stage이 어떤 자원을 사용하는 지 확인해보자.IF : Memory // Memory로부터 Instruction을 읽어옴.ID : Register // Instruction decode  이후 register로부털 operand를 읽어옴.E.. 2024. 4. 30.
[Computer Architecture] (8) CISC vs. RISC 사용하는 Instruction Set 구성 방식에 따라 CISC(Complex Instruction Set Computer)와 RISC(Reduced Instruction Set Computer)로 구분할 수 있다.먼저 용어를 살펴보면 'Complex' 와 'Reduced'의 차이를 보인다. 즉, 하나는 복잡하고 다른 하나는 간단하다는 의미를 가진다. Instruction이 복잡하다는  것은 여러 가지 많은 종류의 Instruction이 있고, 각 Instruction의 길이가 동일하지 않다는 것을 말한다. 이렇게 복잡해진 이유는 전형적인 프로그래밍 테스크를 수행하기 위하여 계속 추가가 되었기 때문이다.  반대로 Instruction이 간단하다는 것은 심플한 종류의 Instruction이 있고, 각 In.. 2024. 4. 29.
[Computer Architecture] (7) Instruction Example RISC-V Instruction Formats은 아래와 같이 크게 6가지가 있다.1. R-Type2. I-Type3. S-Type4. SB-Type5. U-Type6. UJ-Type각 format을 알아보고, 어떻게 Instruction을 만들 수 있는 지 확인해보자. 1. R-Typeadd 명령어는 아래와 같이 구분될 수 있다.// add// func7 : 7'h00// rs2 : 5'h7;// rs1 : 5'h6;// func3 : 3'h0// rd : 5'h5;// opcode : 7'h33add x5, x6, x7 # a5 = a6 + a7이를 배치하면 아래와 같다. 2. I-Type// addi// imm : 12'hFCE, 12'b1111 1100 1110 -> +.. 2024. 4. 28.
[Computer Architecture] (6) Array vs Pointer Array를 접근할 때는 Array의 base address와 Array의 element size 그리고 index가 필요하다. 이를 이용하면 아래와 같이 계산할 수 있다.A[i] = The base address of A + element siz * i(index ) pointer는 메모리 주소를 직접 가리키는 것으로 아래와 같이 pointer를 통해 바로 접근 가능하다.// declare point p;long *p;p = 1 // address p = 1a = *p // a = M[1] 아래와 같이 동일한 동작을 Array를 사용하는 Code와 Pointer 를 사용하는 Code를 비교해 보자. Array로 만든 Loop은 Index 계산을 하기 위한 수식들이 포함되어 있고, Pointer는 처음.. 2024. 4. 28.