본문 바로가기
CS 공부/컴퓨터 구조

컴퓨터 성능평가

by 학습하는 청년 2025. 1. 10.

최종 수정 : 25.1.10

컴퓨터 성능평가

컴퓨터의시스템의 성능은 일반적으로 처리능력, 속도, 신뢰도, 사용 가능도 등 4가지 측면에서 평가된다.

 

  • 처리능력 : 단위 시간 내에 처리하는 작업의 양
  • 처리속도 : 어떤 일을 처리하기 위해 입력을 시작한 때로부터 결과를 얻을 때까지의 소요되는 시간
  • 신로도 : 컴퓨터에 주어진 문제를 어느 정도 정확하게 해결하는지
  • 사용가능도 : 컴퓨터를 사용할 필요가 생겼을 때 어느 정도 신속하게 사용한지

1. 병렬 컴퓨터의 속도와 성능 효율

컴퓨터시스템의 성능 향상을 위한 방법으로 병렬처리 기술이 확산되고 있다. 병렬 컴퓨터의 속도와 성능 효율에 대한 기준은 다음과 같다.

1) 처리속도

처리속도란 보통 단위 시간당 처리하는 명령어의 수를 표시하는 것으로 MIPS(millions of Instruction Per Second)라는 단위를 1초에 처리되는 총 명령어의 수를 나타내는 것으로 1MIPS란 1초에 10의 6제곱 개의 명령어를 처리하는 속도이다. 또 MFLOS(Milions of Floating-Point Operation Per Second, 메가플롭스)는 부동 소수점을 처리하는 속도를 나타내는 단위로서 1MFLOPS는 부동소수점 연산을 1초에 10의 6제곱 개를 처리한다.

 

2) 속도의 증가(speed up)

n개의 프로세서로 구성된 병렬 컴퓨터가 단일 프로세서를 가진 컴퓨터에 비해서 어도 처리속도가 증가하는지를 가지고 판단한다.

 

3) 효율성(efficiency)

병렬 컴퓨터의 효율을 측정하는 것으로 병렬 컴퓨터가 단일 컴퓨터보다 속도가 증가하였다면 투자비용과 비교하였을 때 어느 정도의 효과를 보여주는지의 척도이다.


2. 병렬 컴퓨터의 개념

시스탬의 높은 처리율(throughput)을 얻는 것이 바로 병렬처리(parallel processing)이다. 병렬처리란 여러 개의 프로세서들이 여러 개의 프로그램 또는 1개의 프로그램을 분할하여 각 프로세서가 분담하여 동시에 처리하는 방식이다. 하나의 프로세서를 서로 다른 기능을 가진 여러 개의 서브프로세서로 나누어 각 섭프로세서가 동시에 서로 다른 데이터를 취급하도록 하는 기법을 팡프라인이라 한다. 컴퓨터시스템에 여러 개의 프로세서를 두고 병렬 처리하는 방식의 시스템이 병렬 컴퓨터(parallel computer)이다.


3. 병렬 컴퓨터의 특징

병렬 컴퓨터란 병렬 처리에 필요한 하드웨어와 소프트웨어를 갖춘 컴퓨터시스템을 말한다. 내부의 연산장치를 여럿 배치해 높은 연산 성능을 갖게 하여 동시에 동작하는 복수의 마이크로프로세서를 사용하는 컴퓨터다. 즉, 다수의 CPU를 결합하여 단일 CPU 성능의 한계를 극복하기 위한 컴퓨터구조를 말한다. 이런 병렬 컴퓨터를 더 발전시켜 수천 개 규모의 마이크로프로세서를 사용하는 컴퓨터시스템을 초병렬 컴퓨터(massively parallel computer)라고 한다. 앞으로 병렬 컴퓨터시스템을 개발하기 위해서는 하드웨어의 구조, 운영체제, 알고리즘, 프로그래밍 언어, 컴파일러 등 거의 모든 기술을 통합해ㅑ 한다.


4. 병렬 컴퓨터의 분류

컴퓨터시스템을 구조적 특징에 따라 분류하는 방식에는 명령어 스트림(instruction stream)과 데이터 스트림(data stream)의 수에 따라 컴퓨터시스템을 4가지로 분류하는 플린의 분류방식과 명령어 수행의 직렬 또는 병렬, 별렬의 정도에 따른 팽의 분류방식, 파이프라인과 병렬 수행의 정도에 따른 핸들러 분류방식이 있다. 핸들러 분류방식은 플린과 팽의 분류방식을 변형한 형태이다.

