1 / 73

제 4 장 . 단일 - 버스 다중프로세서 시스템

제 4 장 . 단일 - 버스 다중프로세서 시스템. 4.1 버스의 조직 4.2 버스의 기본 동작 4.3 버스 중재 4.4 캐쉬 일관성 유지 방법. 4.1 버스의 조직. 데이터 버스 (data bus) 시스템 요소들 사이에 데이터가 전송될 때 사용되는 선들의 집합 양방향 전송 선의 수 = 한번에 전송되는 데이터 비트의 수 주소 버스 (address bus) 프로세서가 기억장치와 읽기 / 쓰기 동작을 할 때 , 해당 기억장치를 지정하기 위한 주소를 전송하는 선들의 집합

agatha
Download Presentation

제 4 장 . 단일 - 버스 다중프로세서 시스템

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제4장. 단일-버스 다중프로세서 시스템 4.1 버스의 조직 4.2 버스의 기본 동작 4.3 버스 중재 4.4 캐쉬 일관성 유지 방법

  2. 4.1 버스의 조직 • 데이터 버스 (data bus) • 시스템 요소들 사이에 데이터가 전송될 때 사용되는 선들의 집합 • 양방향 전송 • 선의 수 = 한번에 전송되는 데이터 비트의 수 • 주소 버스 (address bus) • 프로세서가 기억장치와 읽기/쓰기 동작을 할 때, 해당 기억장치를 지정하기 위한 주소를 전송하는 선들의 집합 • 단방향 전송 (프로세서  기억장치) • 선의 수 = 주소 지정할 수 있는 기억장치의 최대 용량 • 제어 버스 (control bus) • 기억장치, 입출력장치, 버스 등을 제어하기 위한 선들의 집합 Parallel Computer Architecture

  3. 버스를 이용한 다중프로세서시스템 Parallel Computer Architecture

  4. 제어 버스 • 기억장치 및 입출력장치와의 데이터 교환 • 기억장치 쓰기(memory write), 기억장치 읽기(memory read) • 입출력 쓰기(I/O write), 입출력 읽기(I/O read) • 전송 확인(transfer acknowledge) • 버스 중재 (bus arbitration) • 버스 요구(bus request), 버스 승인(bus grant), 버스 사용중(bus busy) • 인터럽트 메커니즘 • 인터럽트 요구(interrupt request) • 인터럽트 인식(interrupt acknowledge) • 그 외 : 버스 클럭(bus clock), 리셋(reset) Parallel Computer Architecture

  5. 버스의 속도 (대역폭) • bus speed, bus bandwidth • 버스의 클럭의 주기와 데이터 버스의 폭에 의하여 결정 • PCI 버스 (33 MHz, 32 bit) • 버스 클럭의 주기 = 1 / (33 * 106) = 30 ns • 버스의 대역폭 = 4 byte / (30 * 10-9) = 133 Mbytes/sec • FSB(front Side Bus) • 보통 CPU의 내부 클럭 속도, 즉 기억장치와의 데이터 교환 속도를 의미 • QDR(Quad Data Rate) : 100 MHz  400 MHz • AGP는 66 MHz, PCI는 33 MHz Parallel Computer Architecture

  6. 4.2 버스의 기본 동작 • 쓰기 동작(write operation) • 버스 마스터가 버스 사용권을 획득한 후, • 버스를 통하여 주소와 데이터를 전송 • 읽기 동작(write operation) • 버스 마스터가 버스 사용권을 획득한 후, • 버스를 통하여 주소와 제어 신호를 전송하고, 데이터가 전송되어 올 때까지 대기 • 동기식 버스(synchronous bus) : 버스 동작들이 버스 클럭에 기준을 두고 발생  중대형시스템에서 사용 • 비동기식 버스(asynchronous bus) : 버스 클럭 없이, 관련된 버스 동작들의 발생 여부에 따라 동작  소형시스템에서 사용 Parallel Computer Architecture

  7. 버스의 기본 동작 (계속) • 기억장치 읽기 동작의 시간 흐름도 Parallel Computer Architecture

  8. 4.3 버스 중재 • 버스 경합 (bus contention) : 한 개의 버스를 공유하는 다중프로세서 시스템에서 여러 개의 버스 마스터들이 동시에 버스 사용을 요구하는 경우에 발생 • 버스 중재 (bus arbitration) : 버스 경합이 발생한 경우에 어떤 기준에 따라 버스 마스터들 중에서 한 개씩만 선택하여 순서대로 버스를 사용할 수 있게 해주는 동작 • 버스 중재기 (bus arbiter) : 버스 중재를 수행하는 하드웨어 모듈 • 기근 (starvation) : 특정 버스 마스터가 오랫동안 버스를 사용하지 못하는 현상 Parallel Computer Architecture

  9. 제어 신호들의 연결구조에 따른 버스중재 방식 • 병렬 중재 방식 (parallel arbitration scheme) • 버스 마스터와 같은 수의 버스 요구선 및 승인 신호선들이 필요 • 각 버스 마스터가 독립적인 버스 요구 신호선을 가지며, 중재 회로로 입력 • 버스 승인 신호가 각 버스 마스터에 대하여 별도로 발생 • 직렬 중재 방식 (serial arbitration scheme) • 버스 요구선 및 승인 신호선이 각각 한 개씩만 필요 • 각 신호선이 버스 마스터들 간에 직렬로 접속 • 접속되는 순서는 마스터들의 우선순위(priority)에 따라 결정 • 데이지 체인 방식 (daisy chain scheme) Parallel Computer Architecture

  10. 버스 중재기의 위치에 따른 버스중재 방식 • 중앙집중식 중재 방식 (centralized arbitration scheme) : 시스템 내에 한 개의 버스 중재기만 존재 • 분산 중재 방식 (decentralized arbitration scheme) : 시스템 내에 여러 개의 버스 중재기가 존재 • 장점 • 동작 속도가 빠름  중재 회로가 간단 • 신뢰도가 높음  어떤 중재기가 고장이 나더라도 해당 마스터에만 영향 • 단점 • 고장을 일으킨 중재기를 찾아내는 방법이 복잡 • 한 중재기의 고장이 전테 시스템의 동작에 영향을 줄 수도 있음 Parallel Computer Architecture

  11. 조합된 실제 버스 중재 방식 • 병렬 중재 방식 (parallel arbitration scheme) • centralized fixed priority scheme) • decentralized fixed priority scheme) • dynamic priority scheme) • 직렬 중재 방식 (serial arbitration scheme) • centralized serial arbitration scheme) • decentralized serial arbitration scheme) • 폴링 방식 (polling scheme) • 하드웨어 폴링 방식 • 소프트웨어 폴링 방식 Parallel Computer Architecture

  12. 4.3.1 병렬 중재 방식 (1) 중앙집중식 고정 우선순위 방식: 중재기에 가까이 위치한 순서대로 우선순위가 정해진 방식 Parallel Computer Architecture

  13. 중앙집중식 고정 우선순위 방식 (계속) • 마스터 1이 버스 사용중일 때, 마스터 3이 버스 사용을 요구한 경우 • 마스터 3이 버스 요구 신호(BREQ3)를 보내면, • 버스 중재기가 마스터 3에게 버스 승인 신호(BGNT3)를 보낸다 • 마스터 1이 버스 사용을 끝내고 버스 사용중 신호(BBUSY)를 비활성화하면, • 마스터 3이 BBUSY 신호를 다시 활성화하고 버스 사용을 시작 Parallel Computer Architecture

  14. 중앙집중식 고정 우선순위 방식 (계속) • 버스 중재에 대한 부울식과 중재기의 내부 회로 Parallel Computer Architecture

  15. (2) 분산식 고정 우선순위 방식 • 모든 버스 마스터들이 별도의 중재기를 가지는 방식 Parallel Computer Architecture

  16. (3) 가변 우선순위 방식 • 회전 우선순위 (Rotating priority) • 매 중재 동작이 끝난 후에는 모든 마스터들의 우선순위가 한 단계씩 낮아지고 가장 우선순위가 낮았던 마스터가 최상위 우선순위를 가지도록 하는 방법, 일단 버스 사용 승인을 받은 마스터는 최하위 우선순위를 가지며 바로 다음에 위치한 마스터가 최상위 우선순위를 가지도록 하는 방법 (acceptance-dependent식 회전 우선순위 방식) • 임의 우선순위 (Random priority) • 동등 우선순위 (Equal priority): 비동기식 버스 시스템에서만 사용하며, 경합이 발생할 경우 보통 FIFO 사용 • 최소 최근 사용 (Least recently used) Parallel Computer Architecture

  17. Acceptance-dependent식 회전 우선순위 방식 Parallel Computer Architecture

  18. 4.3.2 직렬 중재 방식 • 중앙집중식 직렬중재 방식 • 데이지-체인(Daisy-chain) 방식 : BGNT 신호가 데이지 체인된 중앙집중식 직렬 중재 방식, 버스 중재기에 가까운 마스터가 높은 우선 순위 Parallel Computer Architecture

  19. (2) 분산식 직렬 중재 방식 • 데이지 체인된 버스 승인 신호가 버스 중재기들을 순환형으로 접속 • 가변 우선순위 : 이전 버스 승인을 받은 마스터의 우측이 최상위 • 분산식이지만 단일 결함(single failure)이 전체 시스템에 영향 Parallel Computer Architecture

  20. 4.3.3 폴링 방식 • 버스 중재기가 각 마스터들이 버스 사용을 원하는 지를 주기적으로 검사하여 버스 승인 여부를 결정 (1) 하드웨어 폴링 방식 • 버스 중재기 내의 고정된 하드웨어에 의하여 모든 폴링 동작가 중재 기능이 수행되는 메카니즘 • 버스 중재기와 각 버스 마스터 간에 폴링 동작을 위한 폴링 선이 존재 • 2진 코드화된 폴링 주소 사용  2n개의 마스터를 가진 시스템에서는 n개의 폴링 선들이 필요 • 중재기가 마스터를 검사하는 순서에 의하여 우선순위 결정 Parallel Computer Architecture

  21. 하드웨어 폴링 방식의 구성도 Parallel Computer Architecture

  22. (2) 소프트웨어 폴링 방식 • 구성은 하드웨어 폴링 방식과 동일 • 버스 중재기에 프로그램을 실행할 수 있는 프로세서가 포함  지능 • 폴링할 마스터의 주소를 기억 가능 • 폴링 순서 변경 가능 • 속도는 느리지만, 융통성(flexibility)이 높음 • 결함 마스터를 폴링 순서에서 제외시킴으로써 시스템 결함 허용도를 높임 • 중재에 소요되는 시간이 길기 때문에 분산 시스템의 공유 버스 또는 메시지 전송 시스템(message passing system)의 중재 방식으로 적절 Parallel Computer Architecture

  23. 4.4 캐쉬 일관성 유지 방법 • 캐쉬 일관성 유지(cache consistency) • 다중프로세서시스템에서 공유 데이터가 여러 프로세서들의 캐쉬에 복사본으로 존재하는 상황에서 여러 캐쉬들과 주기억장치 저장된 데이터들 간에 일관성을 유지하도록 해주는 기술 • 데이터 불일치(data inconsistency)의 원인 • 변경 가능한 데이터의 공유(sharing of writable data) • 입출력 동작(I/O activity) • 프로세스 이주(process migration) Parallel Computer Architecture

  24. 공유 데이터의 불일치 Parallel Computer Architecture

  25. 공유 데이터의 불일치 (계속) Parallel Computer Architecture

  26. 공유 데이터의 불일치 (계속) Parallel Computer Architecture

  27. I/O 동작에 의한 데이터 불일치 Parallel Computer Architecture

  28. 프로세스 이주에 의한 데이터 불일치 • 프로세스 이주(process migration) : 대칭적 다중프로세서시스템에서 프로세스를 처리하던 프로세서가 변경되는 현상 • 프로세스 이주에 의한 데이터 불일치[예] - 프로세스 A가 P1에 의해 처리되던 동안 데이터 X를 수정하였으며 (P1의 캐쉬에만 수정된 데이터가 적재된 상태), 처리가 중단.- 후에, 프로세스 A가 다른 프로세서(P2)로 할당  P2는 X를 주기억장치로부터 인출 (데이터 불일치 발생) Parallel Computer Architecture

  29. 캐쉬 일관성 유지 방법 • 공유 캐쉬를 사용하는 방법 • 공유 변수는 캐쉬에 저장하지 않는 방법 • 잠금 변수들은 캐쉬에 저장하지 않는 방법 • 버스 감시 메커니즘을 이용하는 방법 • Write-through 일관성 유지 프로토콜 • Write-back 일관성 유지 프로토콜 • 디렉토리를 이용한 캐쉬 프로토콜 Parallel Computer Architecture

  30. 4.4.1 공유 캐쉬를 이용하는 방법 • 공유 캐쉬(shared cache) • 모든 프로세서들이 하나의 캐쉬를 공유하도록 하는 방법 • 동시 액세스가 가능하도록 여러 개의 모듈들로 구성 • 프로세서들과 공유 캐쉬 모듈들은 버스 또는 상호연결망에 의하여 연결 • 장점 : 항상 캐쉬 일관성이 유지됨 • 단점 • 프로세서들 간의 캐쉬 액세스 충돌이 빈번  성능 저하 • 캐쉬가 프로세서에 근접하게 위치해야 하는 원칙에 위배 • 모든 I/O 명령들의 공유 캐쉬 경유 필요 [예] Alliant사의 FX 시스템 : 2~4 개 프로세서들이 하나의 캐쉬 공유 Parallel Computer Architecture

  31. 4.4.2 공유 변수는 캐쉬에 저장하지 않는 방법 • 변경 가능한 공유 데이터는 주기억장치에만 저장 • 캐쉬저장 불가능 데이터 (noncacheable data) • lock 변수, 프로세스 큐(process queue)와 같은 공유 데이터 구조 • 임계영역에 의해 보호되는 데이터들 • 단점 • 사용자와 컴파일러에게 투명하지 않다(non-transparence) 컴파일러가 각 데이터에 tag를 붙여야 하고, 검색할 수 있는 H/W 필요 • 캐쉬 저장 불가능 데이터와 같은 블록에 포함된 일반 데이터의 캐쉬 저장도 불가능  캐쉬 적중률 저하 • 모든 I/O 데이터들도 캐쉬 저장 불가능  캐쉬 적중률 저하 Parallel Computer Architecture

  32. 4.4.3 잠금 변수들은 캐쉬에 저장하지 않는 방법 • 임계영역을 보호하는 lock 변수들만 ‘캐쉬저장 불가능’으로 지정 • 캐쉬 플러쉬(cache flush) 필요 • 임계영역에서 변경한 공유 데이터는 주기억장치도 갱신하고, 다른 캐쉬에 있는 모든 복사본을 무효화 • write-back 경우에는 H/W가 복잡 • 단점 • 전체 캐쉬의 플러쉬 필요 • 임계영역 내에서 액세스 된 데이터의 변경 여부를 표시하는 태그 필요 • I/O 동작의 수행 전에 캐쉬 플러쉬 필요 적은 용량의 캐쉬 시스템에서 적합 Parallel Computer Architecture

  33. 4.4.4 버스 감시 메커니즘을 이용하는 방법 • 데이터 일관성 유지를 위하여 버스 감시 기능을 가진 H/W 모듈 추가 • 스누프 제어기(snoop controller; 버스 감시기(bus watcher)) • 다른 프로세서에 의한 버스상의 기억장치 액세스의 주소를 검사하고,그 결과에 따라 자신의 캐쉬 블록의 상태(status)를 조정하는 H/W 모듈 • 각 캐쉬 블록들은 상태 비트들(status bits)을 가지며, 상태의 수(비트 수)와 종류는 쓰기 방식 및 일관성 유지 프로토콜에 따라 달라짐 • Write-through coherence protocol • Write-back coherence protocol (예: MESI protocol) Parallel Computer Architecture

  34. 버스 감시 메커니즘이 포함된 프로세서 모듈 Parallel Computer Architecture

  35. 가. Write-through 일관성 유지 프로토콜 • 프로세서가 캐쉬의 데이터를 수정하는 즉시, 주기억장치에도 갱신 • 스누프 제어기의 동작 • 주기억장치에 대한 쓰기 동작의 주소가 자신의 캐쉬에 있는 지 검사하고, • 존재한다면, 그 블록을 무효화(invalidate)시킨다 프로세서가 무효화된 블록을 액세스하는 경우에는 캐쉬 미스로 처리 • 캐쉬 데이터의 상태 • 유효(V : Valid) 상태: 캐쉬의 내용 = 주기억장치의 내용 • 무효(I : Invalid)상태: 캐쉬의 내용 ≠ 주기억장치의 내용 Parallel Computer Architecture

  36. Write-through 일관성 유지 프로토콜 (계속) Parallel Computer Architecture

  37. Write-through 일관성 유지 프로토콜 (계속) Parallel Computer Architecture

  38. Write-through 일관성 유지 프로토콜 (계속) Parallel Computer Architecture

  39. 나. Write-back 일관성 유지와 MESI 프로토콜 • 프로세서가 캐쉬의 데이터를 변경해도 주기억장치의 내용은 갱신되지 않음 다른 스누피 제어기들이 시스템 버스를 감시해도 변경 사실을 알 수 없음. 변경된 캐쉬의 스누피 제어기가 변경 사실을 다른 스누피 제어기들에게 통보 • 무효화 신호(invalidate signal) : 데이터의 변경 사실을 알려주기 위한 신호 • 무효화 사이클(invalidate cycle) : 무효화 신호가 전송되는 버스 사이클 Parallel Computer Architecture

  40. MESI 프로토콜에서 캐쉬 데이터의 상태 • 수정(M : Modified) 상태: 데이터가 수정(변경)된 상태 • 배타(E : Exclusive) 상태: 유일한 복사본이고, 주기억장치의 내용과 동일한 상태 • 공유(S : Shared) 상태: 데이터가 두 개 이상의 프로세서 캐쉬에 적재되어 있는 상태 • 무효(I : Invalid) 상태: 데이터가 다른 프로세서에 의해 수정되어 무효가 된 상태 Parallel Computer Architecture

  41. MESI 프로토콜 • MESI protocol의 상태 전이도 (실선) 프로세서의 동작에 의한 상태전이 (점선) 다른 캐쉬에서의 변화에 의한 상태전이 Parallel Computer Architecture

  42. (1) 데이터를 처음 읽는 경우 • P1이 주기억장치로부터 X를 처음 인출 :읽기 미스 (read miss) 주기억장치로부터 X를 읽어온 후, 상태를 ‘배타(E)’로 세트 Parallel Computer Architecture

  43. (2) 캐쉬에 적재된 데이터의 변경 • P1이 X를 새로운 값(X’)으로 변경 :쓰기 적중 (write hit) X’로 수정한 후, 상태를 ‘수정(M)’으로 세트 Parallel Computer Architecture

  44. (3) 데이터가 공유되는 경우 [I] • P1이 X를 가진 상태에서, P2도 X를 읽는 경우  읽기 실패 (read miss)  주기억장치로부터 읽음  P1의 스누프 제어기가 그 버스 동작을 확인하고, X의 상태를‘S’로 변경하며, P2로 공유 사실을 알림  P2가 X의 상태를‘공유(S)’로 세트 Parallel Computer Architecture

  45. (4) 데이터가 공유되는 경우 [II] • 앞의 결과와 같이 두 프로세서들이 X를 가진 상태에서 다른 프로세서(P3)가 X를 읽는다면, 같은 동작이 발생하며 데이터 상태는 ‘공유(S)’로 세트. (5) 데이터가 공유되는 경우 [III] • (2)의 결과 상태에서, 만약 P2가 X를 액세스한다면, • 캐쉬 미스 발생  주기억장치 읽기 동작 • P1의 스누프 제어기가 그 동작을 중단시키고, 자신의 데이터(X’)를 P2로 전송(캐쉬간 전송(cache-to-cache transfer))하며, X’를 주기억장치에도 갱신. • 캐쉬 상태는 모두 ‘공유(S)’로 세트 Parallel Computer Architecture

  46. 데이터가 공유되는 경우 [III] (계속) Parallel Computer Architecture

  47. 데이터가 공유되는 경우 [III] (계속) • 캐쉬간 전송이 지원되지 않는 시스템의 경우 : • P1의 스누프 제어기가 P2의 읽기 동작을 중단시키고, P2에게 ‘재시도(retry)’를 요구한 후, • P1이 X’를 주기억장치에 갱신하면, • P2가 읽기를 재시도하여 X’를 읽어간다. Parallel Computer Architecture

  48. (6) 공유 상태의 데이터가 변경될 때 • (3)의 결과 상태에서, P2가 X를 새로운 값으로 갱신하는 경우 : • P2가 버스를 통하여 무효화 신호(invalidate signal)를 방송 • X를 가진 캐쉬들은 X의 상태를 ‘무효(I)’로 변경하고, 확인 신호 전송 P2가 배타적 소유권 획득 • P2가 X를 새로운 값(X’)으로 갱신하고, 상태를 ‘수정(M)’ • 으로 변경 Parallel Computer Architecture

  49. (7) ‘M’상태의 데이터를 다시 변경하는 경우 • (6)의 결과 상태에서, P2가 X’을 다시 X’’로 변경하면,쓰기 적중(write hit)  데이터만 변경되고, 상태는 불변 Parallel Computer Architecture

  50. (8) I 상태의 데이터를 변경하는 경우 • (7)의 결과 상태에서, P1이 X를 수정하기 위하여 읽으려 한다면, 읽기 미스(read miss)발생 • 주기억장치 읽기 동작 시작 (수정을 위한 읽기(read with intend to modify: RWITM)) • P2가 X’’를 P1으로 보내주고, 데이터의 상태를 ‘무효(I)’로 변경 • P1은 X’’를 X’’’로 수정하고, 상태를 ‘수정(M)’으로 세트 • 캐쉬간 전송이 지원되지 않는 시스템의 경우: ‘retry’ 요구. Parallel Computer Architecture

More Related