분류 전체보기
-
Cache Summary 캐시에는 어떤 데이터를 가지는가? Recently used data (temporal locality) Nearby data (spatial locality) 데이터를 어떻게 찾는가? Set은 데이터의 주소에 의해 결정된다. block내 word도 주소에 의해 결정된다. associative cache에서 데이터는 여러 way 중 하나로 저장될 수 있다. 데이터는 어떻게 교체되는가? Least-recently used(LRU) way in the set Miss Rate Trends Compulsory는 처음에 일어났다가 그 이후는 거의 안생긴다. conflict도 cache size에 따라 줄어든다. 더 큰 block은 compulsory miss를 감소시킨다. 더 큰 bloc..
[컴퓨터구조] 16-3. Cache CoherenceCache Summary 캐시에는 어떤 데이터를 가지는가? Recently used data (temporal locality) Nearby data (spatial locality) 데이터를 어떻게 찾는가? Set은 데이터의 주소에 의해 결정된다. block내 word도 주소에 의해 결정된다. associative cache에서 데이터는 여러 way 중 하나로 저장될 수 있다. 데이터는 어떻게 교체되는가? Least-recently used(LRU) way in the set Miss Rate Trends Compulsory는 처음에 일어났다가 그 이후는 거의 안생긴다. conflict도 cache size에 따라 줄어든다. 더 큰 block은 compulsory miss를 감소시킨다. 더 큰 bloc..
2023.10.10 -
way는 한 cache(set) address에 들어갈 수 있는 장소가 몇 개가 있느냐?를 나타내는 숫자 애초에 tag를 비교하는 것은 시간이 오래걸려서 fully associative 같은 경우 Tag를 모두 비교하는 것은 매우 비효율적이기 때문에 이를 parallel 하게 모두 비교하자니 hardware 를 너무 무겁게 사용하게 된다. 그래서 이를 위한 특별한 메모리를 사용하는데 그것이 바로 Content addressable Memory(CAM) 이라고 한다. direct mapped (b=2) block size가 2인 direct mapped 한 address를 가져올 때 그것과 인접한 address도 하나 같이 가져오는데 이 둘의 인접해 있을 것이기 때문에 같은 tag를 가지고 있을 것이다. ..
[컴퓨터구조] 16-2. Cache Designway는 한 cache(set) address에 들어갈 수 있는 장소가 몇 개가 있느냐?를 나타내는 숫자 애초에 tag를 비교하는 것은 시간이 오래걸려서 fully associative 같은 경우 Tag를 모두 비교하는 것은 매우 비효율적이기 때문에 이를 parallel 하게 모두 비교하자니 hardware 를 너무 무겁게 사용하게 된다. 그래서 이를 위한 특별한 메모리를 사용하는데 그것이 바로 Content addressable Memory(CAM) 이라고 한다. direct mapped (b=2) block size가 2인 direct mapped 한 address를 가져올 때 그것과 인접한 address도 하나 같이 가져오는데 이 둘의 인접해 있을 것이기 때문에 같은 tag를 가지고 있을 것이다. ..
2023.10.10 -
Preview) 오른쪽 아래에 있는 내가 공부를 하는데 책상에 책 몇 권만을 두고 공부를 한다. 이 책들은 내가 손만 뻗으면 쉽게 available 하지만 책상에는 많은 책을 두고 공부를 할 수 없다는 단점이 있다. 공부를 하다가 없는 책이 있다면 바로 왼쪽에 있는 책꽂이로 가서 원하는 책을 가져온다. 이 경우 조금의 시간이 더 걸린다. 만약 그 책꽂이에도 없다면 도서관 전체를 돌아 다니면서 찾아야 하고 그래도 없다면 인터넷을 통해 다른 서점에서 구하거나 해외에서 직구하거나 해야 한다. 굉장히 오랜시간이 걸린다. 이 굉장히 오랜 시간 걸릴 때 동안 숙제를 안 하고 있으면 굉장히 손해이기 때문에 그 책이 필요한 숙제는 잠시 접어두고 다른 숙제를 한다. 위의 비유에서 각각의 요소는 컴퓨터에서 무엇을 의미하는..
[컴퓨터구조] 16-1. CachePreview) 오른쪽 아래에 있는 내가 공부를 하는데 책상에 책 몇 권만을 두고 공부를 한다. 이 책들은 내가 손만 뻗으면 쉽게 available 하지만 책상에는 많은 책을 두고 공부를 할 수 없다는 단점이 있다. 공부를 하다가 없는 책이 있다면 바로 왼쪽에 있는 책꽂이로 가서 원하는 책을 가져온다. 이 경우 조금의 시간이 더 걸린다. 만약 그 책꽂이에도 없다면 도서관 전체를 돌아 다니면서 찾아야 하고 그래도 없다면 인터넷을 통해 다른 서점에서 구하거나 해외에서 직구하거나 해야 한다. 굉장히 오랜시간이 걸린다. 이 굉장히 오랜 시간 걸릴 때 동안 숙제를 안 하고 있으면 굉장히 손해이기 때문에 그 책이 필요한 숙제는 잠시 접어두고 다른 숙제를 한다. 위의 비유에서 각각의 요소는 컴퓨터에서 무엇을 의미하는..
2023.10.10 -
Topics Introduction Memory System Performance Analysis Caches Virtual Memory I/O는 다른 포스팅에서 다루었다.(중요하기 때문에) Memory-Mapped I/O Summary Introduction Computer performance는 다음에 의존한다. Processor performance Memory system performance RAM 앞서 clock time을 줄이기 위해 노력을 했는데 결국 memory가 안 좋으면 말짱 도루묵이다. CPU와 Memory 사이에는 speed gap차이가 상당히 크다. CPU: 0.25ns / Mem: 20ns Processor - Memory Gap 이전 포스팅에서 access memory를 1 ..
[컴퓨터구조] 15. MemoryTopics Introduction Memory System Performance Analysis Caches Virtual Memory I/O는 다른 포스팅에서 다루었다.(중요하기 때문에) Memory-Mapped I/O Summary Introduction Computer performance는 다음에 의존한다. Processor performance Memory system performance RAM 앞서 clock time을 줄이기 위해 노력을 했는데 결국 memory가 안 좋으면 말짱 도루묵이다. CPU와 Memory 사이에는 speed gap차이가 상당히 크다. CPU: 0.25ns / Mem: 20ns Processor - Memory Gap 이전 포스팅에서 access memory를 1 ..
2023.10.10 -
Pipelined Performance Example SPECINT2000 benchmark: 25% loads 10% stores 11% branches 2% jumps jump 명령이 fetch되고 decode 되면서 jump라는 것을 알 수 있는데 그 때 PC에 BTA를 넣어주어야 하는데 이미 그 다음 줄 instruction이 들어와 있다. 그래서 그 명령을 flush 해 주는 clock이 하나 더 소비 되기 때문에 jump 명령의 CPI는 2이다. 52% R-type Suppose: 다음 명령어에 의해 사용되는 loads의 40% -> load use hazard(stalling) CPI = 2 (due to stalling) 잘못 예측된 branch의 25% CPI = 2 (due to flu..
[컴퓨터구조] 14-3. Pipelined MIPS Performance and Exception handlerPipelined Performance Example SPECINT2000 benchmark: 25% loads 10% stores 11% branches 2% jumps jump 명령이 fetch되고 decode 되면서 jump라는 것을 알 수 있는데 그 때 PC에 BTA를 넣어주어야 하는데 이미 그 다음 줄 instruction이 들어와 있다. 그래서 그 명령을 flush 해 주는 clock이 하나 더 소비 되기 때문에 jump 명령의 CPI는 2이다. 52% R-type Suppose: 다음 명령어에 의해 사용되는 loads의 40% -> load use hazard(stalling) CPI = 2 (due to stalling) 잘못 예측된 branch의 25% CPI = 2 (due to flu..
2023.10.10 -
전에 배운 single cylce에 pipeline을 더해서 성능을 획기적으로 상승시킨다. 그러나 이 과정에서 발생하는 문제, 혹은 위험(hazard)이 있는데 이는 다음과 같다. Structural hazard HW는 하나인데 같은 cycle에 두 개의 명령어를 쓰려고 함. Data hazard 두 개의 명령어가 같은 storage에 접근 명령어가 정순서로 뽑아질 때 나옴 Control hazard 한 명령어가 다음 명령어에 영향을 끼친다. Structural hazard 모든 instruction의 수행이 IF-ID-EX-MEM-WB으로 이루어진다고 가정했을 때 4번째 Cycle에서는 첫 번째 instruction의 Memory Access와 네 번째 instruction의 IF가 동시에 Memory..
[컴퓨터구조] 14-2. Pipelined MIPS - hazard전에 배운 single cylce에 pipeline을 더해서 성능을 획기적으로 상승시킨다. 그러나 이 과정에서 발생하는 문제, 혹은 위험(hazard)이 있는데 이는 다음과 같다. Structural hazard HW는 하나인데 같은 cycle에 두 개의 명령어를 쓰려고 함. Data hazard 두 개의 명령어가 같은 storage에 접근 명령어가 정순서로 뽑아질 때 나옴 Control hazard 한 명령어가 다음 명령어에 영향을 끼친다. Structural hazard 모든 instruction의 수행이 IF-ID-EX-MEM-WB으로 이루어진다고 가정했을 때 4번째 Cycle에서는 첫 번째 instruction의 Memory Access와 네 번째 instruction의 IF가 동시에 Memory..
2023.10.10 -
Pipelined MIPS Performance Latency (Execution Time) Throughput (Bandwidth) : 단위 초(unit time)당 수행하는 일(task)의 양 # of task/unit time Example) ideal case instruction 100만개가 있고, 한 instruction 당 1sec가 걸린다고 가정 total time = 100만 sec Latency = 1 sec Throughput = 1 inst/sec 0.2로 나눈 것(5개로 나뉨, multi) total time = 1 sec + (0.2 x 999,999) = 0.2 x 1000000 = 20만 sec Latency = 1 sec 그대로 1초임 Throughput = 1/0.2 = ..
[컴퓨터구조] 14-1. Pipelined MIPSPipelined MIPS Performance Latency (Execution Time) Throughput (Bandwidth) : 단위 초(unit time)당 수행하는 일(task)의 양 # of task/unit time Example) ideal case instruction 100만개가 있고, 한 instruction 당 1sec가 걸린다고 가정 total time = 100만 sec Latency = 1 sec Throughput = 1 inst/sec 0.2로 나눈 것(5개로 나뉨, multi) total time = 1 sec + (0.2 x 999,999) = 0.2 x 1000000 = 20만 sec Latency = 1 sec 그대로 1초임 Throughput = 1/0.2 = ..
2023.10.10 -
Multicycle Processor Performance 명령어들은 다 다른 cycle의 수를 가진다. 3 cycles: beq, j 4 cycles: R-Type, sw, addi 5 cycles: lw CPI is weighted average SPECINT2000 benchmark: 25% loads 10% stores 11% branches 2% jumps 52% R-type Average CPI = (0.11 + 0.02)(3) + (0.52 + 0.10)(4) + (0.25)(5) = 4.12 Multicycle critical path: Tc = tpcq_ALUout + tmux + max(tALU + tmux, tmem) + tsetup write은 read보다 조금 걸리고 registe..
[컴퓨터구조] 13. Multi-cycle PerformanceMulticycle Processor Performance 명령어들은 다 다른 cycle의 수를 가진다. 3 cycles: beq, j 4 cycles: R-Type, sw, addi 5 cycles: lw CPI is weighted average SPECINT2000 benchmark: 25% loads 10% stores 11% branches 2% jumps 52% R-type Average CPI = (0.11 + 0.02)(3) + (0.52 + 0.10)(4) + (0.25)(5) = 4.12 Multicycle critical path: Tc = tpcq_ALUout + tmux + max(tALU + tmux, tmem) + tsetup write은 read보다 조금 걸리고 registe..
2023.10.10