1) 플린(Flynn)의 분류

가장 널리 사용하는 분류방식이며 4가지로 분류한다. 스트림이란 하나의 프로세서에 의해 순서대로 처리되는 명령어들과 데이터들의 흐름이다. 명령어 스트림이란 명령어 코드(code)들의 집합을 의미하고, 데이터 스트림이란 데이터 집합이다.

 

SISD (Single Instruction-stram, Single Data-stream)

☞ 하나의 제어장치(control unit), 처리장치(processing unit), 메모리 모듈을 갖는 구조이며 전형적인 직렬컴퓨터구조이다. 실행과정은 여러 개의 단계로 나누어 중첩시킴으로써 실행속도를 높이도록 파이프라이닝 되어 있으며, 현재 우리가 많이 사용하고 있는 컴퓨터구조이다.

  • CU : 제어 유니트
  • PU : 프로세싱 유니트
  • NN : 메모리 모듈
  • IS : 명령어 흐름
  • DS : 데이터 흐름

 

SIMD(Simgle Insturction-stream, Multiple Data-stream)

☞ 이 시스템은 배열 프로세서(array processor)라 불리며 여러 개의 PU들로 구성되고, 모든 PU들의 동작은 모두 하나의 CU에 지시를 받는다. 모든 PU들은 CU들로부터 동일한 명령을 받지만, 명령어 실행과정에서는 서로 다른 데이터들을 사용한다. 또 모든 PU들이 기억장치(memory)를 독립적으로 가지는 분산기억장치(distributed memory) 구조도 가능하다.

 

MISD(Multiple Instruction-stream, Single Data-stream)

☞ 이 시스템은 한 시스템 내에 n개의 프로세서들이 있고, 각 프로세서들은 서로 다른 명령어들을 실행하지만, 처리하는 데이터들은 하나의 스트림이다. 다시 말하면, 프로세서들이 파이프라인 형태로 연결되어서 한 프로세서가 처리한 결과가 ㄷ음 프로세서로 보내지는 방식이다.

 

MIMD (Multiple Instruction-stream, Multiple Data-stream)

☞ 대부분의 다중 프로세서 시스템과 다중 컴퓨터시스템이 이 분류에 속한다. 이 시스템에서는 n개의 프로셋더르이 서로 다른 명령어와 데이터들을 처리한다. 이 시스템은 프로세서들 간의 상호작용 정도에 따라 2가지로 나누어지는데, 그 정도가 높은 구조를 밀겹합 시스템(tightly coupled sysytem), 그 정도가 낮은 구조를 소결합 시스템(loosely coupled system)이라 한다. 밀결합 시스템의 전형적인 구조는 기억장치가 모든 프로세서들에 공통적으로 사용되는 공유메모리구졸(shared memory architecture)이다. 소결합 시스템은 각 프로세서들이 자신의 지역 기억장치를 가진 독립적인 컴퓨터 모듈로 구성되고, 프로세서들 간의 통신은 메시지 패싱(message passing)방식에 의하여 이루어지는 구조를 가지고 있다.

 

2) 팽(Feng)의 분류

컴퓨터의 구조를 병렬수행정도에 따라 분류한다.

 

워드별 순차, 비트별 순차(WSBS ; Word-Serial, Bit-Serial) 처리

☞ 한 번에 1비트씩 처리하는 방식이며 초기 컴퓨터의 수행방식이다.

 

워드별 병렬, 비트별 순차(WPBS ; Word-Parallel, Bit-Serial) 처리

☞ m개의 워드를 묶어서 그중에서 1개의 비트 슬라이스 단위를 순차적으로 처리하는 방식이다.

 

워드별 순차, 비트별 병렬(WSBP ; Word-Serial, Bit-Parallel) 처리

☞ 가장 많이 사용하는 방식으로 한 번에 한 워드씩 처리한다.

 

워드별 병렬, 비트별 병렬(WBBP ; Word-Parallel, Bit-Parallel) 처리

☞ 병렬 처리의 가능성을 최대로 높인 처리방식이다.


5. 배열 프로세서(array processor)

배열처리기는 데이터를 고속으로 처리하기 위해 연산장치를 병렬로 배열한 처리구조로 벡터계산이나 행렬계산에 사용된다. PE(Processing Element)들이 하나의 CU으 통제를 받으며 동기적으로 동작하는 구조이다. 대표적인 예가 SIMD 기본구조이다. PE 간의 데이터 교환은 상호연결망을 통해 이루어지고 상호연결망도 제어장치의 통제를 받는다.


