컴퓨터/컴퓨터구조9 [UCB CS61C] Lec09 RISC-V Logical Instructions Logical Instructions 항상 2개의 variant가 있다. 하나는 register용(and), 하나는 immediate용(andi)이다. 비트마스크용도로 사용된다. NOT은 존재하지 않는다! 대신에 모든 숫자에 1을 채운 것과 xor을 하여 해결한다. For simplicity! Logical Shifting sll, slli : 몇 bit만큼 왼쪽으로 옮겨준 뒤에 오른쪽에는 0을 삽입해준다. 즉 곱셈을 해준 것과 같은 효과다. 예를 들어서 12로 곱하고 싶다면, 8로 곱해준 결과와 4로 곱해준 결과를 더해주는 식으로 한다.slli x11, x12, 2 # x11 = x 12 >) Arithmetic Shifting sra, srai: 몇 bit만큼 오른쪽으로 옮겨준 뒤에 왼쪽에는 0이 아.. 2024. 1. 9. [UCB CS61C] Lec08 RISC-V (lw, sw, decision making) 메모리 주소는 byte 단위로 되어 있다. Little-endian convention에서는 word(4 bytes) 내에서 least-significant byte가 제일 작은 address에 저장된다(e.g. 0x12345678이면 78 56 34 12와 같이 저장). 따라서 Word address는 least-significant byte의 주소와 같다. Little-endian vs Big-endian: 작은 것이 작은 주소로 가느냐 vs 큰 것이 작은 주소로 가느냐 Load from Memory to Register lw : load word로, '오른쪽에서 왼쪽으로' 데이터를 가져온다. 여기서 offset은 바이트 단위로 표현되며, assembly 시점에 알려진 상수여야 한다./.. 2024. 1. 5. [UCB CS61C] Lec07 RISC-V Intro 1970, 80년대에는 더 많은 instruction을 더해 나가는 것이 트렌드였음. 하지만 1980년대 초반에 간단하고 작은 형태의 instruction set을 만들기 시작했음. 이를 통해 fast hardware를 만들고, 복잡한 연산은 software에게 맡기게 됨. 이는 당시의 사고방식에는 역행하는 것이었음. Registers assembly에는 변수가 없고, 레지스터를 operand로 다룸. 레지스터는 HW에 있기 때문에 극도로 빠름. 하지만 HW에 있기 때문에 이미 정해진 수만큼만 존재하게 됨. 그래서 RISC-V는 이러한 제한된 레지스터를 효율적으로 사용해야 함. RISC-V는 32개의 레지스터를 사용함. (수업에서 사용하는) RV32에서는 word의 단위가 32비트(4바이트)임. 레지스터.. 2024. 1. 5. [UCB CS61C] Lec06 Floating Point floating point representation: 1.xxx * 2^yyyy의 형식으로 표현 IEEE754: 1 sign bit, 8 exponent bits, 23 significand bits sign bit가 1이면 음수, 0이면 양수 앞에 "1."이 생략되어있다고 보기 때문에, significand는 언제나 0에서 1 사이의 수가 된다. 모든 숫자가 0인 경우를 0으로 약속한다. exponent에는 biased notation(127)을 사용한다. unsigned value를 생각한 뒤에 127을 빼주면 된다. 따라서 $(-1)^{S} (1+\text{Significand}) 2^{\text{exponent}-127}$ Special Numbers 무한대는 exponent가 모두 1이고 si.. 2024. 1. 4. 이전 1 2 3 다음