컴퓨터 구조_검토 1

1장 컴퓨터 시스템 아키텍처의 기본 개념

1.1 소개

  • 1946년 최초의 범용 전자 컴퓨터 탄생 - ENIAC

  • 컴퓨터 기술의 급속한 발전은 두 가지 측면에서 이익을 얻었습니다.

    • 컴퓨터 제조 기술의 발전
    • 컴퓨터 시스템 아키텍처의 혁신
  • 컴퓨터 기술은 4가지 발전 과정을 거쳤습니다.

시간 이유 연간 실적 성장
1946년부터 25년 두 가지 요인 모두 중요한 역할을 합니다. 25%
1970년대 후반~1980년대 초반 대규모 집적회로와 마이크로프로세서의 등장, 집적회로로 대표되는 제조기술의 발달 약 35%
1980년대 중반부터 RISC 구조의 출현, 시스템 구조는 지속적으로 업데이트 및 변경되며 제조 기술은 지속적으로 발전하고 있습니다.
약 16년 동안 50% 이상 유지
2002년부터 1. 전력 소비 문제(이미 크다)
2. 더 효과적으로 개발할 수 있는 명령어 수준의 병렬성은 이미 매우 적다.
3. 메모리 액세스 속도의 개선이 느리다.
약 20%

여기에 이미지 설명 삽입
시스템 구조의 주요 전환점:

  • 순전히 명령 수준 병렬 처리에 의존하는 것부터 스레드 수준 병렬 처리 및 데이터 수준 병렬 처리 개발까지
  • 컴퓨터 시스템 아키텍처는 컴퓨터 개발에서 매우 중요한 역할을 합니다.

1.2 컴퓨터 시스템 구조의 개념

1.2.1 컴퓨터 시스템의 계층

  • 컴퓨터 시스템 = 하드웨어/펌웨어 + 소프트웨어

  • 컴퓨터 언어는 저급에서 고급으로 발전

    • 마이크로프로그래밍 → 기계어 → 조립어 → 고급언어 → 응용언어
    • 상위 언어의 문장은 하위 언어보다 강력하고 적용하기 쉽지만 모두 하위 언어를 기반으로 합니다.
  • 컴퓨터 언어의 관점에서 컴퓨터 시스템은 기능에 따라 다단계 계층 구조로 나뉩니다.

    • 각 계층은 언어로 특징지어집니다.
      여기에 이미지 설명 삽입
  • 가상 머신: 소프트웨어로 구현된 머신

  • 언어 구현의 두 가지 기본 기술

    • 번역: 먼저 모든 N+1 레벨 프로그램을 N 레벨 프로그램으로 변환한 다음 새로 생성된 N 레벨 프로그램을 실행합니다.실행 과정에서 N+1 레벨 프로그램은 더 이상 액세스되지 않습니다.

    • 설명: N+1 수준 명령어가 해독될 때마다 일련의 동등한 N 수준 명령어를 직접 실행한 다음 다음 N+1 수준 명령어를 가져와 그에 따라 반복합니다.

해석 및 실행은 컴파일 후 실행보다 시간이 더 걸리지만 저장 공간을 덜 차지합니다.

1.2.2 컴퓨터 시스템 구조의 정의

  • 컴퓨터 시스템 아키텍처의 고전적 정의

    • 프로그래머가 보는 컴퓨터의 속성(즉, 개념적 구조 및 기능적 속성).

      • 프로그래머: 시스템 프로그래머(포함: 어셈블리어, 기계어, 컴파일러, 운영체제)

      • 보이는 것: 컴퓨터에서 올바르게 실행되는 프로그램을 작성하기 위해 알아야 할 사항

      • 컴퓨터 속성: 명령 시스템, 데이터 표현, 주소 지정 모드

  • 컴퓨터 시스템의 다단계 계층 구조에 따르면, 다른 수준의 프로그래머는 다른 속성을 가진 컴퓨터를 봅니다.

  • 투명성: 원래 존재하는 것 또는 속성이 특정 각도에서 존재하지 않는 것 같습니다.

  • Amdahl이 제안한 시스템 구조

    • 전통적인 기계 언어 수준의 프로그래머가 본 컴퓨터의 속성
  • 광범위한 시스템 구조 정의: 명령어 세트 구조, 구성, 하드웨어(컴퓨터 설계의 세 가지 측면)

  • 범용 레지스터 시스템의 경우 이러한 속성은 주로 다음을 참조합니다.

    • 명령 시스템
    • 데이터 표현
    • 주소 지정 규칙
    • 레지스터 정의
    • 인터럽트 시스템
    • 기계 작동 상태 정의 및 전환
    • 스토리지 시스템
    • 정보 보호
    • 입출력 구조
  • 컴퓨터 시스템 구조 개념의 본질:

    • 컴퓨터 시스템에서 소프트웨어와 하드웨어의 인터페이스를 결정합니다.인터페이스 위에는 소프트웨어에 의해 실현되는 기능이 있고 인터페이스 아래에는 하드웨어와 펌웨어에 의해 실현되는 기능이 있습니다.
  • 컴퓨터 시스템은 기능적으로 동등한 소프트웨어, 하드웨어 및 펌웨어로 구성됩니다.

    • 동일한 기능을 하드웨어나 소프트웨어 또는 펌웨어로 구현할 수 있습니다.
    • 다른 구현은 성능과 가격만 다를 뿐 시스템 구조는 동일합니다.

