본문 바로가기

학교공부/컴퓨터구조

(18)
컴퓨터구조23 - Virtual Memory Logical address virtual address 각각의 프로그램은 own address로 실행하고 실시간으로 변환해서 산다. cache ram 과 비슷한 느낌이다 다만 ram hdd는 그차이가 매우 심하다. 따라서 page fault 날 시에 disk 가야돼서 손해가 매우 큼 -> hit rate를 최대한 올려야한다. temporal 과 spatial 사이의 적절한 값을 찾아서 page size 결정 fully associative placement 사용 page fault 는 SW로 처리 (hw가 빠르긴하지만 어차피 disk handle 하는데 시간 오래걸려서 SW로 해도 상관없다) Write-through 보다 당연히 Write-back 사용 Page Table : main memory SW..
컴퓨터구조 22 - Cache write through 장점 간단하고 빠르다 cache logic 따로 구현해서 bus 비는지 체크할필요도 없다 단점 트래픽 많아져서 write buffer 다차면 cpu blocking 생길 수 있다. write back 장점 memory access 효율성 올라간다 메모리를 random access하는거보다 sequence access하는게 빠르다. 한방에 몰아주니까 sequence access로 write해서 빨라진다? 단점 구현할게 많아진다 이걸 섞어서 - cpu - L1 dirty bit 저장할데도없고 자연적으로 wirte through 써야함 - 그 뒤부터 L1에 dirty bit 넣어서 write back 사용한다. Cache 성능 향상 1. miss rate를 줄이고 2. miss pen..
컴퓨터 구조 21 - Cache 마지막에 EMAT는 Tc cache에 접근하는 시간 m*Tm miss날시 그 다음 접근 시간. 만약 계속해서 미스나면 Tc + m*(EMAT') .... 이렇게 쭉쭉 늘어난다. 1. data를 놓는거 2. data를 어떻게 찾을거냐 3. 찾은 data가 유효한가 cache 구조가 어려우니까 일단 하나의 cache 구조를 설명한다. 오른쪽 이 main memory 16개 저장가능 왼쪽이 8개 저장가능한 cache라고 가정. mapping하는 특성은 바로 순서에 맞게 mapping한다. 0 0 8 16 24 1 1 9 17 25 2 2 10 18 26 3 3 11 19 27 4 4 12 20 28 5 5 13 21 29 6 6 14 22 30 7 7 15 23 31 Cache Memory 요런 index로 ..
컴퓨터구조 18 - SMT SMT에 대해서 추가적으로 고려할것 어느 thread에서 fetch할 것인가? starvation 방지 fairness 등등 SMT Fetch Policies 1.static polices Round Robin : 간단하게 RR 방식으로 하면 될거같지만 그렇게 성능이 좋지않다. slow thread 있을경우 pipeline을 monopoly해버리면 전체적으로 손해임. 2. dynamic polices favor thread with minial in-flight branch(branch 적은거), outstanding miss(캐시 미스확률 적은거),in-flight IS(명령어적은거) 등등의 방법 favor thread with higher real time 등등 - ICOUNT : priority 가..
컴퓨터구조 17 - SMT Multi threading 종류 Fine-grained MT Coarse-grained MT Simultaneous MT 이전에 위에 두개 배웠다. 각각 장단점이 존재한다. FG와 CG MT에서는 결국 한 클락안에서는 한 쓰레드를 갖고온다. SMT의 idea는 한 클락에서 multi thread의 명령어를 갖고오는거. 이전에 배운 superscalar 진행을 보자 single thread 상황에서 많은 hazard가 생겼다. 지금까지 배운 방법을 superscalar 적용해보자 1. predicated Execution branch를 없애고 성능 쪼금 향상돼도 어차피 nop있어서 별다를거 없다. 2. Chip Multiprocessor 멀티프로세서 환경이라면 아예 분리가 되니까 잘만 짜면은(높은 가동률..
컴퓨터구조 16 - Multithreading Thread Instruction stream with state Thread는 자기만의 독립적인 state(context)를 갖는다. 한 process안에 하나이상의 thread를 가질 수 있음. multi threading관점에서는 각각의 thread를 독립적인 program으로 생각한다. processor 입장에서 thread의 흐름(context)을 잘 기억해야된다. 이러한 문제를 해결하다보면 이전의 문제였던 control structural hazard 자연스럽게 해결할 수 있다. 그리고 여기서 나오는 multithreading은 hw관점에서의 이야기이다. Hardware multi threading 장단점 장점 간단하게 긴 latency를 가진 작업을 만날 때 다른 작업을 해서 전체 성능을 올..
컴퓨터구조 15 - SuperScalar 오늘도 성능을 올리기 위해 달린다. Superpipelining superpipelining이란 기존의 pipeline보다 더 잘게 자르는거다. 기존의 pipeline 단점이 명령어 한 cycle에 못끝내면 밑에것도 같이 길어진다는 점이다. 만약 균일하게만 자를 수 있다면 자르는게 도움이 된다. delay time을 줄여 clock frequency를 올릴 수 있어서 성능 개선. 근데 균일하게 자르는데 한계가 있다. 균일하지 못하면 어차피 큰 거에 bound되서 자르나 마나임. 정리하자면 depth가 늘어나서 clock cycle이 짧아지긴하나 depth가 깊어지니 forward/hazard hw가 더 필요하고 stall이 더 생긴다. (만약 ALU가 반띵됐다고 치면 load같은거 forward로도 해결..
컴퓨터구조 - 14(Predicated execution, Loop Unroll) 지금까지 정리하자면 branch는 프로그램의 15%~25% 차지할 정도로 자주 쓰이는 명령어임. 근데 이 구조상 branch 자주 쓰면 클락 낭비되고 암튼 별로임. 그래서 이 명령어를 효율적으로 사용하기위한 여러 방법들이 생겨남 지금까지 stall, backward taken forward not taken , branch delay slot , branch prediction을 배웠음. 이번에 배울 건 Predicated execution, Loop Unroll 이라는 방법이다. 전에 배운게 branch를 예측하는거라면 오늘의 테마는 branch를 없애보자 이다. Predicated Execution이란? : branch를 없애고, 각 명령어가 predicate bit을 갖고 알맞게 실행한다. pred..