1. 다음 각 설명에 해당하는 것의 번호를 모두 써라.
    (1) Ideal CPI를 줄이는 것들은?
Software pipelining, Superscalar
    (2) Data Hazard stall을 줄이는 것들은?
Software pipelining, Compiler speculation
    (3) Control Hazard stall을 줄이는 것들은?
Compiler speculation, Branch prediction, Loop unrolling
2. Scoreboard에서
    (1) 1st stage(ID1)에서 stall되는 경우 두 가지는?
Structual Hazard 나 WAW hazard 발생할 경우 
    (2) 2nd stage(ID2)에서 stall되는 경우는?
Data Hazard가 발생할 경우
3. (1) Coarse-grained multithreading은 fine-grained multithreading과 어떻게 다른가?
Fine-grained multithreading : 각 명령어 마다 스레드를 교체
                             여러 스레드는 인터리빙 방식으로 실행
Coarse-grained multithreading :  L2 캐시 미스와 같이 오랜 시간이 걸리는 긴 스톨의 
                                           경우에만 발생
   (2) Coarse-grained multithreading의 장점과 단점을 설명하라.
- 장점: 빠른 스레드 스위칭을 구현할 필요를 덜어준다.
          각 스레드의 실행 지연 시간도 줄여준다.
- 단점: 파이프라인 시작 오버해드가 크기때문에 짧은 스톨에서 처리속도 저하를 극복할 수 있는 능력을 제한한다.
  (3) Fine-grained multithreading과 simultaneous multithreading의 차이점은?
Fine-grained multithreading은 한 클럭 사이클에 대하여 하나의 스레드만 명령을 이슈하지만 Simultaneous multithreading은 한 클럭 사이클에 대하여 여러 스레드가 명령을 이슈한다
4. MSI Writeback Invalidation Snoop-based cache coherence protocol에서
   (1) Shared 상태인 block을 processor가 요청해서 write hit인 된 경우 이 block은 어떤 상태가 되는가?
Modified
   (2) 그 외에 이 cache의 controller가 하는 일은? 
           
   (3) 이 때 이 block을 가지고 있는 다른 cache controller(s)는 어떤 동작을 하며, 이 block을 어떤 상태로 만드는가?

   (4) Update protocol이라면 (3)이 어떻게 달라지겠는가?

5. Cache miss의 종류 4 가지를 쓰고, 각각이 발생하는 원인을 서술하라.
A. Compulsory miss( 강제 미스)
    블록에 대한 처음 엑세스는 캐시에서 발견할 수 없다.
    왜냐하면 블록이 먼저 캐시로 인출되어야 하기 때문이다.
B. Capacity miss(용량 미스)
    만약에 캐시가 프로그램의 실행시간 동안 모든 블록을 갖고 있을수 없다면(강제미스에 추가하여) 용량 미스가 발생된다. 왜냐하면 한번 인출된 블록이 교체된 후 다시 인출되어야 하기 때문이다.
C. Conflict miss(충돌 미스)
   블록 배치 방식이 완전 연관 방식이 아닐 경우( 강제미스와 용량미스에 추가하여) 충돌미스가 발생한다. 왜냐하면 충돌된 블럭들이 같은 집합에 사상되면 이 블록은 교체된 후에 나중에 다시 인출되기 때문이다.
D. Coherence miss(일관성 미스)
    멀티프로세스에서 여러 캐시의 내용에 대한 일관성을 유지하기 위하여 캐시 플러시(flush)에 의해 발생되는 미스이다.
 

6. Cache의 miss rate를 낮추기 위한 방법 5 가지를 열거하고, 각각은 위 6번 문제의 miss 중 어느 miss를 줄이는지 써라.

A. 블럭크기를 크게한다.(Compulsory)
B. High Associativity(Conflict)
C. Victim Caches(Conflict)
D. Pseudo Associative Caches
E. Hardware Prefetching of Instructions and Data(Compulsory)
F. Software Prefetching of Data
G. Compiler Optimization(Conflict)
H. Skew Associative Cache(Conflict)
I. Large Cache(Capacity)


'Education > Operating System' 카테고리의 다른 글

운영체제  (2) 2011.03.11
이벤트 드리븐  (0) 2010.06.28
스레드 컨텍스트 스위치 시점 알 수 있는 방법  (0) 2010.06.28
geekos  (3) 2010.06.27
chapter 7. Memory  (2) 2009.12.11
Posted by 초상큼발랄
l