1.2.3 컴퓨터 구성 및 컴퓨터 구현

  • 컴퓨터 시스템 구조: 컴퓨터 시스템의 소프트웨어와 하드웨어 간의 인터페이스

    • 즉, 기계 언어 프로그래머가 본 전통적인 기계 수준의 속성입니다.
  • 컴퓨터 구성: 컴퓨터 시스템 아키텍처의 논리적 구현

    • 내부에서 컴퓨터 시스템을 연구하십시오. 물리적 기계 수준의 데이터 흐름 및 제어 흐름의 구성과 논리적 설계 등을 포함합니다.

    • 컴퓨터 구성이란 컴퓨터의 주요 구성 요소와 이들의 상호 연결에 의해 형성되는 시스템의 종류, 수량, 구성 방법, 제어 방법 및 정보 흐름 방법을 말합니다.

    • 이벤트가 물리적 시스템 수준, 각 구성 요소의 기능 및 구성 요소 간의 연결에서 순서가 지정되고 제어되는 방법에 중점을 둡니다.

    • 컴퓨터 구성은 주로 데이터 및 명령의 구성, 기본 연산 알고리즘, 데이터 액세스, 전송 및 처리, 데이터 흐름 및 명령 흐름의 제어 모드 등을 연구합니다.

  • Computational Realization: 컴퓨터로 구성된 물리적 구현

    • 포함: 프로세서, 메인 메모리 및 기타 구성 요소의 물리적 구조, 장치의 통합 및 속도, 특수 장치의 설계, 모듈, 플러그인 및 백플레인의 분할 및 연결, 신호 전송 기술, 전원 공급 장치, 냉각 및 기계 조립 기술, 제조 공정 및 기술 등
    • 중점: 장치 기술(주역), 미세 조립 기술.
  • 아키텍처는 여러 구성 요소를 가질 수 있습니다.

  • 하나의 구성은 여러 물리적 구현을 ​​가질 수 있습니다.

  • 시리즈 기계

    • 동일한 시스템 아키텍처를 사용하지만 구성 요소와 구현이 다른 동일한 제조업체에서 생산한 일련의 서로 다른 컴퓨터 모델

