9장 병렬프로세서

Standard

상호연결 네트워크


– 멀티프로세서 시스템, 멀티프로세서-멀티메모리 시스템 그리고 배열 프로세서 등에서 중요한 역할을 담당하는 하드웨어는 [상호 연결네트워크]



상호 연결네트워크 개념



※ 기능


– 프로세서들 사이의 제어신호 전송


– 서로 다른 메모리 뱅크를 갖고 있는 CPU와 입출력 프로세서들 사이의 연결


– 현대의 대부분의 대형컴퓨터들은 고성능 다단계 크로스바 스위치 사용.


– 프로세서들 사이의 메시지 전송


– 전송을 위한 데이터 재조직



버스


1) 단일 버스(single Bus) 구조


2) 다중버스 구조


병렬 컴퓨터



병렬 컴퓨터 : CPU와 메모리, 입출력 장치 등을 포함한 여러 개의 시스템들을 하나로 묶어서 구성하여 마치 하나처럼 사용할 수 있는 컴퓨터를 말한다.



* 병렬 컴퓨터 분류


MISD(Multiple Instruction stream, Single Date stream) 구조 : 다수 명령어 스트림, 단일 데이터 스트림 시스템



SISD


– 제어장치, 처리장치, 메모리장치를 가지는 단일 프로세서 컴퓨터를 의미하며 단일 명령어 스트림을 순차적으로 처리하는 단일 데이터 스트림 시스템이다.



SIMD


SIMD(Single Instrution stream, Multiple Date stream) : 하나의 명령어 스트림이 다수의 프로세서에 전달



※ SIMD 연산


– 하드웨어를 초과하는 양의 데이터를 분산처리


– 많은 다른 종류의 데이터를 병렬처리


– 모든 데이터의 요소들을 같은 계산으로 수행



※ SIMD 구조의 종류


– 연관(associative) 프로세서, 배열 프로세서



MIMD


– 여러 프로그램을 동시에 수행하는 능력을 가진 컴퓨터이다.



1) 멀티프로세서 시트셈의 요구


– 초기화 : 프로세서는 항상 다른 프로세서가 불어 날수 있도록 예를 들면 생성과 활성화가 되어야 한다.


– 동기화 : 병렬 컴퓨터에서 프로그래밍 시에 처리기들이 전체 프로그램 내에서 특정 처리기만을 접근하지 못하도록 처리 순서를 정하는 것이다.


– 배제 : 프로세서는 항상 자원, 즉 다른 코드나 데이터를 확실히 독점해야 한다, 그래야만 다른 프로세서들이 벌써 획득되어 있는 자원들을 열어 볼 수 없다.


– 통신 : 메시지를 받고 안 받고를 나타내는 신호 메시지든지 아니면 방송 메시지들인지 이런 모든 것들은 통신설비에게 많은 도움을 주고 있다.


– 중단 : 프로세서는 다른 프로세서나 그 자체 내에서 중단 할 수 있어야하고 사용된 자원들은 다시 사용될 수 있도록 자유로운 상태가 되어야 한다.



캐시 응집


– 모든 캐시로 방송해 주는 기능이 가장 중요하다. 


 



8장 CPU 설계와 구조

Standard

CISC와 RISC 구조


– 복합형 명령어 셋 컴퓨터(CISC; Complex Instruction Set Computer)


– 축소형 명령어 셋 컴퓨터(RISC; Reduced Instruction Set Computer)


– 모두 노이만형 컴퓨터 구조 형태이다.



CPU 설계 변천과정


– 1970년대부터 논리회로에 고밀도 집적회로가 사용되면서 크기와 속도 면에서 비약적인 발전이 시작되었다.



※ 의미 갭 : 기계어와 사용자들이 컴퓨터 프로그램을 작성하는데 사용하는 프로그래밍 언어와의 차이를 정의



프로그램 수행



※ 실행 시간 = IC * CPI * CT



– IC(Instruction Count)는 명령어의 객수


– CPI(Clocks Per Instruction)는 각 명령어당 평균 연상 단계의 수


