전체 글 99

Cache

Directed mapped cache Block address = memory address / block size 여기서 block size는 byte 단위임 Block number = block address % block 개수 offset bit 수 = block 당 byte의 지수 값 (Ex. 8이면 offset bit 수는 3) index bit 수 = block의 개수의 지수 값 (64 blocks 면 index bit 수는 6) Tag bit 수 = 32 - index bit 수 - offset bit 수 tag : 보다 확실한 정보를 위해 앞쪽 비트 정보도 필요해서 기록하는 것 valid bit : 이 정보가 정말 유효한 정보인지 확인하는 것 Ex) 예제 8-blocks, 1 word /..

Each instruction's datapath

Instructions R-Type instruction Load instruction Branch-on-Equal Instruction Datapath with jumps added R-Type instruction RegDst = 1 Branch = 0 MemRead = 0 MemtoReg = 0 ALUOp MemWrite = 0 ALUSrc = 0 RegWrite = 1 Sign-extend 필요 없음 (주소값 갖고 있지 않음) + 주소값에 PC Add하는 Adder 필요 없음 Memory 읽기, 쓰기 안 함 (Data Memory 부분 안 쓰임) Load instruction RegDst = 0 Branch = 0 MemRead = 1 MemtoReg = 1 ALUOp MemWrite = 0 AL..

Simple DataPath

중간고사 때는 워낙 말아먹고 이번에 공부를 거의 새로 하다시피 하니까 컴구가 재밌다... 혼자 공부한 걸 정리한 거라 틀린 부분 있을 수 있습니다. 지적 환영합니다 ;) Introduction MIPS의 구현은 simple version, realistic pipelined version 두 가지로 나뉜다. 해당 instruction만 구현하는 processor라고 가정한다. 메모리 참조 : lw, sw 연산, 논리 : add, sub, and, or, slt 제어, 전달 : beq, j (j는 약간 모양이 다르다) Simplified version 먼저 이게 Simplfied 된 version이다. 전혀 안 간단한 것 같지만 pipelined datapath 보다는 훨씬 간단하다. clocking me..

MIPS Instructions

Instructions 들은 binary로 인코딩 된다. 32-bit instruction words로 구성되며, instructions format이 R, I, J로 적은 편이다. == Register numbers == $t0 ~ $t7은 8-15 $t8 ~ $t9는 24-25 $s0 ~ $s7은 16-23으로 각각 정해져있다. MIPS 초록 종이에 다 나와 있음. R-format은 op, rs, rt, rd, shamt, funct로 구성된다. op : r-format임을 표시해주는 부분 rs rt : source register rd : destination register이다. shamt: shift 연산일 때 쓰이는데, 안 쓰이면 0이 들어간다. funct : add, sub 등 실제 어떤 연..

잡생각

할 거 엄청 많은데 또 글 쓰러 왔다. 사실 내일 12시에 용산 가야 되는데 지금까지 깨어 있는 거 보면 갈 수 있을지 자신이 없다. 개발에 대해 회의가 드는 요즘이다. 내가 정확한 방향으로 가는지도 잘 모르겠다. (이번 글에서는 자세히 안 말할 거다) 올해 안에 내 블로그를 하나 만들어야겠다. github 페이지로 커밋 밭 만들기가 목표!.... 라고 거창하게 말하고 싶지만 이 글도 자주 안 쓰는데 그렇게 자주 쓸 것 같지는 않다. 그래도 만들어 보는 데에 의의를 갖고.. 파이팅 여유가 필요해서 17학점을 들었는데, 액트랑 컴구, 객지프가 있으니 뭐 17학점이 느낌이 안 난다. 저번학기 23학점보다 힘든 것 같은건 왜일까 3학년 되기 전 / 3학년 끝난 후 주로 이렇게 휴학하는 이유를 알 것도 같다. ..

중간고사도 끝났고

또 오랜만에 글을 쓴다. 노느라 바빴다. (양해 바람..) 사실 놀기만 한 건 아니고, 하던 건 마저 했다. 엔캠도 진행하고, 과외도 계속 했고, GDSC 활동도 하고 있다. 2학년 2학기 들어서 과제가 힘에 부치는 걸 느끼고 있다. 어려운 것도 어려운 건데, 많고 쉽지 않다. 물론 소프트가 아니더라도 다들 그렇겠지만. 요즘 고민이 많다. 나는 뭘 하고, 어떻게 살아야 할까. 개발이 좋다. 그런데 내가 잘하고 있는 건 아닌 것 같다. 뭘 해야 할 지는 잘 모르겠다. 안드로이드? 서버? 둘 다 잘하지도 못하고, 어떻게 해야 하는 지도 모르고 있지만 생각나는 게 둘 밖에 없다. 원래 하나를 정하고 밀어붙이는게 맞는 것 같은데 아직도 못 정해서 괜찮은 건가 싶다. 조금 무기력한 것 같다. 주변 환경 때문이 아..

[5-3, 5-4] Floating Point

인간은 infinity를 상상할 수 있지만 기계는 할 수 없다 by Jeong Yeop Paek.... 기계는 항상 공간이 한정되어 있기 때문에 절삭이 불가피하다. (float가 float인 이유 : 소수점이 움직이는 게 마치 흐르는 것처럼 보여서 float라고 한다 (...)) Floating Point - 정수가 아닌 숫자를 표현하는 것 (아주 크거나, 아주 작은 수도 포함) - normalized : 소수점 앞에 0이 아닌 숫자가 하나만 나오는 것 - not normalized : else normalized... - In binary : +- 1.xxxxxxx X 2^yyyy (non-zero 값이 1 하나밖에 없음) Floating Point Standard - IEEE Std 754-1985로..

카테고리 없음 2021.10.21

[5-2] Division

용어 정리 - quotient : 몫 - dividend : 나눠지는 수 - divisor : 나누는 수 - remainder : 나머지 ** 0으로 나누는 것에 유의 ** Division RULE - Divide는 절댓값으로 진행한다. - dividend와 remainder의 부호는 같다. Ex) -5/2 - Q : -2 - R : -1 (Q와 R이 모두 같은 부호여야 함) Restoring division example - divisor, quotient, dividend 사용 - divisor는 한 번 연산할 때마다 shift right 실행 - dividend에서 divisor를 빼고, 그 값이 양수인지 음수인지 확인한다. - 양수라면 그 값으로 dividend의 값을 갱신하고, quotient의..

[5-1] Overflow / Multiplication

주어진 범위를 넘어가는 것이 overflow * addition의 경우 - 양수와 음수 덧셈 : no overflow (범위가 벗어나지 않음. 0으로 가까워짐) - 양수와 양수 덧셈 : Overflow if result sign is 1 (부호가 -가 될 가능성 있음) - 음수와 음수 덧셈 : Overflow if result sign is 0 (부호가 +가 될 가능성 있음) subtraction의 경우 - 양수 양수, 음수 음수 뺄셈 : no overflow - 양수-음수 뺄셈 : Overflow if result sign is 0 (부호가 +가 될 가능성 있음) - 음수-양수 뺄셈 : Overflow if result sign is 1 (부호가 -가 될 가능성 있음) * Dealing With Ove..