1.2.4 컴퓨터 시스템 아키텍처의 분류

  • Fung의 분류

    • 최대 병렬 처리 수준에 따라 컴퓨터를 분류합니다.

    • 최대 병렬 처리: 컴퓨터 시스템이 단위 시간당 처리할 수 있는 이진수의 최대 수입니다.

    • 컴퓨터 시스템은 평면 데카르트 좌표계의 한 점으로 표현되며, 가로축은 단어 폭( n 비트)을 나타내고 세로축은 한 번에 처리할 수 있는 단어 수( m 단어)를 나타냅니다. m × n은 최대 병렬도를 나타냅니다.

      • 워드 직렬 및 비트 직렬 WSBS(워드 직렬 및 비트 직렬)
        • 직렬 컴퓨터, m=1,n=1
      • 워드 병렬 및 비트 직렬 WPBS(워드 병렬 및 비트 직렬):
        • 비트 슬라이스 처리 병렬 컴퓨터, MPP, 연관 컴퓨터, m=1, n>1;
      • WSBP(Word Serial and Bit Parallel): 워드 프로세싱
        • 기존 단일 프로세서, m > 1, n=1
      • 워드 병렬 및 비트 병렬 WPBP(워드 병렬 및 비트 병렬)
        • 완전 병렬 컴퓨터, m > 1, n > 1
    • 주요 단점: 데이터 병렬성만 고려하고 명령, 작업 및 작업의 병렬성은 고려하지 않음

  • 플린 분류

    • 명령어 스트림과 데이터 스트림의 배수성에 의한 분류.

    • 명령 스트림: 컴퓨터가 실행하는 일련의 명령.

    • 데이터 스트림: 명령어 스트림에 의해 호출되는 일련의 데이터.

    • Polyploidy: 시스템의 제한된 구성 요소에서 동일한 실행 단계에 동시에 있는 최대 명령 또는 데이터 수입니다.

    • Flynn 분류법은 컴퓨터 시스템의 구조를 네 가지 범주로 나눕니다.

      • 단일 명령어 단일 데이터(SISD)

      • SIMD(단일 명령어 다중 데이터)

      • MISD(다중 명령 스트림 단일 데이터 스트림)

      • MIMD(다중 명령어 다중 데이터)

1.3 정량분석기법

1.3.1 컴퓨터 시스템 설계의 정량적 원리

4가지 양적 원칙:

  • 반복되는 이벤트에 집중

    • 보다 전반적인 개선을 얻기 위해 자주 발생하는 상황에 대한 최적화 방법을 기반으로 선택됩니다.

    • 최적화는 더 많은 리소스 할당, 더 높은 성능 달성 또는 더 많은 전력 할당 등을 의미합니다.

  • 암달의 법칙

    • 구성 요소의 실행 속도를 높여 얻을 수 있는 시스템 성능 속도 향상은 시스템의 총 실행 시간에 대한 해당 구성 요소의 실행 시간 비율로 제한됩니다.
    • 시스템 성능 속도 향상:

여기에 이미지 설명 삽입

  • 속도 향상은 두 가지 요소에 따라 달라집니다.

    • 개선할 수 있는 비율: 개선 전 시스템에서 전체 실행 시간에 대한 개선할 수 있는 부분의 실행 시간의 비율.
    • 항상 1보다 작거나 같습니다.
  • 구성 요소 속도 향상: 부분 개선 후 성능 개선의 배수를 향상시킬 수 있습니다.

    • 개선 후 실행 시간에 대한 개선 전 실행 시간의 비율입니다.

    • 일반적으로 구성 요소 속도 향상은 1보다 큽니다.

  • 개선된 프로그램의 총 실행 시간

여기에 이미지 설명 삽입

  • 시스템 속도 향상은 개선 전후 총 실행 시간의 비율입니다.

여기에 이미지 설명 삽입

  • 성능이 향상된 내림차순 규칙

    • 성능 향상이 컴퓨팅 작업의 일부에서만 이루어지면 개선이 많을수록 전체 성능 향상이 제한됩니다.

    • 전체 작업의 일부만 개선되고 최적화되면 얻을 수 있는 속도 향상은

      1/(1-개선할 수 있는 비율)

  • CPU 성능 공식

    • 프로그램 실행에 필요한 CPU 시간

    • CPU 시간 = 프로그램을 실행하는 데 필요한 클럭 사이클 수 x 클럭 사이클 시간

      • 그 중 클록 주기 시간은 시스템 클록 주파수의 역수입니다.
    • 명령 실행 CPI당 평균 클록 사이클 수

      • CPI = 프로그램/IC를 실행하는 데 필요한 클록 사이클 수
      • IC: 실행된 명령의 수
    • 프로그램 실행을 위한 CPU 시간은 다음과 같이 쓸 수 있습니다.

      • CPU 시간 = IC × CPI × 클록 주기 시간
    • CPU의 성능은 3가지 매개변수에 따라 달라집니다.

      • 클록 주기 시간: 하드웨어 구현 기술 및 컴퓨터 구성에 따라 다릅니다.

      • CPI: 컴퓨터 구성 및 명령어 세트 구조에 따라 다름.

      • IC: 명령어 세트 구조 및 컴파일 기술에 따라 다릅니다.

    • CPU 성능 공식의 추가 개선

      • 가정: 컴퓨터 시스템에는 n 종류의 명령이 있습니다.
      • CPI i : i번째 명령의 처리 시간;
      • IC i : 프로그램에서 i번째 명령의 발생 횟수;
      • 그러면 CPU 클록 사이클 수 = ∑(CPI i * IC i )
      • CPU 시간 = 프로그램을 실행하는 데 필요한 클럭 사이클 수 x 클럭 사이클 시간

      = ∑(CPI i * IC i ) × 클럭 주기 시간

  • 프로그램 지역성의 원리

    • 프로그램 실행 중에 액세스되는 메모리 주소의 분포는 무작위가 아니라 상대적으로 클러스터링됩니다.

    • 일반적으로 사용되는 경험 법칙

      • 프로그램 실행 시간의 90%는 프로그램 코드의 10%를 실행하는 데 있습니다.
    • 프로그램의 시간적 지역성

      • 프로그램이 사용하려고 하는 정보는 현재 사용 중인 정보일 가능성이 높습니다.
    • 프로그램 공간 지역성

      • 프로그램이 사용하려는 정보는 현재 사용 중인 정보와 공간적으로 인접하거나 근접할 가능성이 높습니다.