– CT(Click Times)는 하나의 연산 단계를 수행하는데 걸리는 시간 = 클럭 펄스의 사이클 시간



CISC 구조


– 복합적이며 고기능의 명령어 셋을 가진 컴퓨터


– 모든 고급 언어 명령어들에 대해 각각 하나의 기계어 명령어가 일대일로 대응되게 하여 컴파일 동작을 간소화 시켜 전반적인 컴퓨터의 성능을 향상


장점 : CISC 구조는 컴파일 과정이 쉽고 호환성이 좋은


단점 : 많은 하드웨어가 필요하고 속도가 느린 것



RISC 출현 배경


1) 고급 프로그래밍 언어 문장의 상대적인 동적 수행 빈도


2) 명령어의 상대적인 동적 수행 빈도


3) 오퍼랜드



RISC 특성


1) 간단한 명령어 셋 구성


2) LOAD/STORE 명령어 구조를 지니고 있다.


3) 파이프라인 하드웨어 구조 사용


4) 대량의 레지스터 셋과 메모리 계층의 다단계화


5) 캐시 메모리 역할 증대


6) 부동 소숫점 보조 프로세서(Floating-Point Coprocessor) 이용


7) 컴파일러 최적화


8) 높은 병렬성을 위한 고도의 파이프라인 수행 장치



CISC와 RISC 비교



– 단일 사이클 연산 : CISC는 한 명령어를 실행하기 위해서 다수의 클럭 주기를 필요로 하나 RISC는 대부분 명령어의 실행이 즉 하나의 명령은 한 개의 클럭 사이클에 이루어진다.


– 하드 배선(Hardwired) 제어장치 이용


CISC는 마이크로 프로그래밍 제어 방식을 사용하나 RISC는 하드웨어에 의한 명령어 해석 즉, 논리 회로를 이용하여 단일 사이클 시간 내에서 하나의 명령을 실행하기 위해 하드 배선논리에 의한 제어를 통해 제어논리를 단순화한다.


– 소수명령 형태


CISC는 다양한 데이터의 형태와 주소 기법을 채택하나 RISC는 상대적으로 적은 수의 명령어와 주소 지정 양식으로 명령해석에 요구되는 시간을 단축시킨다.


– 명령어 형식 고정


CISC는 명령어의 크기가 1바이트에서 17바이트 정도로 가변적이나 RISC는 명령어의 단순 해석을 위한 고정된 명령어 형식을 사용하여 디코딩의 간단 단순화를 도모한다


VLIW


 


VLIW 구조


 


[장점]


– 병렬 연산의 동기화가 컴파일 시간에 수행되므로 프로세서의 효율성이 향상된다.


– 프로그램의 길이가 짧아지게 되므로 실행시간이 감소하게 된다.


– 명령어 병렬처리, 데이터 이동이 컴파일 시간에 완전히 명시되어 실시간 자원 스케줄링이 간단하다.


 


[문제점]


– 지능적인 컴파일러가 없으면 불가능하다.


– 현재의 X86 또는 RISC 프로그램과 호환성이 없다.


– 새로운 컴파일러가 필요하다.


파이프라인



명령어 실행주기


1) 클럭속도


2) 데이터 폭



파이프라인 개념


– 총 1시간 30분이 소요된다고 가정


– 소요시간은 6시간


– 총 세탁 처리 시간은 3.5시간



명령어 파이프라인


– 클럭의 속도는 인출과 실행의 동작이 각각 한 개의 클럭 사이클 내에 완료될 수 있도록 가정


– 명령어 실행 속도는 위 순차 동작에 비해 두 배 빨라지게 된다.



※ 한사이클에 한단계


Ifetch : 명령어가 저장된 메모리로부터 명령어 인출


Reg/Dec : 원시 오퍼랜드(레지스터 값) 인출과 명령어(제어 정보) 해석


Exec : 산술 연산의 수행과 주소 계산


Mem : 메모리 연산(Load, Store) 즉 데이터 메모리로부터 데이터 읽어오기


Wr : 수행 결과의 저장 단계로 레지스터 파일에 데이터 저장