목차
(1) 파이프라인 처리
(2) 배열 처리기(array processor)
(3) 다중 처리기(multiprocessor)
(4) 벡터 처리기(vector processor)
(2) 배열 처리기(array processor)
(3) 다중 처리기(multiprocessor)
(4) 벡터 처리기(vector processor)
본문내용
n-1) Task는 한 클럭 사이클에 한 태스크씩 수행되어 (n-1)Tp 시간후에는 모든 태스크가 완료
k개 세그멘트 파이프라인에서 n 태스크를 완료하려면 k+(n-1)의 클럭 사이클 필요
예) 위의 그림의 경우
4+(6-1)=9개의 클럭 사이클 필요
각 태스크를 완료하기 위해 Tn시간이 필요하다면 비파이프라인의 경우와 같은 동작과의
비교(n개의 태스크)
파이프라인 처리로 인한 증가율
S = (nTp)/(k+n-1)Tp
태스크의 수가 증가하면 k-1에 비해 n의 값이 무척 커지므로 k+n+1 n이 된다. 이 경우의 증가율은 S = Tn / Tp 파이프라인 회로와 비파이프라인 회로에서 한 타스크를 수행하는 데 걸리는 시간이 같다고 하면 속도 증가율은 아래와 같이 표현된다. 즉 파이프라인에 의한 이론적인 최대 속도 증가율은 세그멘트 수와 같다는 것이다.
S = (kTp / Tp) = k
SIMD구조
다중 기능 장치를 이용하여 파이프라인 처리에서와 같은 속도 증가를 얻어내기 위해서는 병렬적으로 동작하는 k개의 동일한 회로를 구성
아래 그림에서 설명
여기서 k개의 회로는 파이프라인에서 k개의 세그멘트와 동일한 조건
병렬적인 다중 기능 장치
P회로는 파이프라인 전체 회로에서와 동일하게 타스크를 수행
연산 속도만 고려한다. 이 회로는 4-개의 세그멘트 파이프라인과 동일
파이프라인 처리에서 문제점
각 세그멘트들의 부연산 수행속도가 다르지만 클럭 사이클은 최대로 긴 세그멘트의 연산속도에 맞추어져 있으므로 시간의 허비가 있을 수 있다.
실행단계
그림 9-2 순차적인 명령어 실행 과정
그림 9-3 파이프라인 방식 명령어 실행
명령어 인출 IF(instruction fetch), 해독은 ID(instruction decode), 데이터 인출 OF(operand fetch), 실행 EX(excution)
명령주기(instruction cycle) : IF 단계에 시작하여 EX 단계를 거쳐 실행이 완료될 때까지 경과한 시간
파이프라인 주기(pipeline cycle) : 각 단계를 통과하는데 걸리는 시간
파이프라인 주기가 같도록 하려면 파이프라인 주기 중 시간이 가장 많이 걸리는 단계를 기준으로 그것과 같도록 정하면 된다.
연산 파이프라인 : 데이터 처리에 사용되는 파이프라인
세그먼트(segment) 또는 단계(stage) : 기능별로 나누어진 서브프로세서
병렬 컴퓨터 : 수직 형태의 종속적인 구조로서 병렬성을 지니므로 임시 병렬성의 구조라 한다.
그림 9-6 파이프라인 컴퓨터 구조
(2) 배열 처리기(array processor)
데이터를 고속으로 처리하기 위해 연산 장치를 병렬로 배열한 처리 구조로 벡터 계산이나 행렬(matrix) 계산에 적합하다.
여러 개의 처리기(PE : processing element)를 가지고 이들을 동기화시켜 동일한 종류의 계산이 병렬적으로 실행되도록 한다.
그림 9-7 배열 처리기 컴퓨터의 기본 구조
(3) 다중 처리기(multiprocessor)
시스템에 있는 처리기들에게 독립적인 작업을 각각 배정하여 하나의 처리기는 하나의 작업만을 수행하도록 하는 다중 처리가 되게 하는 컴퓨터이다.
목표 : 한 작업을 여러 개로 나누어서 서로 다른 처리기에게 할당하여 동시에 수행되도록 함으로써 실행 시간을 줄이는 것과 여러 작업을 동시에 처리하여 전체 처리율을 향상시키는 것이다.
그림 9-8 프로시저 공유 처리기
각 처리기에 자신의 제어 장치가 있어서 자율적인 실행이 가능한 두 개 이상의 처리기로 구성되고, 처리기들은 여러 자원들을 공유할 수 있으며, 전체 하드웨어 시스템은 단일 운영 체제에 의해 운영되는 특징이 있다.
처리기 간의 통신은 공유 기억 장치를 통하여 간접적으로 또는 처리 기간의 인터럽트 회로망을 이용하여 직접 이루어진다.
그림 9-9 다중 처리기의 내부 구조
종류 : 공유 기억 장치와 분산 기억 장치형
① 공유 기억 장치형
각 처리기가 사용하는 기억 장치가 전역적인(global) 공유 기억 장치로 구성되고, 각 처리기와는 내부 연결망에 의해 통신이 이루어지게 한다.
장점 : 메시지를 보내는 데 필요한 지연 시간을 고려하지 않아도 된다.
단점 : 데이터 접근과 동기화 및 캐시 일관성(cache coherence) 문제 등의 발생을 고려해야 한다.
그림 9-10 공유 기억 장치형의 구조
② 분산 기억 장치형
각 처리기에서 지역 기억 장치를 가지고 있으며, 처리기 사이의 통신은 메시지 전송을 통하여 각 지역 기억 장치 사이에 데이터 전송이 이루어지게 한다.
주기억 장치는 전체 지역 기억 장치의 합이다.
그림 9-11 분산 기억 장치
(4) 벡터 처리기(vector processor)
① 벡터 처리기의 처리 방식
벡터 처리기는 다중 파이프라인 기능 장치의 특성을 이용하여 벡터나 스칼라 등의 산술 연산 및 논리 연산을 고속으로 수행한다.
시스톨릭 알고리즘 사용(systolic algorithm) : 신호, 화상 처리와 갈은 특별한 응용에 사용하기 위해 개발되었다.
비용, 성능면에서 우수, 응용의 한계성, 프로그램의 어려움이 있다.
곱셈 연산 처리시
그림 9-12 파이프라인 벡터 처리
반복 연산을 독립된 개개의 연산 처리 장치에서 실행시킬 수 있는 경우 -- 각 연산을 동시에 독립된 연산 장치에서 수행 하게 한다.
그림 9-13 내적의 병렬 배열 처리
시스톨릭 컴퓨터가 사용하는 방식
그림 9-14 시스템롤릭 방식
② 벡터와 배열 처리기의 비교
벡터 처리기 : 파이프라인을 기준으로 한 선형적인 형태가 병렬적 구조로 모여서 구성
처리기와 기억 장치 사이의 인터페이스는 단일 데이터 대열(stream)만 존재한다.
배열 처리기 : 범용적인 연산 장치인 PE가 여러개 모여서 병렬적으로 처리.
데이터 공유와 통신에 대한 측면
벡터 처리기 : 공유된 기억 장치와 레지스터를 이용, 기능 장치 간의 통신은 불가능하며, 인터페이스에는 단일 데이터 대열만이 존재한다.
배열 처리기 : PE들 사이의 직접적인 전송이나 공유 기억 장치에 의해 이루어지며, 통신은 공유 기억 장치 없이 직접 이루어진다.
k개 세그멘트 파이프라인에서 n 태스크를 완료하려면 k+(n-1)의 클럭 사이클 필요
예) 위의 그림의 경우
4+(6-1)=9개의 클럭 사이클 필요
각 태스크를 완료하기 위해 Tn시간이 필요하다면 비파이프라인의 경우와 같은 동작과의
비교(n개의 태스크)
파이프라인 처리로 인한 증가율
S = (nTp)/(k+n-1)Tp
태스크의 수가 증가하면 k-1에 비해 n의 값이 무척 커지므로 k+n+1 n이 된다. 이 경우의 증가율은 S = Tn / Tp 파이프라인 회로와 비파이프라인 회로에서 한 타스크를 수행하는 데 걸리는 시간이 같다고 하면 속도 증가율은 아래와 같이 표현된다. 즉 파이프라인에 의한 이론적인 최대 속도 증가율은 세그멘트 수와 같다는 것이다.
S = (kTp / Tp) = k
SIMD구조
다중 기능 장치를 이용하여 파이프라인 처리에서와 같은 속도 증가를 얻어내기 위해서는 병렬적으로 동작하는 k개의 동일한 회로를 구성
아래 그림에서 설명
여기서 k개의 회로는 파이프라인에서 k개의 세그멘트와 동일한 조건
병렬적인 다중 기능 장치
P회로는 파이프라인 전체 회로에서와 동일하게 타스크를 수행
연산 속도만 고려한다. 이 회로는 4-개의 세그멘트 파이프라인과 동일
파이프라인 처리에서 문제점
각 세그멘트들의 부연산 수행속도가 다르지만 클럭 사이클은 최대로 긴 세그멘트의 연산속도에 맞추어져 있으므로 시간의 허비가 있을 수 있다.
실행단계
그림 9-2 순차적인 명령어 실행 과정
그림 9-3 파이프라인 방식 명령어 실행
명령어 인출 IF(instruction fetch), 해독은 ID(instruction decode), 데이터 인출 OF(operand fetch), 실행 EX(excution)
명령주기(instruction cycle) : IF 단계에 시작하여 EX 단계를 거쳐 실행이 완료될 때까지 경과한 시간
파이프라인 주기(pipeline cycle) : 각 단계를 통과하는데 걸리는 시간
파이프라인 주기가 같도록 하려면 파이프라인 주기 중 시간이 가장 많이 걸리는 단계를 기준으로 그것과 같도록 정하면 된다.
연산 파이프라인 : 데이터 처리에 사용되는 파이프라인
세그먼트(segment) 또는 단계(stage) : 기능별로 나누어진 서브프로세서
병렬 컴퓨터 : 수직 형태의 종속적인 구조로서 병렬성을 지니므로 임시 병렬성의 구조라 한다.
그림 9-6 파이프라인 컴퓨터 구조
(2) 배열 처리기(array processor)
데이터를 고속으로 처리하기 위해 연산 장치를 병렬로 배열한 처리 구조로 벡터 계산이나 행렬(matrix) 계산에 적합하다.
여러 개의 처리기(PE : processing element)를 가지고 이들을 동기화시켜 동일한 종류의 계산이 병렬적으로 실행되도록 한다.
그림 9-7 배열 처리기 컴퓨터의 기본 구조
(3) 다중 처리기(multiprocessor)
시스템에 있는 처리기들에게 독립적인 작업을 각각 배정하여 하나의 처리기는 하나의 작업만을 수행하도록 하는 다중 처리가 되게 하는 컴퓨터이다.
목표 : 한 작업을 여러 개로 나누어서 서로 다른 처리기에게 할당하여 동시에 수행되도록 함으로써 실행 시간을 줄이는 것과 여러 작업을 동시에 처리하여 전체 처리율을 향상시키는 것이다.
그림 9-8 프로시저 공유 처리기
각 처리기에 자신의 제어 장치가 있어서 자율적인 실행이 가능한 두 개 이상의 처리기로 구성되고, 처리기들은 여러 자원들을 공유할 수 있으며, 전체 하드웨어 시스템은 단일 운영 체제에 의해 운영되는 특징이 있다.
처리기 간의 통신은 공유 기억 장치를 통하여 간접적으로 또는 처리 기간의 인터럽트 회로망을 이용하여 직접 이루어진다.
그림 9-9 다중 처리기의 내부 구조
종류 : 공유 기억 장치와 분산 기억 장치형
① 공유 기억 장치형
각 처리기가 사용하는 기억 장치가 전역적인(global) 공유 기억 장치로 구성되고, 각 처리기와는 내부 연결망에 의해 통신이 이루어지게 한다.
장점 : 메시지를 보내는 데 필요한 지연 시간을 고려하지 않아도 된다.
단점 : 데이터 접근과 동기화 및 캐시 일관성(cache coherence) 문제 등의 발생을 고려해야 한다.
그림 9-10 공유 기억 장치형의 구조
② 분산 기억 장치형
각 처리기에서 지역 기억 장치를 가지고 있으며, 처리기 사이의 통신은 메시지 전송을 통하여 각 지역 기억 장치 사이에 데이터 전송이 이루어지게 한다.
주기억 장치는 전체 지역 기억 장치의 합이다.
그림 9-11 분산 기억 장치
(4) 벡터 처리기(vector processor)
① 벡터 처리기의 처리 방식
벡터 처리기는 다중 파이프라인 기능 장치의 특성을 이용하여 벡터나 스칼라 등의 산술 연산 및 논리 연산을 고속으로 수행한다.
시스톨릭 알고리즘 사용(systolic algorithm) : 신호, 화상 처리와 갈은 특별한 응용에 사용하기 위해 개발되었다.
비용, 성능면에서 우수, 응용의 한계성, 프로그램의 어려움이 있다.
곱셈 연산 처리시
그림 9-12 파이프라인 벡터 처리
반복 연산을 독립된 개개의 연산 처리 장치에서 실행시킬 수 있는 경우 -- 각 연산을 동시에 독립된 연산 장치에서 수행 하게 한다.
그림 9-13 내적의 병렬 배열 처리
시스톨릭 컴퓨터가 사용하는 방식
그림 9-14 시스템롤릭 방식
② 벡터와 배열 처리기의 비교
벡터 처리기 : 파이프라인을 기준으로 한 선형적인 형태가 병렬적 구조로 모여서 구성
처리기와 기억 장치 사이의 인터페이스는 단일 데이터 대열(stream)만 존재한다.
배열 처리기 : 범용적인 연산 장치인 PE가 여러개 모여서 병렬적으로 처리.
데이터 공유와 통신에 대한 측면
벡터 처리기 : 공유된 기억 장치와 레지스터를 이용, 기능 장치 간의 통신은 불가능하며, 인터페이스에는 단일 데이터 대열만이 존재한다.
배열 처리기 : PE들 사이의 직접적인 전송이나 공유 기억 장치에 의해 이루어지며, 통신은 공유 기억 장치 없이 직접 이루어진다.
소개글