분류 전체보기33 [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 CS162 OS] Lec04 Files & I/O Semaphore "generalized lock"으로서, non-negative integer value를 가지며 두 가지 연산을 지원 P() or down(): 양수가 되기를 기다리다가, 양수가 되면 1 감소 V() or up(): 세마포어를 1 증가시키고 기다리는 P를 깨움 mutual exclusion으로 사용하려면, initial value = 1 semaphore.down(); // critical section semaphore.up(); signaling other threads initial value = 0 ThreadJoin { semaphore.down(); } Process(cont'd) exec wait: tcpid = wait(&status)와 같이 쓰게 되면, pare.. 2024. 1. 5. [CMU 15-445 Intro to DB Sys] Lec07 Hash Tables DBMS에 사용되는 자료구조의 디자인에 있어서는 data organization(어떻게 효율적으로 access할 수 있을지), concurrency(여러 Thread가 문제 없이 access할 수 있도록)를 고려해야 함. Hash Tables unordered associative array that maps keys to values로서, 해쉬함수를 통해 key로부터 value가 담긴 곳의 offset을 계산한다. space complexity는 $O(n)$, time complexity는 평균적으로 $O(1)$, 최악의 경우 $O(n)$다. 그럼에도 불구하고 DBMS에서는 $O(1)$과 같은 constant도 최적화하는 것이 중요하다.Hash Function 해쉬함수는 large key space에서.. 2024. 1. 4. [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 4 5 6 7 8 9 다음