병렬 컴퓨터 아키텍처-소개
지난 50 년 동안 컴퓨터 시스템의 성능과 기능이 크게 발전했습니다. 이는 VLSI (Very Large Scale Integration) 기술 덕분에 가능했습니다. VLSI 기술을 사용하면 단일 칩에 많은 구성 요소를 수용 할 수 있으며 클럭 속도를 높일 수 있습니다. 따라서 한 번에 더 많은 작업을 병렬로 수행 할 수 있습니다.
병렬 처리는 데이터 지역성 및 데이터 통신과도 관련됩니다. Parallel Computer Architecture 모든 리소스를 구성하여 기술 및 비용에 의해 주어진 한계 내에서 성능과 프로그래밍 가능성을 극대화하는 방법입니다.
왜 병렬 아키텍처인가?
병렬 컴퓨터 아키텍처는 점점 더 많은 수의 프로세서를 사용하여 컴퓨터 시스템 개발에 새로운 차원을 추가합니다. 원칙적으로 많은 수의 프로세서를 사용하여 얻은 성능은 특정 시점에서 단일 프로세서의 성능보다 높습니다.
응용 동향
하드웨어 용량이 향상됨에 따라 우수한 성능의 응용 프로그램에 대한 수요도 증가했으며, 이에 따라 컴퓨터 아키텍처 개발에 대한 수요도 증가했습니다.
마이크로 프로세서 시대 이전에는 이국적인 회로 기술과 기계 구성으로 고성능 컴퓨터 시스템을 확보하여 비용이 많이 들었습니다. 이제 여러 프로세서를 사용하여 고성능 컴퓨터 시스템을 얻었으며 가장 중요하고 까다로운 응용 프로그램은 병렬 프로그램으로 작성됩니다. 따라서 더 높은 성능을 위해서는 병렬 아키텍처와 병렬 애플리케이션을 모두 개발해야합니다.
응용 프로그램의 성능을 높이려면 속도 향상이 고려해야 할 핵심 요소입니다. Speedup p 프로세서에서 다음과 같이 정의됩니다.
$$ Speedup (p \ 프로세서) \ equiv \ frac {성능 (p \ 프로세서)} {성능 (1 \ 프로세서)} $$수정 된 단일 문제의 경우
$$ performance \ of \ 컴퓨터 \ 시스템 = \ frac {1} {\ 문제를 완료하는 데 필요한 \ \ \ \ 문제} $$ $$ Speedup \ _ {해결 된 \ 문제} (p \ 프로세서) = \ frac {시간 (1 \ 프로세서)} {시간 (p \ 프로세서)} $$과학 및 엔지니어링 컴퓨팅
병렬 아키텍처는 과학 컴퓨팅 (물리학, 화학, 생물학, 천문학 등) 및 엔지니어링 애플리케이션 (저수지 모델링, 기류 분석, 연소 효율 등)에 없어서는 안 될 요소가되었습니다. 거의 모든 응용 프로그램에서 계산 출력의 시각화에 대한 엄청난 요구가있어 계산 속도를 높이기위한 병렬 컴퓨팅 개발에 대한 요구가 있습니다.
상업용 컴퓨팅
상업용 컴퓨팅 (비디오, 그래픽, 데이터베이스, OLTP 등)에서도 지정된 시간 내에 방대한 양의 데이터를 처리하려면 고속 컴퓨터가 필요합니다. Desktop은 거의 병렬 프로그램과 유사한 다중 스레드 프로그램을 사용합니다. 이것은 차례로 병렬 아키텍처 개발을 요구합니다.
기술 동향
기술과 아키텍처의 발전과 함께 고성능 응용 프로그램 개발에 대한 수요가 매우 높습니다. 실험에 따르면 병렬 컴퓨터는 최고로 개발 된 단일 프로세서보다 훨씬 빠르게 작동 할 수 있습니다. 또한 기술과 비용의 한계 내에서 병렬 컴퓨터를 개발할 수 있습니다.
여기서 사용되는 주요 기술은 VLSI 기술입니다. 따라서 오늘날 점점 더 많은 트랜지스터, 게이트 및 회로가 동일한 영역에 장착 될 수 있습니다. 기본 VLSI 기능 크기가 감소함에 따라 클럭 속도도 이에 비례하여 향상되는 반면 트랜지스터 수는 정사각형으로 증가합니다. 한 번에 많은 트랜지스터를 사용 (병렬)하면 클럭 속도를 높이는 것보다 훨씬 더 나은 성능을 기대할 수 있습니다.
기술 동향에 따르면 기본 단일 칩 빌딩 블록은 점점 더 큰 용량을 제공 할 것입니다. 따라서 단일 칩에 여러 프로세서를 배치 할 가능성이 높아집니다.
건축 동향
기술의 발전은 실현 가능한 것을 결정합니다. 아키텍처는 기술의 잠재력을 성능과 기능으로 전환합니다.Parallelism 과 locality더 많은 양의 자원과 더 많은 트랜지스터가 성능을 향상시키는 두 가지 방법입니다. 그러나이 두 가지 방법은 동일한 리소스를두고 경쟁합니다. 여러 작업을 병렬로 실행하면 프로그램을 실행하는 데 필요한 사이클 수가 줄어 듭니다.
그러나 각 동시 활동을 지원하려면 자원이 필요합니다. 로컬 스토리지를 할당하려면 리소스도 필요합니다. 리소스를 사용하여 병렬 처리 수준과 지역성을 활용하는 중간 작업 계획을 통해 최상의 성능을 얻을 수 있습니다.
일반적으로 컴퓨터 아키텍처의 역사는 다음과 같은 기본 기술을 가진 4 세대로 나뉩니다.
- 진공관
- Transistors
- 집적 회로
- VLSI
1985 년까지 기간은 비트 수준 병렬 처리의 증가에 의해 지배되었습니다. 4 비트 마이크로 프로세서 뒤에 8 비트, 16 비트 등이 있습니다. 전체 32 비트 작업을 수행하는 데 필요한 사이클 수를 줄이기 위해 데이터 경로의 너비가 두 배가되었습니다. 나중에 64 비트 작업이 도입되었습니다.
성장 instruction-level-parallelism80 년대 중반에서 90 년대 중반을 지배했습니다. RISC 접근 방식은 명령 처리 단계를 파이프 라인으로 연결하는 것이 간단하여 평균적으로 거의 모든 사이클에서 명령이 실행된다는 것을 보여주었습니다. 컴파일러 기술의 성장으로 명령 파이프 라인의 생산성이 향상되었습니다.
80 년대 중반 마이크로 프로세서 기반 컴퓨터는
- 정수 처리 장치
- 부동 소수점 단위
- 캐시 컨트롤러
- 캐시 데이터 용 SRAM
- 태그 저장
칩 용량이 증가함에 따라 이러한 모든 구성 요소가 단일 칩으로 병합되었습니다. 따라서 단일 칩은 정수 산술, 부동 소수점 연산, 메모리 연산 및 분기 연산을위한 별도의 하드웨어로 구성됩니다. 개별 명령어를 파이프 라이닝하는 것 외에 한 번에 여러 명령어를 가져와 가능한 한 서로 다른 기능 단위에 병렬로 보냅니다. 이러한 유형의 명령어 수준 병렬 처리를superscalar execution.