1 / 45

제 7 장 고성능 입출력시스템 구조

제 7 장 고성능 입출력시스템 구조. 7.1 I/O 서브시스템 설계의 주요 사항들 7.2 I/O 시스템 구조의 사례 분석 7.3 RAID 7.4 디스크 캐쉬. 개 요. 프로세서 성능과 I/O 서브시스템의 성능 간에 매우 큰 불균형 존재 컴퓨터의 응용분야 확대 : 온라인 트랜잭션 , 웹 I/O, 멀티미디어 데이터 처리 , 분산처리 응용 , 등  I/O 통신량 증가  대규모 병렬컴퓨터에서 I/O 서브시스템이 성능 병목 I/O 서브시스템의 중요성 증가.

glyn
Télécharger la présentation

제 7 장 고성능 입출력시스템 구조

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. 제7장고성능 입출력시스템 구조 7.1 I/O 서브시스템 설계의 주요 사항들 7.2 I/O 시스템 구조의 사례 분석 7.3 RAID 7.4 디스크 캐쉬

  2. 개 요 • 프로세서 성능과 I/O 서브시스템의 성능 간에 매우 큰 불균형 존재 • 컴퓨터의 응용분야 확대 : 온라인 트랜잭션, 웹 I/O, 멀티미디어 데이터 처리, 분산처리 응용, 등  I/O 통신량 증가  대규모 병렬컴퓨터에서 I/O 서브시스템이 성능 병목 • I/O 서브시스템의 중요성 증가 Parallel Computer Architecture

  3. 7.1 입출력서브시스템 설계의 주요 사항들 7.1.1 I/O 네트워크의 구성 • I/O 네트워크 : I/O 장치와 프로세서 및 주기억장치 사이의 데이터 이동을 위한 상호연결망 • 분산-기억장치 다중프로세서시스템의 구성 요소들 • 계산 노드(compute node) : 프로세서와 기억장치로 구성되며, 일반적인 프로그램 처리 • I/O 노드(I/O 노드) : 프로세서와 기억장치 및 I/O 장치 인터페이스로 구성되며, 계산 노드들로부터의 I/O 요구를 처리 • 계산 노드들과 I/O 노드들 간의 상호 연결 방식 필요 Parallel Computer Architecture

  4. I/O 노드들의 접속 방법 • I/O 노드들을 상호연결망에 직접 접속 [장점] 하드웨어가 간단 [단점] 전체 상호연결망의 통신량 증가로 시스템 성능 저하 burst mode의 I/O 통신으로 인하여 일반적인 통신 지연 증가 • 전용 I/O 네트워크(dedicated I/O network)의 사용 [장점] 상호연결망의 통신량을 증가시키지 않음 [단점] 하드웨어 복잡, 비용 증가 • I/O 노드들을 상호연결망의 일부 지점에 접속 [장점] 위의 두 방법의 단점 보완 [요구사항] I/O 노드의 수 및 접속 지점 결정 필요  연결성(connectivity), 대역폭, 비용 간의 tradeoff로 결정 Parallel Computer Architecture

  5. 7.1.2 I/O 장치의 관리 • I/O 노드로 사용할 노드들의 위치에 따라, 각 I/O 노드가 관리할 I/O 장치의 종류와 수의 결정 필요 • I/O 관리 방식에 따른 시스템 구성 • 중앙집중식: 하나의 I/O 노드에게 모든 I/O 관리 기능을 집중시키는 방법 [장점] H/W 간단, [단점] I/O 노드가 성능 병목이 될 위험 • 완전 분산식: 모든 노드들에게 I/O 관리 기능을 완전히 분산시키는 방법 [장점] 성능 병목 방지, [단점] 비용 증가 • 전용 I/O 노드 사용: 몇몇 노드들만 전용 I/O 노드로 지정하는 방법 [장점] 시스템 구성 변경 용이, I/O 노드의 구성 다양화 가능, 계산 노드들의 속도가 개선됨 (I/O 기능을 수행하지 않으므로) Parallel Computer Architecture

  6. I/O 장치 관리를 위한 시스템 구성 방법들 Parallel Computer Architecture

  7. 7.1.3 I/O 노드의 배치 • 병렬컴퓨터시스템 내에서 I/O 노드 배치(placement) 방식 • I/O 노드들만 별도의 클러스터(cluster)로 묶어두는 방법[장점] I/O 트래픽이 일반적인 프로세서간 통신에 미치는 영향이 적음[단점] I/O 노드로의 경로가 병목이 됨 • I/O 노드들을 네트워크 내의 적절한 위치들을 선정하여 분산 배치[장점] 경로 병목 현상 완화됨[단점] I/O 통신이 프로세서간 통신을 지연시킬 우려 있음  해결책 : 하이퍼큐브에서 해밍 코드를 이용한 I/O 배치 (그림 7-2) • I/O 노드들을 네트워크 내 임의의 위치에 배치[특징] I/O 노드의 위치가 성능에 별 영향을 주지 않는 경우에 사용가능 Parallel Computer Architecture

  8. [예] 하이퍼큐브에서 최적 I/O 노드 배치 방법 • 8 개 노드들 중 두 개가 I/O 노드 • 모든 계산 노드들이 어느 한 I/O 노드와 직접 접속 • N 차원 하이퍼큐브에 대해서도 적용 가능 Parallel Computer Architecture

  9. 7.2 I/O 서브시스템 구조의 사례 분석 7.2.1 중형급 서버 • 단일-버스 다중프로세서시스템 : I/O 프로세서 이용 Parallel Computer Architecture

  10. 7.2.2 대형 메인프레임컴퓨터 • IBM 메인프레임의 I/O 구조 : CPU와 디스크들간에 다중 통로 구성 I/O 대역폭 및 디스크 이용 효율 향상 Parallel Computer Architecture

  11. 7.2.3 CRAY Y-MP 슈퍼컴퓨터 • 네 개의 IOP들 사용 • MIOP : 시스템 운영자 터미널 접속 • BIOP & DIOP : 고속 I/O 장치(디스크) 관리 • XIOP : 저속 I/O 장치 관리 (블록 멀티플랙싱 지원) Parallel Computer Architecture

  12. 7.2.4 IBM RP3 병렬컴퓨터 • 최대 512개의 프로세서로 구성되는 대규모 병렬컴퓨터 • 오메가 네트워크를 이용한 공유-기억장치 시스템 구조 • 다중-디스크 I/O 시스템으로 구성 : 8개의 프로세서들로 구성되는 클러스터 당 한 개씩의 ISP(I/O and Support Processor) 배치  클러스터 내 I/O 요구 처리 Parallel Computer Architecture

  13. RP3 병렬컴퓨터의 I/O 서브시스템 구조 Parallel Computer Architecture

  14. 7.2.5 Intel iPSC • 하이퍼큐브 구조를 기반으로 한 병렬컴퓨터 • iPSC/2 및 iPSC/860 시스템의 I/O 구조 : 선택된 특정 노드(I/O node)들만디스크 액세스 기능을 담당 (I/O 노드 : SCSI 인터페이스 포함) Parallel Computer Architecture

  15. 하이퍼큐브-기반 병렬컴퓨터 (계속) • nCUBE 시스템: 하이퍼큐브-기반 병렬컴퓨터 • 별도의 I/O 네트워크를 통하여 I/O 노드 보드 접속 • I/O 통신 : I/O 노드들이 DMA 채널을 통하여 계산 노드들과 통신 Parallel Computer Architecture

  16. nCUBE 시스템 (계속) • I/O 노드 : I/O 프로세서, SCSI 어뎁터 및 DMA 제어기 포함 [단점] 네트워크 추가  H/W 복잡 [장점] 계산 노드는 계산 작업만 전담 계산 노드간 통신이 I/O 트래픽에 영향을 받지 않음 시스템 확장 용이 : I/O 보드 추가로 가능 Parallel Computer Architecture

  17. 7.2.6 Intel Paragon • Paragon XP/S : Intel사의 4세대 분산-기억장치 다중프로세서시스템 • 매쉬 네트워크 이용 • 시스템 확장 : 행 혹은 열 단위로 노드 수 확장 • I/O 노드 • 매쉬 네트워크의 행 단위로 추가 • 고성능 인터페이스(HIPPI, SCSI 등) 제공 Parallel Computer Architecture

  18. Intel Paragon XP/S의 I/O 구조 Parallel Computer Architecture

  19. 7.2.7 MasPar MP-1 • 계산 위주의 응용들(시뮬레이션, 영상처리 등)을 고속 처리하기 위한 병렬컴퓨터시스템 • SIMD형 분산-기억장치 다중프로세서시스템 • 클러스터 : 16개의 PE들이 2차원 4x4 매쉬 (X-net) 구조로 연결 • 프로세서 보드 : 64개의 PE 클러스터들로 구성 • 시스템 내 최대 클러스터 수 : 1024개 (16 프로세서 보드)  최대PE 수 = 16K 개 • 클러스터 간 네트워크 : 다단계 크로스바스위치 네트워크 (그림 6-31참조) Parallel Computer Architecture

  20. MasPar MP-1시스템의 I/O 구조 • I/O 접속: 디스크 캐쉬에 해당하는 I/ORAM(SSD) 및 각종 I/O 인터페이스들을 포함하는 I/O 채널 이용 Parallel Computer Architecture

  21. 7.2.8 CM-5 • Thinking Machine사에 의해 개발된 병렬컴퓨터 • 패트 트리(Fat tree) 상호연결망을 통하여 SPARC 프로세서 노드들을 접속 • 노드들의 일부분은 계산 노드로, 일부분은 전용 I/O 노드로 사용 • I/O 노드들은 트리 구조의 한 파티션(partition)에 접속되며, PM(Partition Manager)에 의해 관리됨 • I/O 노드 : 프로세서, 버퍼 기억장치, CM-5 인터페이스 및 I/O 버스 인터페이스 포함 • 용도에 따라 디스크 노드, HIPPI-네트워크 노드, 테이프 노드라고 불림 Parallel Computer Architecture

  22. CM-5 병렬컴퓨터의 I/O 구조 Parallel Computer Architecture

  23. 7.3 RAID • 프로세서 성능과 I/O 서브시스템의 성능 간에 매우 큰 불균형 존재 • 프로세서의 속도 : MIPS = 2 year-1984 • 칩당 집적도 : 칩당 트랜지스터의 수 = 2 year-1964 • 디스크 저장 밀도 : 평방 인치 당 저장되는 비트의 수 MAD(Maximum Areal Density) = 10 (year-1971)/10 • 디스크 액세스 속도 : 매년 5~10% 향상  주기억장치 속도의 1/105 • 디스크 저장밀도의 증가에 따라 지난 10년간 디스크 탐색시간 : 1/10로 단축 • 회전 구동장치 속도: 7200, 10000, 15000, 20000 rpm으로 증가 회전 지연시간 단축 Parallel Computer Architecture

  24. 7.3.1 RAID 출현의 배경 • 디스크 배열(Disk array) • 여러 개의 디스크들을 하나의 그룹으로 구성하여 액세스의 병렬성을 높이면서도 사용자에게는 한 개의 논리적 디스크 유니트로 보이게 하는 기술 • 장점 • 디스크 입출력의 대역폭을 높일 수 있다 • 여러 개의 입출력 요구들을 병렬로 처리할 수 있다 • 디스크 인터리빙(disk interleaving; disk striping) • 연속적으로 배열되어 있는 디스크들에 각 데이터 블록을 비트, 바이트 혹은 블록(block) 단위로 분산 저장하는 방식 • 동시 액세스 및 병렬 전송 가능  데이터 전송 속도 향상 Parallel Computer Architecture

  25. 디스크 인터리빙을 이용한 분산저장 Parallel Computer Architecture

  26. 대형 디스크와 디스크 배열의 특성 비교 • 디스크 배열의 MTTP(Mean Time To Failure) • (단일 디스크의 MTTP) / (배열 내의 디스크들의 수) • MTTR(Mean Time To Repair) Parallel Computer Architecture

  27. 7.3.2 RAID의 종류 • Redundant Array of Inexpensive Disk • 많은 수의 값싼 디스크들을 디스크 배열 기술 방식에 기반한 배열 구조로 연결하고 하나의 유니트로 패키지화 함으로서 신뢰도와 전송 대역폭을 향상시키는 기술 • 저렴한 가격으로 더 큰 용량을 가진 디스크 시스템을 구성 가능 • 결함 허용 능력을 높이면서도 동시 액세스 가능한 RAID 조직 연구 Parallel Computer Architecture

  28. RAID의 종류 D = 데이터가 저장되는 디스크들의 전체 수 (검사 디스크는 제외) G = 한 그룹내의 데이터 디스크들의 수 (검사 디스크는 제외) C = 한 그룹내의 검사 디스크들의 수 NG = D/G = 그룹들의 수 • RAID-1 : disk mirroring, G=1, C=1 • RAID-2 : bit interleaving, Hamming code, 2C–1 ≤ G+C • RAID-3 : parity, C=1 • RAID-4 : block interleaving , C=1 • RAID-5 : rotated parity, C=1 • RAID-6 : 2-dimensional parity, C=2 Parallel Computer Architecture

  29. Non-Redundant (RAID Level 0) Mirrored (RAID Level 1) Memory-Style ECC (RAID Level 2) RAID의 종류 Parallel Computer Architecture

  30. Bit-Interleaved Parity (RAID Level 3) Block-Interleaved Parity (RAID Level 4) Bit-Interleaved Distributed-Parity (RAID Level 5) P+Q Redundancy (RAID Level 6) RAID의 종류 Parallel Computer Architecture

  31. RAID-1 • 디스크 반사(disk mirroring) 방식 • 각 디스크 그룹이 한 개의 데이터 디스크와 그 디스크의 내용이 중복 복사되어 있는 검사 디스크로 구성 (G=1, C=1)  50% 오버헤드 • Tandem사의 NONSTOP 컴퓨터 Parallel Computer Architecture

  32. RAID-2 • 비트-단위 인터리빙 및 검사 디스크 사용 • 검사 디스크의 수는 해밍 코드의 원리에 따라 결정2C–1 ≥ G+C • G=8인 경우, C=4  50% 오버헤드 • G=16인 경우, C=5  31% 오버헤드 • 검사 디스크 수(C)는 log2G에 비례 Parallel Computer Architecture

  33. RAID-2 (계속) • 해밍 코드법에 기반을 둔 디스크 배치도 (예: 데이터 비트 수 = 8) Parallel Computer Architecture

  34. RAID-2 (계속) • 검사 비트의 계산 • C8 = • C4 = • C2 = • C1 = • 신드롬 단어(syndrome word) : 원래(저장 시) 데이터에 대한 검사 비트들과 다시 읽은 후의 데이터에 대한 검사 비트들 간의 exclusive-OR 결과값. • 신드롬 단어 =0 이면, 오류 없음 • 신드롬 단어 /=0 이라면, 그 값이 오류가 발생한 비트의 위치를 가리킴 오류 정정 Parallel Computer Architecture

  35. RAID-3 • 패리티 디스크 사용 • 그룹 당 한 개의 패리티 디스크 사용 (C=1) • G=10인 경우, C=1  10% 오버헤드 • G=25인 경우, C=1  4% 오버헤드 [예] 두 번째 디스크 오류 발생시  b2= p ⊕ b1⊕ b3⊕ b4 • 문제점 : 매 쓰기 동작 때마다 패리티 비트의 갱신 필요  병목 현상 발생 Parallel Computer Architecture

  36. RAID-4 • 블록-단위 인터리빙 • 한 개의 블록을 분산 저장하지 않고 한 개의 디스크에 저장 • 그룹 당 여러 개의 데이터 전송 통로들을 제공해 줌으로써, 즉 전송 동작에 병렬성을 추가함으로써 전송률(transfer rate)을 개선 • RAID-3 구조에서 인터리빙 단위를 블록(섹터)로 변경 • 장점 : 단일 디스크의 읽기 동작에 병렬성 구현 • 단점 : 작은(한 블록) 쓰기 동작에 두 개의 디스크를 사용하며, 네 번의 액세스 필요 Parallel Computer Architecture

  37. RAID-4 (계속) [예] B2가 새로운 내용 B2’로 변경되는 경우, 새로운 패리티 블록 계산 :P’ = B1⊕B2’⊕B3⊕B4  세 번의 디스크 읽기 & 두 번의 쓰기 필요 (디스크 수가 증가하면, 액세스 수도 증가)P’ = B1⊕B2’⊕B3⊕B4⊕(B2⊕B2) = (B1⊕B2⊕B3⊕B4)⊕B2⊕B2’ = P⊕B2⊕B2’  두 번의 디스크 읽기와 두 번의 디스크 쓰기 필요(전체 디스크의 수에 관계없이 항상 동일) Parallel Computer Architecture

  38. RAID-5 • 회전 패리티(rotated-parity) 방식 • 패리티 정보를 그룹 내 모든 디스크들로 분산 저장하는 방식 (라운드-로빈) • RAID-3에서 발생되는 병목 현상을 개선한 구조 • 장점 : 패리티 갱신을 포함하는 쓰기 동작의 병렬처리 가능  병렬성 = (G+1)/2 Parallel Computer Architecture

  39. RAID-6 • 2차원 패리티(2-dimensional parity) 방식 • RAID-5에 열에 대한 패리티 외에 행에 대한 패리티 추가 • 장점 : 2개 이상의 디스크에 결함이 발생하여도 회복 가능 • 단점 : 한번의 쓰기 동작에 6번의 액세스 동작 필요 Parallel Computer Architecture

  40. RAID 조직의 비교 • 입출력 요구의 블록 크기에 관계없이 좋은 성능을 보이는 조직 : RAID-1, RAID-5 • 작은 블록의 읽기와 쓰기가 많은 환경  RAID-1 • 용량과 비용을 중요시하는 응용이나 큰 블록에 대한 입출력 요구가 많은 경우  RAID-5 • 가격 대 성능 비 측면  RAID-5가 가장 우수 Parallel Computer Architecture

  41. 7.4 디스크 캐쉬 (Disk Cache) • 목적 : 프로세서와 입출력 시스템 간의 속도 차이를 줄이기 위해 • 주기억장치와 디스크 사이에 위치한 반도체 기억장치(RAM) • 디스크에 저장된 내용 중의 일부분을 저장하는 버퍼(buffer) • 일반적인 캐쉬와 동작상의 원리는 유사 Parallel Computer Architecture

  42. 디스크 캐쉬의 설계에서 고려해야 할 사항들 • 디스크 캐쉬의 용량(capacity) • 디스크 캐쉬의 위치(location) • 블록 크기(block size) • 인출 크기(fetch size) • 쓰기 정책(write policy) • 동적 ON/OFF • 오류 회복(error recovery) 기능 • 신뢰도(reliability) Parallel Computer Architecture

  43. 디스크 캐쉬의 설계 1) 디스크 캐쉬의 용량(capacity)과 위치(location) • 용량이 커짐에 따라 적중률이 높아지고, • 같은 크기의 용량에 대하여는 프로세서에 가까이 위치할수록 적중률이 높다 Parallel Computer Architecture

  44. 디스크 캐쉬의 설계 (계속) 2) 블록의 크기 • 캐쉬의 용량이 적을 때는 블록의 크기도 작을수록 적중률이 높고, • 캐쉬의 용량이 증가하면, 블록의 크기가 커짐에 따른 적중률 향상 가능  일반적으로 블록 크기가 한 트랙의 크기와 같은 경우가 가장 적절 3) 선인출 방식 (prefetch) • one-block lookhead(OBL) : 블록(i)를 읽어올 때, 블록(i +1)도 인출 • 일반적으로 선인출하는 블록 개수의 변경이 가능하도록 하는 것이 적절 • 블록이 순차적으로 사용되지 않는 경우에는 효율 저하 4) Purge Behind 교체 알고리즘 • 블록(i )가 사용된 후에는 블록(i -1)을 즉시 캐쉬로부터 제거함으로써 캐쉬 공간 확보 : 거의 사용되지 않음 Parallel Computer Architecture

  45. 디스크 캐쉬의 설계 (계속) 5) 쓰기 정책 • write through • write back 6) 캐쉬의 동적 ON/OFF (연구 중) • 경우에 따라, 디스크 캐쉬가 성능을 저하시키는 원인이 될 수 있음(예: 디스크 트랙상에 하나의 큰 블록 형태로 저장되어 있는 파일 액세스 과정에서 캐쉬 적재  I/O 트래픽 증가, I/O 액세스 시간 증가) • 동적으로 디스크 캐쉬를 ON/OFF하는 방법 : 캐쉬가 스스로 미스율(miss rate)과 쓰기 비율(write ratio)을 검사하여 만약 이 값들이 높으면 캐쉬가 자신을 OFF하고, 성능이 충분히 회복된 후에 다시 기능을 ON 시킴 Parallel Computer Architecture

More Related