1.3.2 전산시스템의 성능평가

  • 실행 시간 및 처리량

    • 컴퓨터의 성능을 평가하는 방법은 테스터가 문제를 바라보는 각도와 관련이 있습니다.
    • 사용자가 관심을 갖는 것은 단일 프로그램의 실행 시간(단일 프로그램을 실행하는 데 소요되는 시간이 매우 적음)입니다.
    • 전산센터 관리자가 신경쓰는 것은 처리율(단위 시간에 처리할 수 있는 많은 작업)
    • 두 대의 컴퓨터가 X와 Y이고 X가 Y보다 빠르다고 가정하면 다음을 의미합니다.
      • 주어진 작업에 대해 X의 실행 시간은 Y의 실행 시간보다 짧습니다.
      • X는 Y의 n 배의 성능을 가지며 실행 시간은 성능에 반비례합니다.
    • 실행 시간은 다양한 방법으로 정의할 수 있습니다.
      • 디스크 액세스, 메모리 액세스, 입/출력, 운영 체제 오버헤드 등을 포함하여 컴퓨터가 작업을 완료하는 데 걸리는 총 시간입니다.
      • CPU 시간: I/O 대기 시간과 다른 프로그램을 실행하는 데 소요된 시간을 제외하고 CPU가 주어진 프로그램을 실행하는 데 소요된 시간입니다.
        • 사용자 CPU 시간: 사용자 프로그램이 소비한 CPU 시간입니다.
        • 시스템 CPU 시간: 사용자 프로그램을 실행하는 동안 운영 체제에서 소비한 CPU 시간입니다.
  • 벤치마킹 프로그램

    • 성능 테스트 및 비교를 위한 벤치마크 프로그램을 위한 최선의 선택은 실제 애플리케이션입니다. (예: 컴파일러)

    • 과거에는 다음과 같은 간소화된 절차가 자주 사용되었습니다.

      • 핵심 테스트 프로그램: 실제 프로그램에서 선택한 키 코드 세그먼트로 구성된 작은 프로그램입니다.
      • 작은 테스트 프로그램: 수십 줄의 간단한 작은 프로그램.
      • 합성 테스트 프로그램: 인위적으로 합성한 프로그램.
    • Whetstone 및 Dhrystone은 가장 널리 사용되는 합성 테스트 절차입니다.

    • Whetstone은 주로 부동 소수점 연산, 정수 산술 연산, 함수 호출, 배열 인덱싱, 조건부 전송 및 초월 함수를 수행하는 프로그램으로 구성된 FORTRAN 언어로 작성된 종합 테스트 프로그램입니다.

    • Dhrystone은 프로세서 정수 성능을 테스트하기 위한 가장 일반적인 벤치마크 중 하나입니다.

    • 테스트 성능의 관점에서 위의 테스트 절차는 신뢰할 수 없습니다.

      • 이유:

      • 이러한 프로그램은 상대적으로 작고 일방적입니다.

      • 시스템 설계자와 컴파일러 설계자는 이러한 테스트 프로그램에 대해 컴퓨터를 최적화하기 위해 "공모"하여 컴퓨터의 성능이 더 뛰어난 것처럼 보이게 할 수 있습니다. 최고 성능

    • 성능 테스트의 결과는 사용된 테스트 절차와 관련이 있을 뿐만 아니라 테스트가 수행되는 조건과도 관련이 있습니다.

    • 벤치마크 디자이너가 제조사에게 묻는 것

      • 동일한 컴파일러를 사용하십시오.
      • 동일한 언어의 모든 프로그램은 동일한 컴파일 플래그 집합을 사용합니다.
    • 한 가지 질문: 테스트 프로그램의 소스 프로그램 수정이 허용되는지 여부 세 가지 접근 방식:

      • 수정은 허용되지 않습니다.

      • 수정은 허용되지만 테스트 프로그램의 복잡성이나 크기로 인해 수정이 거의 불가능합니다.

      • 최종 출력이 동일한 경우 수정이 허용됩니다.

    • 벤치마크 제품군(Benchmark): 다양한 실제 애플리케이션으로 구성됩니다.

    • (모든 측면에서 컴퓨터의 처리 성능을 보다 포괄적으로 반영할 수 있음)

    • SPEC 제품군: 가장 성공적이고 일반적인 테스트 절차 제품군

    • (미국 Standard Performance Evaluation Corporation에서 개발)

    • 트랜잭션 처리(TP) 성능 테스트 벤치마크 프로그램:

      • 데이터베이스 액세스 및 업데이트를 포함하여 트랜잭션 처리에서 컴퓨터의 능력을 테스트하는 데 사용됩니다.
  • 성능 비교

    • 총 실행 시간: 컴퓨터가 모든 테스트 프로그램을 실행하는 데 걸린 총 시간
    • 평균 실행 시간: 각 테스트 프로그램의 실행 시간의 산술 평균
    • 가중 실행 시간: 각 테스트 프로그램 실행 시간의 가중 평균

