CS 지식/컴퓨터구조

Parallel Processors from Client to Cloud Introduction 여러개 processor에다가 나눠서 각각에서 실행시키도록 한다. 목표: 더 높은 성능을 얻기 위해 여러 컴퓨터를 연결하는 것 Multiprocessors 여러개 core에서 골고루 task를 실행 Scalability, availability, power efficiency Task-level (process-level) parallelism 독립적인 작업에 대한 높은 throughput Parallel processing program 여러 프로세서에서 실행되는 단일 프로그램 Multicore microprocessors Chips with multiple processors (cores) Hardware..
Interrupts CPU가 있으면 CPU가 직접 check 즉, polling하지 않고 IO 자체가 준비가 되면 IO가 interrupt를 걸어서 준비가 됐음을 알린다. priority를 줄 수도 있음(우선순위를 먼저 처리) 장치가 준비됐거나 error가 발생했을 때, Controller는 CPU에게 interrupt를 건다. Interrupt는 exception과 같은 것. 그러나 명령 실행에 동기화되지 않음 instruction 사이에 handler를 호출할 수 있다 Cause information often identifies the interrupting device 이유 정보가 종종 interrupting device를 식별 Priority interrupts 더 긴급한 주의가 필요한 장치는 ..
Review) I/O (Input/Output) CPU입장에서 Memory 빼고는 다 I/O hard disk는 io와 controller에 연결 되어 있는 storage 입출력 모듈(IO)은 왜 필요할까요? 다양한 장치가 존재하는데 각자의 속도는 다 다릅니다. 출력 데이터 포맷도 다 다르고 그래서 일반화 할 수는 없을까? 해서 만들어진 것이 'I/O module' 입니다. (CPU와 RAM보다 속도도 느리기 때문에 버퍼링 할 수 있는 게 필요 했습니다.) https://com24everyday.tistory.com/173 빠른 것들은 그냥 붙이고 느린 것들은 bridge를 달아서 거기에 매다는 방식도 존재함 hierarchical bus data를 저장하는 register와 status/control ..
Virtual memory가 없다면 여러개의 프로그램이 돌아가는 multi task system인 경우에, 각 프로그램의 0번지는 physical memory의 한 곳에 mapping 될 것이기 때문에 충돌이 발생할 것이다. 이말인 즉슨, single task program이라면 VM이 없어도 되겠지만 multi program이라면 VM이 반드시 있어야 하는 것이다. https://ahnanne.tistory.com/15 TLB Event combinations cache size가 충분히 크지 못하면 TLB랑 page table은 hit인데 cache는 miss인 경우가 나타날 수 있다. page table miss는 physical memory에 없다는 뜻이기 때문에 cache가 hit일 수가 없다...
program마다 사용할 수 있는 address space가 있음 CPU에는 여러 프로그램들이 존재하고 각 프로그램마다는 주소가 존재한다. HDD에는 각 프로그램이 사용할 수 있는 virtual memory 공간이 할당되어 있다. program마다 사용할 수 있는 용량이 100GB라고 하고 실제(physical) 메모리에는 10GB만 있다고 해 보자 프로그램은 100GB를 사용할 수 있지만 실제로 bus를 통해 가는 경로는 PM(Physical memory)에서 간다. 근데 어떻게 10GB에서 오는데 100GB를 사용? VM에서 일부분은 PM에 존재하지만 VM의 나머지 부분은 hard disk에 있다. 그래서 PM에 없다면 100만배를 기다려서 hard disk에 갔다와야 하기 때문에 잠시 stop 해 ..
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..
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를 가지고 있을 것이다. ..
Preview) 오른쪽 아래에 있는 내가 공부를 하는데 책상에 책 몇 권만을 두고 공부를 한다. 이 책들은 내가 손만 뻗으면 쉽게 available 하지만 책상에는 많은 책을 두고 공부를 할 수 없다는 단점이 있다. 공부를 하다가 없는 책이 있다면 바로 왼쪽에 있는 책꽂이로 가서 원하는 책을 가져온다. 이 경우 조금의 시간이 더 걸린다. 만약 그 책꽂이에도 없다면 도서관 전체를 돌아 다니면서 찾아야 하고 그래도 없다면 인터넷을 통해 다른 서점에서 구하거나 해외에서 직구하거나 해야 한다. 굉장히 오랜시간이 걸린다. 이 굉장히 오랜 시간 걸릴 때 동안 숙제를 안 하고 있으면 굉장히 손해이기 때문에 그 책이 필요한 숙제는 잠시 접어두고 다른 숙제를 한다. 위의 비유에서 각각의 요소는 컴퓨터에서 무엇을 의미하는..
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 ..
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..
cdragon
'CS 지식/컴퓨터구조' 카테고리의 글 목록