본문 바로가기

전체 글68

[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.
[Computer Architecture] (5) RISC-V Procedure Call 이번에 알아볼 내용은 Procedure Call이다.  코드 내에서 다른 함수를 호출하여 사용하는 경우를 말한다. 일반적으로 함수는 Input과 Output으로 구성되어 있다. 따라서 함수를 호출하여 사용할 경우, Input을 전달해야 하며, 또한 Output을 전달받아야 한다. 앞서 RISC-V의 Register를 살펴보았을 때, Function Argument와 Return value를 위한 Register가 정해져 있었다. 2024.04.27 - [IT_Study/CS_Study] - [Computer Architecture] (4-2) RISC-V Register 설명 [Computer Architecture] (4-2) RISC-V Register 설명각 Register의 기능을 소개하기 앞서,.. 2024. 4. 28.
[Computer Architecture] (4-5) RISC-V Control Transfer Operation Control Transfer Operation은 특정 조건에 따라 동작이 달라지는 것을 말한다. 대표적으로 Branch 동작이 있다. Branch 동작은 특정조건이 만족되면 지정된 위치로 이동하고, 만족되지 않으면 다음 Instruction을 수행하도록 한다.아래와 같이 조건에 따라 L1의 위치로 갈지 말지를 결정할 수 있다.// branch equalbeq rs1, rs2, L1 # if(rs1 == rs2) goto L1// branch not equalbne rs1, rs2, L1 # if(rs1 != rs2) goto L1 C 언어에서 조건문은 if, while, for 문 등이 존재한다. 이 중 if문을 사용한 코드를 Instruction으로 변경해 보자. // C codeif (i == j).. 2024. 4. 28.