1.4 전산시스템 구조의 발전

1.4.1 폰 노이만 구조

  • 저장된 프로그램 원리의 기본 포인트: 명령 드라이브

    • 프로그램과 데이터는 컴퓨터 메모리에 미리 저장되어 있으며, 컴퓨터가 시작되면 이러한 프로그램은 프로그램이 지정한 논리적 순서에 따라 실행될 수 있으며 프로그램이 설명하는 처리 작업은 자동으로 완료됩니다.
  • 폰 노이만 구조의 주요 특징

    • 계산기를 중심으로.
    • 메모리에서 명령어와 데이터는 동일하게 취급됩니다.
      • 명령어는 데이터와 마찬가지로 연산이 가능합니다. 즉, 명령어로 구성된 프로그램을 수정할 수 있습니다.
    • 메모리는 주소에 의해 액세스되고 순차적으로 선형적으로 주소가 지정되는 1차원 구조이며 각 단위의 비트 수는 고정되어 있습니다.
    • 명령이 순차적으로 실행됨
      • 일반적으로 명령어는 메모리에 저장된 순서대로 실행됩니다.
      • 프로그램 분기는 전송 명령에 의해 실현됩니다.
      • 명령 카운터 PC는 현재 실행 중인 명령의 메모리 주소를 나타냅니다.
    • 명령은 opcode와 주소 코드로 구성됩니다.
    • 명령과 데이터는 이진 연산을 사용하여 이진 코드로 표현됩니다.
  • 시스템 구조 개선

    • 입출력 방식 개선
    • 병렬 처리 기술 사용
    • 기억 조직의 진화
    • 명령어 세트 개발
      • 복합 명령 집합 컴퓨터(CISC)
      • 축소 명령어 세트 컴퓨터(RISC)