6. 다중 프로세서(multi processor)

다중 프로세서는 프로그램의 수행속도를 높이고, 신뢰성(reliability), 유연성(flexibility), 가용성(availability) 등을 개선하는 것을 목표로 한다. 플린의 분류 중에서 MIMD 조직에 대응된다. 다중 프로세서는 기억장치와 입출력 장치를 공유하는 2개 이상의 프로세서를 가진 시스템을 말한다. 이는 그억장치의 구조에 따라 분류한다.

 

1) 공유 기억장치(shared memory)

공통의 공유 기억장치를 가진 다중 프로세서이므로, 여러 개의 프로세서가 공통의 공유 기억장치를 통하여 모든 프로세서들이 정보를 공유할 수 있다.

 

2) 분산 기억장치(distributed memory)

각 프로세서에 지역메모리를 가지고 있다.

 

다중 프로세서는 하나의 프로세서에 고장이 발생하여도 다른 프로세서가 일을 대신 처리할 수 있다. 각 프로세서는 제어장치, 연산장치, 레지스터, 캐시를 가지고 있다. 각 프로세서는 상호 연결을 통하여 공유기억장치 및 I/O 장치를 액세스한다.


7. 상호연결망(interconnection network)

상호연결망에는 시스템 요소들 간에 직접 연결된 경로를 가지며, 연결구조가 고정된 연결망인 정적 상호연결망(Static interconnection network)과 시스템 요소들 간의 연결 경로가 실행 시간(run-time) 등 안에 다양하게 변경될 수 있으며, 프로그램 실행 중의 통신 패턴과 상황에 따라 필요한 경로를 설정하여 사용할 수 있는 동적 상호연결망(dynamic interconnection network)으로 분류된다. 정적 상호연결망에는 선형배열, 원형(ring), 트리(tree), 메시(mesh) 구조가 있으며, 동적 상호연결망에는 오메가 네트워크(omega network), 델타 네트워크(delta network) 등이 있다.

 

정적 상호연결망은 노드(node : processing element)들 사이를 직접 연결해 주는 고정된 경로들로 구성되어 있고 경로를 링크(link)라 하고 단방향(unidirectional) 또는 양방향(bidirectional) 통신 기능을 가지고 있다. 네트워크 지름(network diameter)이란 임의의 두 노드들 간에 설정되는 경로들 중에서 가장 많은 수의 링크들을 공유해야 하는 경우의 링크 수이다. 연결구조의 차원(dimension)에 따라 1차원, 2차원, 3차원으로 분류된다.

 

1차원 토폴로지로 선형 배열은 파으파라인 구조이다. 2차원 토폴로지는 원형(ring), 스타(star), 트리(tree), 매시(mesh), 시스티릭(systolic) 배열구조이다. 3차원 토폴로지는 완전 연결(completely connected)구조와 코달 원형(chordal ring)구조, 큐브(cube) 구조가 있다.

 

1) 선형(linear array) 배열구조

N개의 노드들이 N - 1개의 링크에 의하여 차례대로 연결된 구조를 선형배열 구조라고 부른다. 이 구조의 네트워크 지름은 N - 1이므로 다른 구조들에 비하여 평균 통신시간이 가장 길다. 이 구조에서 가장 많은 수의 링크들을 경유해야 하는 통신은 배열의 양쪽 끝에 위치한 두 노드간의 통신이며 N - 1개의 링크들을 거처야 한다.

 

2) 원형 배열구조

선형 배열구조에서 0번 노드와 N - 1번 노드를 서로 연결해 주는 링크가 하나 추가되면 원형구조가 된다. 이 구조의 네트워크 지름은 각 링크가 양방향선이면 N / 2이 되고 단방향성이면 N - 1이 된다.

 

3) 코달 원형구조

원형구조의 변형이고 나무구조는 2진 나무(binary tree)구조이다. level의 수 =k 라면, 전체 노드의 N = (2의 k제곱 - 1)이며 네트워크 지름 = 2(k - 1)이다.

 

4) 매시 구조

각 노드를 4개의 노드들과 2차원 배열로 연결하는 구조이다.


참고

독학사 교재

 

'CS 공부 > 컴퓨터 구조' 카테고리의 다른 글

클러스터 컴퓨터  (0) 2025.01.10
DMA를 이용한 입출력  (0) 2025.01.10
인터럽트를 이용한 입출력  (0) 2025.01.09
입출력장치 주소지정  (0) 2025.01.09
입출력장치 제어  (0) 2025.01.09

댓글