컴퓨터구조론#17

LeeMir, 07 June 2021

제8장 고성능 컴퓨터시스템 구조


병렬처리의 개념과 필요성
  • 병렬처리
    • 다수의 프로세서들이 여러 개의 프로그램들 혹은 한 프로그램의 분할된 부분들을 분담하여 동시에 처리하는 기술
  • 병렬처리를 위한 선결 조건
    • 많은 수의 프로세서들로 하나의 시스템을 구성할 수 있도록 작고 저렴하며 고속인 프로세서들의 사용이 가능해야 함
      • 반도체 기술의 발전과 VLSI 집적도 향상으로 가능해짐
    • 한 프로그램을 여러 개의 작은 부분들로 분할하는 것이 가능해야하며, 분할된 부분들을 병렬로 처리한 결과가 전체 프로그램을 순차적으로 처리한 경우와 동일한 결과를 얻을 수 있어야 함
  • 야기되는 새로운 문제들
    • 문제 분할
      • 병렬처리를 위하여 문제를 여러 개로 나누는 것
    • 프로세서간 통신
      • 분할된 부분을 나누어 처리하는 프로세서간의 데이터 교환을 위해 메커니즘 필요
  • 필요한 관련 기술들
    • 병렬 프로그램 언어와 컴파일러의 개발
    • 상호 배타 매커니즘(mutual exclusion mechanism) 지원
    • 공유자원들에 대한 경합을 줄이고 이용률을 극대화할 수 있는 운영체제의 개발
병렬컴퓨터의 분류
  • Flynn의 분류
    • 구조적 특징에 따른 컴퓨터 분류 방식
    • 명령어 스트림
      • 프로세서에 의해 실행되기 위하여 순서대로 나열된 명령어 코드들의 집합
    • 데이터 스트림
      • 그 명령어들을 실행하는 데 필요한 순서대로 나열된 데이터들의 집합
    • 프로세서들이 처리하는 명령어와 데이터의 스트림의 수에 따라 분류
      • 단일 명령어 스트림 - 단일 데이터 스트림 (SISD)
      • 단일 명령어 스트림 - 복수 데이터 스트림 (SIMD)
      • 복수 명령어 스트림 - 단일 데이터 스트림 (MISD)
      • 복수 명령어 스트림 - 복수 데이터 스트림 (MIMD)
    • SISD
      • 한번에 한 개씩의 명령어와 데이터를 순서대로 처리하는 단일 프로세서 시스템
      • 파이프라이닝, 슈퍼스칼라 구조를 이용
    • SIMD
      • 배열 프로세서
      • 여러 개의 프로세싱 유니트(PU)로 구성되고, PU들의 동작은 모두 하나의 제어 유니트에 의해 통제
      • 모든 PU들은 하나의 명령어 스트림을 실행
      • 데이터 스트림은 여러 개를 동시에 처리
      • 멀티미디어 시스템에 적합
    • MISD
      • N개의 프로세서들이 서로 다른 명령어들을 실행하지만, 처리하는 데이터 스트림은 한 개
        • 비현실적이므로 실제 구현된 경우는 없음
    • MIMD
      • N개의 프로세서들이 서로 다른 명령어들과 데이터들을 처리
      • 프로세서들간의 상호작용 정도에 따라 두 가지로 분류
        • 밀결합 시스템
          • 공유-기억장치 구조
          • 다중프로세서 시스템
        • 소결합 시스템
          • 각자 지역 기억장치를 가진 독립적인 컴퓨터 모듈로 구성
          • 프로세서간 통신은 메시지 전송 방식 이용
          • 다중컴퓨터 시스템
  • 기억장치 액세스 모델에 따른 분류
    • UMA 모델
      • Uniform Memory Access
      • 모든 프로세서들이 상호연결망에 의해 접속된 주기억장치를 공유
      • 프로세서들은 주기억장치의 어느 영역이든 액세스할 수 있으며, 그에 걸리는 시간이 동일
      • 하드웨어가 간단하고, 프로그래밍이 용이
      • 공유 자원에 대한 경합이 높아지기 때문에 지연 시간이 커져 시스템 크기에 한계가 존재
        • 공유 버스를 사용하는 시스템에서는 30개 이하의 프로세서로 구성해야 함
        • 크로스바, MIN 등이 사용되는 경우 더 많은 프로세서들로 구성될 수 있음
    • NUMA 모델
      • Non-Uniform Memory Access
      • UMA 모델의 한계를 극복하고 더 큰 규모의 시스템을 구성하기 위한 모델
      • 다수의 UMA 모델들이 상호 연결망에 의해 접속된 형태
      • 분산 공유-기억장치 구조
      • 기억장치 액세스 시간은 기억장치의 위치에 따라 달라짐
        • 지역 / 전역 / 원격 기억장치 액세스
    • NORMA 모델
      • No-Remote Memory Access
      • 프로세서가 원격 기억장치는 직접 액세스할 수 없는 시스템 구조
      • 프로세서들과 기억장치들은 메시지 전송을 지원하는 상호연결망으로 접속
      • 분산-기억장치 시스템으로도 부름
      • 주요 상호연결망: 매쉬, 하이퍼큐브, 토러스 등