1.4.2 소프트웨어가 시스템 구조에 미치는 영향

  • 소프트웨어 이식성: 소프트웨어를 수정하지 않고 또는 약간만 수정하여 한 컴퓨터에서 다른 컴퓨터로 이식할 수 있습니다. 차이는 실행 시간의 차이일 뿐입니다. 우리는 두 대의 컴퓨터가 소프트웨어 호환이 가능하다고 말합니다.

  • 소프트웨어 이식성을 달성하는 일반적인 방법:

    • 시리즈 기계
    • 시뮬레이션 및 에뮬레이션
    • 통합 고급 언어
  • 시리즈 기계

    • 시스템 구조는 같지만 구성 요소와 구현이 다른 동일한 제조업체에서 생산하는 일련의 서로 다른 기계 모델입니다. 소프트웨어 개발에 필요한 상대적으로 안정적인 시스템 구조와 장치 및 하드웨어 기술의 급속한 발전 사이의 모순을 더 잘 해결할 수 있습니다.

    • 소프트웨어 호환

      • 상위(하위) 호환성: 특정 기어에 따라 컴파일된 프로그램은 수정 없이 상위(하위) 기어에서 실행될 수 있습니다.
      • 순방향(역방향) 호환성: 일정 기간에 시장에 출시된 특정 유형의 기계용으로 컴파일된 프로그램은 수정 없이 시장에 출시되기 전(후)에 출시된 기계에서 실행될 수 있습니다.
      • 이전 버전과의 호환성은 시리즈 시스템의 기본 기능이며 달성해야 합니다.
      • 상위 호환이 되도록 최선을 다하십시오.
      • 순방향 호환성 및 역방향 호환성은 무시할 수 있습니다.
        • 호환 기계: 다른 회사에서 생산한 동일한 시스템 구조를 가진 컴퓨터
    • 시뮬레이션 및 에뮬레이션

      • 시스템 구조가 다른 시스템 간에 소프트웨어를 이식할 수 있습니다.

        • 다른 시스템 구조 위에 다른 시스템 구조를 구현하십시오.
        • 명령어 집합의 관점에서 보면 다른 컴퓨터의 명령어 집합을 한 컴퓨터에 구현하는 것입니다.
      • 시뮬레이션: 소프트웨어를 사용하여 기존 기계(호스트 기계라고 함)에서 다른 기계(가상 기계라고 함)의 명령 세트를 구현합니다.

        • 이것은 일반적으로 해석을 통해 달성됩니다.
        • 실행 속도가 느려지고 성능이 저하됩니다.
      • 시뮬레이션: 기존 기계(호스트 기계)에서 마이크로 프로그램을 사용하여 다른 기계(대상 기계)의 명령 집합을 해석합니다.

        • 아날로그 방식보다 빠르게 실행
        • 에뮬레이션은 시스템 구조에 약간의 차이가 있는 기계 사이에서만 사용할 수 있습니다.
    • 통합 고급 언어

      • 소프트웨어 마이그레이션을 실현하는 이상적인 방법
      • 달성하기 어려움

1.4.3 장치 개발이 시스템 구조에 미치는 영향

  • 무어의 법칙
    • 집적 회로 칩에 집적된 트랜지스터의 수는 18개월마다 두 배가 됩니다.
  • 컴퓨터의 세대는 주로 디바이스를 디비전 기준으로 삼고 있다.
    • 그들은 장치, 시스템 아키텍처 및 소프트웨어 기술 측면에서 고유한 특성을 가지고 있습니다.

1.4.4 시스템 구조에 대한 애플리케이션의 영향

  • 서로 다른 응용 프로그램은 컴퓨터 시스템 구조 설계에 대해 서로 다른 요구 사항을 제시합니다.
  • 응용 프로그램 요구 사항은 컴퓨터 시스템 구조 개발의 가장 근본적인 원동력입니다.
  • 일부 특수 영역: 고성능 시스템 구조 필요
  • 시간이 지남에 따라 컴퓨터 성능 저하

1.4.5 시스템 구조의 라이프 사이클

  • 시스템 구조의 수명 주기: 출생, 발달, 성숙에서 사망까지
    • 하드웨어 성숙에서 시스템 소프트웨어 성숙까지 약 5~7년 소요
    • 시스템 소프트웨어의 성숙에서 응용 소프트웨어의 성숙까지는 약 5~7년이 소요됩니다.
    • 앞으로 5~7년 후에는 이 시스템 구조가 주류 시스템 구조로 존재하지 않을 것입니다.

1.5 컴퓨터 시스템 아키텍처의 병렬성 개발

1.5.1 병렬성의 개념

  • 병렬성: 컴퓨터 시스템은 동시에 또는 동일한 시간 간격 내에서 여러 계산 또는 작업을 수행합니다.

    • 병렬성은 시간상 서로 겹치는 한 존재합니다.
  • 동시성: 두 개 이상의 이벤트가 동시에 발생합니다.

  • 동시성: 둘 이상의 이벤트가 동일한 시간 간격 내에서 발생합니다.

  • 병렬 처리: 컴퓨팅 프로세스에서 병렬 이벤트를 마이닝하고 높은 수준의 병렬 처리를 가능하게 합니다.

  • 데이터 처리의 관점에서 병렬 처리 수준은 낮음에서 높음으로 나눌 수 있습니다.

    • 문자열 비트 문자열: 한 번에 한 단어의 1비트만 처리됩니다.
      • 가장 기본적인 직렬 처리 방식으로 병렬 처리가 없습니다.
    • 문자열 비트 합집합: 한 단어의 모든 비트를 동시에 처리하고 서로 다른 단어가 직렬화됩니다.
      • 병렬성이 나타나기 시작합니다.
    • 워드 병렬 비트열: 많은 워드의 동일한 비트(비트 슬라이스라고 함)가 동시에 처리됩니다.
      • 그것은 높은 병렬성을 가지고 있습니다.
    • Full Parallel: 동시에 많은 단어 비트의 전부 또는 일부를 처리합니다.
      • 최고 수준의 병렬 처리.
  • 실행 프로그램의 관점에서 낮은 수준에서 높은 수준까지의 병렬 처리 수준은 다음과 같습니다.

    • 인트라 인스트럭션 병렬성: 단일 명령어에서 마이크로 연산 간의 병렬성.

    • 명령 수준 병렬성: 두 개 이상의 명령을 병렬로 실행합니다.

    • 스레드 수준 병렬성: 둘 이상의 스레드를 병렬로 실행합니다.

      • 일반적으로 하나의 프로세스에서 파생된 여러 스레드가 스케줄링 단위로 사용됩니다.
    • 작업 수준 또는 프로세스 수준 병렬성: 두 개 이상의 프로세스 또는 작업(프로그램 세그먼트)을 병렬로 실행

      • 스케줄링 단위는 서브루틴 또는 프로세스입니다.
    • 작업 또는 프로그램 수준 병렬성: 두 개 이상의 작업 또는 프로그램을 병렬로 실행합니다.

1.5.2 병렬성을 개선하기 위한 기술적 접근

  • 세 가지 방법:
    • 시간 중첩: 시간 요소 소개
      • 여러 처리 프로세스가 시간에 따라 서로 엇갈리게 하고 동일한 하드웨어 장비 세트의 여러 부분을 번갈아 사용하여 하드웨어 전환 속도를 높이고 속도를 얻습니다.
    • 자원의 복제: 수량으로 승부하는 공간 요소 도입
      • 반복적으로 하드웨어 리소스를 설정함으로써 컴퓨터 시스템의 성능을 크게 향상시킬 수 있습니다.
    • 리소스 공유: 이것은 여러 작업이 동일한 하드웨어 장치 집합을 특정 연대순으로 차례로 사용할 수 있도록 하는 소프트웨어 방법입니다.

1.5.3 단일 기계 시스템의 병렬성 개발

  • 고성능 유니프로세서를 개발하는 과정에서 시간 중첩의 원리가 주도적인 역할을 한다.

    • 시간적 중첩을 달성하기 위한 기반: 구성요소 기능 전문화
      • 기능에 따라 작업을 상호 관련된 여러 부분으로 나눕니다.
      • 각 부품을 전용 구성 요소에 할당합니다.
      • 시간 중첩의 원리에 따라 각 부분의 실행 과정이 시간적으로 중첩되어 모든 부분이 차례로 나누어져 같은 작업의 집합체를 완성한다.
  • 단일 프로세서에서 리소스 복제 원칙을 적용하는 것도 매우 일반적입니다.

    • 다체 기억

    • 다중 작동 부품

      • 공통 부분은 덧셈 부분, 곱셈 부분, 나눗셈 부분, 논리 연산 부분 등 여러 특수 목적 부분으로 분해되며 동일한 부분을 반복해서 설정할 수도 있습니다.
      • 명령 실행(피연산자가 준비되어 있는 경우)은 명령에 필요한 피연산자가 사용 가능한 즉시 시작할 수 있습니다.
      • 이것은 명령 수준의 병렬 처리를 달성합니다.
    • 어레이 프로세서(병렬 프로세서)

      • 또한 많은 동일한 처리 장치가 설정되어 동일한 컨트롤러의 명령 하에 동일한 명령의 요구 사항에 따라 벡터 또는 배열의 각 요소에 대해 동일한 작업을 동시에 수행하여 배열을 형성합니다. 프로세서.
  • 유니프로세서에서 자원 공유의 개념은 기본적으로 유니프로세서를 사용하여 멀티프로세서의 기능을 시뮬레이션하여 소위 가상 머신이라는 개념을 형성합니다.

    • 시간 공유 시스템