다중프로세서시스템 구조
  • MIMD 조직으로서, 여러 개의 프로세서들이 비동기적으로 프로그램을 실행하는 시스템
  • 다중 프로세서와 다중 컴퓨터에서 사용되는 상호 연결망에 따른 분류
    • 정적 상호 연결망
    • 동적 상호 연결망
  • 정적 상호 연결망
    • 선형 배열 구조
      • 네트워크 지름이 N-1로서, 다른 구조들에 비하여 가장 길음
      • 버스 구조보다 동시성이 더 높음
      • 통신 시간이 노드들 간의 거리에 따라 서로 다르며, 노드 수가 많아지면 통신 시간이 매우 길어짐
    • 링 구조
      • 네트워크 지름
        • 각 링크가 양방향성이면N/2 (버림)
        • 단방향성이면 N-1
      • 변형 구조 : 코달 링
        • 원에서 각 노드에 링크가 하나씩 추가된 구조
        • 링크의 수가 증가될수록 네트워크 지름은 감소
        • d(degree) : 각 노드가 가지는 링크의 수
    • 트리 구조
      • 층(level)의 수를 k라고 할 때, N = (2^k - 1)개의 노드들 접속
      • 네트워크 지름 = 2(k - 1)
      • 시스템 요소들의 수가 증가함에 따라 성능이 선형적으로 향상
      • 팻 트리 구조
        • 상위 층으로 올라갈수록 노드간의 통신 채널 수 증가
        • 트리 구조에서 상위 층으로 올라갈수록 통신량이 많아져서 채널이 병목이 되는 문제점을 해결
    • 매시 구조
      • Illiac IV 등에서 사용
      • 토러스 네트워크
        • 원형 구조와 매쉬 구조가 혼합된 구조로 확장이 용이
        • 네트워크 지름이 짧아짐
        • n x n 토러스의 경우 2*(k/2의 버림)
    • 하이퍼큐브 네티워크
      • 상호연결 함수에 의해 서로 연결
      • 2 x 2 노드 구조들을 3차원 혹은 그 이상으로 접속해 구성
  • 동적 상호 연결망
    • 공유-버스 구조
      • 하드웨어가 매우 간단
        • 모든 시스템 요소들이 하나의 시스템 버스에 접속
      • 버스 경합으로 인한 지연 시간 증가
        • 버스의 전송 속도를 높이거나 캐시를 사용하여 성능 저하를 보완
    • 다중-버스 구조
      • 버스 경합을 줄이기 위하여 버스의 수를 증가
        • 각 프로세서가 자신의 지역 기억장치 및 I/O 프로세서와 연결되는 지역 버스를 가짐
      • 계층버스 구조 : 용도가 다른 여러 계층의 버스들을 사용
    • 크로스바 스위치
      • 프로세서들과 기억장치들 사이의 완전 연결성
      • 비용이 많이 들고 하드웨어가 복잡
    • 다단계 상호연결망(Multistage Interconnection Network: MIN)
      • 크로스바 스위치와 버스 중간 정도의 하드웨어 복잡성을 가진 상호연결망
      • 오메가 네트워크가 한 예임
        • 입력단과 출력단이 각각 N개인 경우
          • 필요한 단계(stage)의 수 : log N
          • 각 단계의 스위칭 소자(switching element)들의 수 : m = N/2
        • 스위칭 소자의 접속 방식
          • 직진 / 교차 / 하위 방송 / 상위 방송