1.5.4 다중 기계 시스템의 병렬성 개발

  • 다중 기계 시스템은 시간 중첩, 자원 복제 및 자원 공유의 원칙을 따르며 세 가지 다중 프로세서로 발전합니다.

    • 이기종 멀티프로세서, 동종 멀티프로세서, 분산 시스템
  • 커플 링

    • 다중 기계 시스템에서 기계 간의 물리적 연결의 견고함과 상호 작용의 강도를 반영합니다.
    • 긴밀하게 결합된 시스템(직접 결합된 시스템): 이 시스템에서 컴퓨터 간의 물리적 연결은 높은 주파수 대역을 가지며 일반적으로 버스 또는 고속 스위치로 상호 연결되며 주 메모리를 공유할 수 있습니다.
    • 느슨하게 결합된 시스템(간접적으로 결합된 시스템): 컴퓨터 간의 상호 연결은 일반적으로 채널이나 통신 회선을 통해 구현되며 외부 저장 장치(디스크, 테이프 등)를 공유할 수 있습니다. 시스템 간의 상호 작용은 파일 또는 데이터 세트 수준에서 이루어집니다.
  • 기능 전문화(시간 중첩을 달성하기 위해)

    • 전용 주변 프로세서
    • 특수 목적 프로세서
    • 이기종 멀티프로세서 시스템
  • 기계 간 상호 연결

    • 내결함성 시스템: 시스템의 신뢰성을 보장합니다.

    • 재구성 가능한 시스템

      • 컴퓨터 간의 상호 연결 네트워크 성능에 대한 요구 사항이 더 높습니다. 고대역폭, 낮은 대기 시간 및 오버헤드가 낮은 M2C 상호 연결 네트워크는 효율적인 프로그램 또는 작업 수준 병렬 처리를 위한 전제 조건입니다.
    • 동종 다중 프로세서 시스템: 각 프로세서는 동일한 기능을 가짐
      시스템의 병렬성 개발

  • 다중 기계 시스템은 시간 중첩, 자원 복제 및 자원 공유의 원칙을 따르며 세 가지 다중 프로세서로 발전합니다.

    • 이기종 멀티프로세서, 동종 멀티프로세서, 분산 시스템
  • 커플 링

    • 다중 기계 시스템에서 기계 간의 물리적 연결의 견고함과 상호 작용의 강도를 반영합니다.
    • 긴밀하게 결합된 시스템(직접 결합된 시스템): 이 시스템에서 컴퓨터 간의 물리적 연결은 높은 주파수 대역을 가지며 일반적으로 버스 또는 고속 스위치로 상호 연결되며 주 메모리를 공유할 수 있습니다.
    • 느슨하게 결합된 시스템(간접적으로 결합된 시스템): 컴퓨터 간의 상호 연결은 일반적으로 채널이나 통신 회선을 통해 구현되며 외부 저장 장치(디스크, 테이프 등)를 공유할 수 있습니다. 시스템 간의 상호 작용은 파일 또는 데이터 세트 수준에서 이루어집니다.
  • 기능 전문화(시간 중첩을 달성하기 위해)

    • 전용 주변 프로세서
    • 특수 목적 프로세서
    • 이기종 멀티프로세서 시스템
  • 기계 간 상호 연결

    • 내결함성 시스템: 시스템의 신뢰성을 보장합니다.

    • 재구성 가능한 시스템

      • 컴퓨터 간의 상호 연결 네트워크 성능에 대한 요구 사항이 더 높습니다. 고대역폭, 낮은 대기 시간 및 오버헤드가 낮은 M2C 상호 연결 네트워크는 효율적인 프로그램 또는 작업 수준 병렬 처리를 위한 전제 조건입니다.
    • 동종 다중 프로세서 시스템: 각 프로세서는 동일한 기능을 가집니다.

      • 동일한 유형 또는 적어도 동등한 기능을 가진 여러 프로세서로 구성되어 동일한 작업에서 병렬로 실행할 수 있는 여러 작업을 동시에 처리합니다.

추천

출처blog.csdn.net/weixin_48144018/article/details/124957960