Central processing unit (한국어)

0 Comments
볼 수도:프로세서 설계

블록 다이어그램의 기본 단일 프로세서 CPU 컴퓨터입니다. 검은 색 선은 데이터 흐름을 나타내는 반면 빨간색 선은 제어 흐름을 나타내며 화살표는 흐름 방향을 나타냅니다.

CPU 에 하드 와이어드”s 회로는 명령어 세트라고하는 수행 할 수있는 기본 작업 집합입니다. 이러한 작업이 포함될 수 있습,예를 들면,추가하거나 빼는 두 번호 비교하는 두 번호,또는 다른 프로그램의 일부., 각각의 기본 작업으로 표현되는 특정의 조합 비트,컴퓨터 언어 opcode;를 실행하는 동안 지침에서 기계언어 프로그램,CPU 결정하는 작업을 수행하기 위해”decoding”the opcode. 전체 기어의 코드고,많은 경우에,추가적인 비트를 지정하는 인수한 동작(예를 들어,숫자를 표현에서의 경우는 추가 작업). 복잡성 규모를 올라가면 기계어 프로그램은 CPU 가 실행하는 기계어 명령어 모음입니다.,

실제적인 수학적 작업에 대한 각각의 지시에 의해 수행되는 조합 논리 회로에서 CPU”s 프로세서로 알려진 산술 논리 유닛 또는 알루미늄. 일반적으로 CPU 는 메모리에서 가져 와서 ALU 를 사용하여 작업을 수행 한 다음 결과를 메모리에 저장하여 명령을 실행합니다., 옆에 있는 지침을 위해 정수학 논리 연산,다양한 기타 기계 지침,존재 그들과 같은 데이터를 로드하기 위한 메모리에서 및 저장,다시 그것을 분기 작업과 수학에서 작업 부동 소수점의 숫자에 의해 수행되 CPU”s floating-point unit(FPU).

Control unitEdit

주요 기사:Control unit

control unit(cu)은 프로세서의 작동을 지시하는 CPU 의 구성 요소입니다., 그것은 컴퓨터에 알려 줍”s 메모리,산술 및 논리 장치 및 입력 및 출력 장치는 방법에 대응하는 지침을 발송되었습니다.

타이밍 및 제어 신호를 제공하여 다른 유닛의 작동을 지시합니다. 대부분의 컴퓨터 리소스는 CU 에서 관리합니다. 그것은 CPU 와 다른 장치 사이의 데이터 흐름을 지시합니다. 존 폰 노이만(John von Neumann)은 폰 노이만(von Neumann)아키텍처의 일부로 컨트롤 유닛을 포함 시켰습니다., 최신 컴퓨터 설계에서 컨트롤 유닛은 일반적으로 도입 이후 전반적인 역할과 작동이 변경되지 않은 CPU 의 내부 부분입니다.

산술 논리 unitEdit

주요 문서를 산술 논리 유닛

상징적으로 표시되는 알루미늄과 그 입력 및 출력 신호

산술 논리 유닛(ALU) 디지털 회로 내에서 프로세서 수행하는 정수 연산이 비트와 논리 작업입니다., 입력하 ALU 는 데이터는 단어를 운영 할 수 있(라는 피연산자)상태 정보에서 이전 작업,그리고 코드에서 제어부를 나타내는 작업을 수행할 수 있습니다. 에 따라 명령은 실행되는,피연산자에서 올 수 있습니다 프로세서 내부 레지스터 또는 외부 메모리에이 있을 수도 있습니다 상수에 의해 생성된 ALU 자체입니다.

모든 입력 신호가 alu 회로를 통해 정착되고 전파되면 수행 된 작업의 결과가 ALU”s 출력에 나타납니다., 결과는 모두로 구성된 데이터는 단어에 저장될 수 있을 등록하거나 메모리 및 상태 정보는 일반적으로 저장되는 특수한,내부 CPU 등록에 대한 예약이 목적입니다.

주소 생성 unitEdit

주요 기사:주소 생성 단위

주소 생성부(AGU),때로는 라는 주소 계산 단위(ACU),은 실행 단위 안에 CPU 를 계산하는 주소를 사용하여 CPU 액세스하는 메모리., 함으로써 주소 계산에 의해 처리됩 별도의 회로에서 운영하는 병렬의 나머지 부분과 CPU,CPU 사이클의 수요를 실행하기 위한 다양한 기계 지침,감소할 수 있는 데 성능 개선.

하는 동안 다양한 작업을 수행,Cpu 는 필요한 계산하는 메모리 주소에 필요한 데이터를 가져오는 메모리에서 예를 들어,메모리 위치는 배열 요소의 합을 계산하기 전에 CPU 가져올 수 있는 데이터에서 실제는 메모리 위치., 그 주소 생성 계산에 포함한 다른 정수 연산,같은 또한 빼기,모듈 작업 또는 비트 바뀝니다. 종종을 계산하는 메모리 주소를 포함 하나 이상의 일반적인 용도 컴퓨터 교육하지 않는 반드시 디코딩하고 신속하게 실행. 통합해서는 AGU 로 CPU 함께 디자인을 소개하는 전문 지침을 사용하는 AGU,다양한 주소 생성한 계산을 수행하는 오프로드의 나머지 부분에서는 CPU,될 수 있는 신속하게 실행에서 하나의 CPU cycle.,

AGU 의 기능은 특정 CPU 와 해당 아키텍처에 따라 다릅니다. 따라서,일부 AGUs 구현하고 더 많은 노출 주소 계산이 운영하는 동안,몇 가지도 포함이 더 많은 고급 전문 지침을 운영할 수 있습니다에 여러 개의 피연산자니다. 또한,일부 CPU 아키텍처를 포함한 여러 AGUs 그래서 하나 이상의 주소 계산 작업을 실행할 수 있습을 동시에 가져 오는 성능 향상에 투자해서 superscalar 자연의 고급 CPU 디자인입니다., 예를 들면,인텔 통합 여러 AGUs 으로 그 모래 사장이 브리지 및 스웰 microarchitectures,증가하는 대역폭의 CPU 하위 시스템 메모리에 의해 여러 메모리 액세스 명령을 실행합니다.

메모리 관리 장치(MMU)편집

주요 기사:메모리 관리 장치

가장 높은-엔드 마이크로프로세서(데스크탑,노트북,서버 컴퓨터)에 있는 메모리 관리 장치,번역하고 논리 주소를 물리 메모리 주소를 제공하는 메모리 보호 및 페이 능력에 대한 유용한 가상 메모리입니다., 더 간단한 프로세서,특히 마이크로 컨트롤러는 일반적으로 MMU 를 포함하지 않습니다.

CacheEdit

CPU 캐시는 하드웨어 캐시 사용 중앙처리 장치(CPU),컴퓨터의 평균 비용을 절감하(시간 또는 에너지)데이터에 액세스합니다. 캐시는 자주 사용되는 주 메모리 위치의 데이터 복사본을 저장하는 프로세서 코어에 가까운 더 작고 빠른 메모리입니다. 가장 Cpu 는 다른 독립적인 캐시 포함하여 명령어와 데이터 캐시 데이터 캐시는 일반적으로 조직의 계층으로세스 수준이(L1,L2,L3,L4,etc.,).

모든 최신(빠른)Cpu(특수 예외가 거의 없음)에는 여러 수준의 CPU 캐시가 있습니다. 첫 번째는 Cpu 사용 캐시 하나의 수준의 캐시와 달리 이후 레벨 1 캐시지 않았으로 분할 L1d(를 위한 데이터)및 L1i(에 대한 지침). 캐시가있는 거의 모든 현재 Cpu 에는 분할 L1 캐시가 있습니다. 또한 l2 캐시가 있으며 더 큰 프로세서의 경우 L3 캐시도 있습니다. L2 캐시는 일반적으로 분할되지 않으며 이미 분할 된 L1 캐시의 공통 저장소 역할을합니다. 멀티 코어 프로세서의 모든 코어에는 전용 L2 캐시가 있으며 일반적으로 코어간에 공유되지 않습니다., L3 캐시 및 상위 레벨 캐시는 코어간에 공유되며 분할되지 않습니다. L4 캐시은 현재 드물고 일반적으로 dynamic random-access memory(DRAM),에 보다는 오히려 정체되 랜덤 액세스 메모리(SRAM),별도의 죽는 칩이다. 는 경우도 있었으로 L1 하는 동안,더 큰 칩 허용되는 통합 그리고 일반적으로 모든 캐시 수준의 수를 제외하고,마지막의 수준입니다. 캐시의 각 추가 수준은 더 크고 다르게 최적화되는 경향이 있습니다.,

기타 형태의 캐시 존재하(는 것은 계산에 포함되지 않습으로”캐쉬 크기를”의 가장 중요한 것 캐시 위에서 언급한)같은 번역을 색인 버퍼(TLB)는 부분의 메모리 관리 장치(MMU)는 대부분의 Cpu 니다.

캐시는 일반적으로 4,8,16 등의 2 의 힘으로 크기가 조정됩니다. IBM z13 에는 96KiB L1 명령어 캐시가 있지만 KiB 또는 MiB(더 큰 비 L1 의 경우)크기입니다.

시계 rateEdit

주 제:계 평가

대부분의 Cpu 가 있는 동기 회로,그들은 그 사용 시계 신호를 속도들의 순차적인 작업입니다., 클럭 신호는주기적인 구형파의 형태로 매 초마다 일관된 수의 펄스를 생성하는 외부 발진기 회로에 의해 생성됩니다. 클럭 펄스의 주파수는 CPU 가 명령어를 실행하는 속도를 결정하고 결과적으로 클럭이 빠를수록 CPU 가 매 초마다 더 많은 명령어를 실행합니다.

올바른 작동을 보장하기 위해 CPU 시간이 더 이상보다 최대 시간에 필요한 모든 신호를 전파하는(이동)을 통해 CPU., 에서 시계를 설정하는 기간에 값이 아니라 위의 최악의 경우 전파 지연,그것이 가능한 전체를 디자인에 CPU 그리고 방법은 데이터를 이동하는”가”의 상승 및 하강 시계 신호입니다. 이는 설계 관점과 구성 요소 수 관점 모두에서 CPU 를 크게 단순화하는 이점이 있습니다. 그러나,그것은 또한 수행하는 단점 전체 CPU 기다려야에서 가장 느린 요소도의 일부는 그것은 훨씬 빠릅니다. 이 제한은 CPU 병렬 처리를 증가시키는 다양한 방법에 의해 크게 보상되었습니다(아래 참조).,

그러나 아키텍처 개선만으로는 전 세계적으로 동기식 Cpu 의 모든 단점이 해결되지 않습니다. 예를 들어,클록 신호는 다른 전기 신호의 지연에 영향을받습니다. 높은 시계 속에서 점점 더 복잡한 Cpu 에 더하기 어려워지는 시계 신호 단계에서(동기화되는)전체에 걸쳐 단위입니다. 이것은 많은 현대 Cpu 의 필요 여러 개의 동일한 시계 신호를 제공하는 지연을 피하는 단일 신호가 크게 일으킬 정도의 CPU 가 있습니다., 클럭 속도가 극적으로 증가함에 따라 또 다른 주요 문제는 CPU 에 의해 발산되는 열의 양입니다. 끊임없이 변화하는 시계는 그 시간에 사용되는지 여부에 관계없이 많은 구성 요소가 전환되도록합니다. 일반적으로 스위칭하는 구성 요소는 정적 상태의 요소보다 더 많은 에너지를 사용합니다. 따라서,같은 시계 속도가 증가함에 따라,에너지 소비를 일으키는 CPU 을 필요로 더 열 분산에서의 형태로 CPU 냉각 솔루션입니다.,

중 하나의 방법을 다루고의 전환이 불필요한 구성 요소라는 시계의 게이트를 포함 끄기계 신호를 불필요한 구성 요소(비활성화를 효과적으로)에 적용합니다. 그러나,이것은 종종로 구현하기가 어렵고 따라서 볼 수 없는 일반적인 사용이 외부의 매우 저전력 설계합니다. 하나 주목할만한 최근의 CPU 디자인을 사용하는 광범위한계 제어가 IBM PowerPC 기반논에서 사용 Xbox360;는 방법으로,전력 요구사항의 Xbox360 크게 줄일 수 있습니다., 전역 클록 신호의 일부 문제를 해결하는 또 다른 방법은 클록 신호를 모두 제거하는 것입니다. 를 제거하는 동안 세계 시계 신호를 만드 디자인 프로세스를 상당히 더 복잡한 많은 면에서,비동기(또는 clockless)디자인을 수행된 장점에서 전력 소모와 열 소산에서 비교와 유사한 동기 설계합니다. 다소 드문 일이지만 전체 비동기 Cpu 는 전역 클럭 신호를 사용하지 않고 구축되었습니다. 이 중 주목할만한 두 가지 예는 ARM 호환 부적과 mips r3000 호환 MiniMIPS 입니다.,

보다 완전히 제거하는 시계 신호,일부 CPU 디자인을 허용하는 특정 부분의 장치는 비동기와 같이 사용하는 비동기 ALUs 과 함께 superscalar 파이프라인을 달성 연산 성능을 향상시킬 수 있습니다. 는 동안 그것은 모두 여부를 명확히 비동기 설계 수행할 수 있는 비슷한 또는 더 나은 수준보다 그들의 동기의 대응,분명한 것은 그들이 적어도 엑셀에서 간단한 수학 작업입니다., 이는 우수한 전력 소비 및 방열 특성과 결합하여 임베디드 컴퓨터에 매우 적합합니다.

전압 레귤레이터 moduleEdit

주 제:전압 레귤레이터 모듈

많은 현대 Cpu 가 죽-통합 전력 관리 모듈을 조절하는 on-demand 전압 공급 CPU 회로도록 균형을 유지하기 위해 사 성능 및 소비전력.

정수 rangeEdit

모든 CPU 는 특정 방식으로 숫자 값을 나타냅니다., 예를 들어,일부 초기 디지털 컴퓨터에 표현된 숫자로 친숙한 소수점(기본 10)숫자 시스템 값,그리고 다른 사람을 고용했 더 많은 특이한 표현과 같은 원(base 세). 거의 모든 현대적인 Cpu 가 나타내는 숫자에 바이너리 형태로,서로 자리 표시되는 일부에 의해 두 개의-소중한 물리량과 같은”높음”또는”낮은”전압입니다.

십진수 값 40 의 이진 인코딩 표현을 포함하는 6 비트 워드. 대부분의 최신 Cpu 는 8,16,32 또는 64 비트와 같이 2 의 전력 인 단어 크기를 사용합니다.,

숫자 표현과 관련된 것은 CPU 가 나타낼 수있는 정수의 크기와 정밀도입니다. 의 경우에는 이진 CPU,이것은 측정하여 비트의 개수(상당한 자리 숫자의 바이너리 로 인코딩된 정수)CPU 처리할 수 있는 하나의 작업에서는 일반적으로 불리는 단어의 크기,비트 폭,데이터 경로가 너비,정수 정밀도,또는 정수 크기입니다. CPU 의 정수 크기는 직접 작동 할 수있는 정수 값의 범위를 결정합니다., 예를 들어,8 비트 CPU 는 256(28)이산 정수 값의 범위를 갖는 8 비트로 표현 된 정수를 직접 조작 할 수 있습니다.

정수 범위에도 영향을 미칠 수 있습 번호의 메모리 위치에 있는 직접 주소(주소 정수 값을 나타내는 특정 메모리 위치). 예를 들어 이진 CPU 가 32 비트를 사용하여 메모리 주소를 나타내는 경우 232 개의 메모리 위치를 직접 처리 할 수 있습니다. 이러한 문제를 피하기 위해 제한에 대한 다양한 다른 이유로 일부 Cpu 메커니즘을 사용하여(이러한 은행으로의 전환)할 수 있는 추가 메모리를 해결 될 수 있습니다.,

Cpu 더 큰 말씀 크기 더 필요한 회로와 결과적으로 육체적으로 더 크고,더 많은 비용과 많은 전력을 소모하고(그러므로 생성 더 많은 열). 그 결과,작은 4 또는 8 비트 마이크로컨트롤러에서 일반적으로 사용되는 응용 프로그램 현대에도 불구하는 Cpu 가 훨씬 더 큰 말씀 크기(예:16,32,64,심지어는 128 비트)를 사용할 수 있습니다. 할 때 높은 성능은 그러나 필요한 혜택의 더 큰 말씀 크기(큰 데이터 범위 및 주소 공간을)수 있습니다 큽니다 단점이 있습니다. CPU 는 크기와 비용을 줄이기 위해 단어 크기보다 짧은 내부 데이터 경로를 가질 수 있습니다., 예를 들어,도 IBM 시스템/360 명령어 집합이었 32 비트 명령어 세트,시스템/360 모델 30 모델 40 8-비트 데이터 경로에서 산술 논리 유닛 그래서 32 비트가 필요한 네 개의 주기,각각의 하나는 8 비트의 피연산자,그리고,비록은 모토로라 68000 시리즈의 명령어 집합이었 32 비트 명령어 설정,모토로라 68000,모토로라 68010 16-비트 데이터 경로에서 산술 논리 유닛 그래서 32 비트가 필요한 두 개의 주기입니다.,

의 일부를 얻기 위해 이점을 제공하여 모두 낮고 높은 비트 길이,많은 명령어 세트는 서로 다른 비트 너비 정수 및 부동 소수점 데이터 수 있도록,Cpu 를 구현하는 명령어 집합이 서로 다른 비트의 폭이 다양한 부분의 장치입니다. 예를 들어,IBM System/360 명령어 세트는 주로 32 비트 였지만 64 비트 부동 소수점 값을 지원하여 부동 소수점 숫자의 정확도와 범위를 높였습니다., 시스템/360 모델 65 에는 십진수 및 고정 소수점 이진 산술을위한 8 비트 가산기와 부동 소수점 산술을위한 60 비트 가산기가있었습니다. 많은 나중에 CPU 디자인을 사용하여 유사한 혼합 비트 폭,특히 때로 프로세서를 의미한 일반적인 사용이 적절한 균형을 유지의 정수이며 부동 소수점 기능이 필요합니다.,

ParallelismEdit

주 제:병렬 컴퓨팅

모델 subscalar CPU, 에서는 십계 사이클을 완료하는 세 개의 지침

이 설명의 기본적인 동작이 가능 제공 이전 섹션에서 설명하는 가장 간단한 형태로 CPU 를 취할 수 있습니다. 이 유형의 CPU,일반적으로 subscalar,운영하고 실행하는 하나의 명령에 하나 또는 두 개의 조각의 데이터에서 시간 보다 작은 하나의 명령을 클럭 주기(IPC<1)입니다.,

이 프로세스는 subscalar Cpu 의 고유 한 비효율을 야기합니다. 한 번에 하나의 명령어 만 실행되므로 다음 명령어로 진행하기 전에 전체 CPU 가 해당 명령어가 완료 될 때까지 기다려야합니다. 결과적으로 subscalar CPU 는 실행을 완료하는 데 두 개 이상의 클럭 사이클이 걸리는 명령어에”끊김”을 얻습니다. 네번째 장치(아래 참조)으로 성능이 향상되지 않습니다 많기보다는 하나 통로가 되는 걸까지,지금은 두 가지 경로가 끊고의 번호를 사용하지 않는 트랜지스터가 증가합니다., 이는 디자인에 있어서,상기 CPU”s 실행에 자원을 운영할 수 있는 단 하나의 명령에만 가능하게 도달은 스칼라 성능이(하나의 명령을 클럭 주기,IPC=1)입니다. 그러나 성능은 거의 항상 subscalar(이하 하나의 명령을 클럭 주기,IPC<1)입니다.

를 달성하는 것을 시도는 스칼라와 더 나은 성능에서 결과의 다양한 디자인 방법론을 일으키는 CPU 행동 하는 직선적으로 더 많은합니다., 를 언급할 때에서 병렬 Cpu 로,두 가지 조건은 일반적으로 분류하는 데 사용되는 이러한 디자인 기법:

  • 지시 수준의 병렬 처리(ILP),는 추구 속도를 높이기 위해서는 지침은 내에서 실행되면 CPU 는(즉,사용을 증가에서 죽는 실행 자료);
  • 작업 수준의 병렬 처리(TLP),는 목적으로 증가하는 스레드의 수 또는 프로세스는 CPU 를 실행할 수 있습니다.,

각 방법을 모두 다른 방법으로는 그들이 구현되는,뿐 아니라 상대적 효율성을 그들은 여유가 증가에 CPU”s 성능에 대한 응용 프로그램입니다.

교육 수준 parallelismEdit

주요 문서를 다음의 수준의 병렬

다섯 개의 기본적인 단계 파이프라인. 최상의 시나리오에서이 파이프 라인은 클록 사이클 당 하나의 명령어의 완료율을 유지할 수 있습니다.,

중 하나는 가장 간단한 방법을 사용하여 병렬 처리하는 첫 번째 단계를 시작하의 지시를 가져와 디코딩하기 전에 사전 지침의 실행이 완료되면. 이것은 명령 파이프 라이닝으로 알려진 기술 중 가장 간단한 형태이며 거의 모든 최신 범용 Cpu 에 사용됩니다. 파이프 라이닝을 사용하면 실행 경로를 이산 단계로 분해하여 주어진 시간에 둘 이상의 명령어를 실행할 수 있습니다., 이러한 분리를 비교할 수 있는 조립 라인에서 어떤 명령이 더 완벽 각 단계에서 종료될 때까지 실행 파이프라인과 은퇴했다.그러나

파이프 라이닝은 이전 작업의 결과가 다음 작업을 완료하는 데 필요한 상황에 대한 가능성을 도입합니다. 이에 대처하기 위해 추가 주의를 기울여야 합 확인에 대한 이러한 종류의 조건을 지연의 일부 지침은 파이프라인 경우 이 발생합니다., 당연히이를 달성하려면 추가 회로가 필요하므로 파이프 라인 프로세서는 서브 스칼라 프로세서보다 복잡합니다(그다지 크지는 않지만). 파이프라인 프로세서가 될 수 있는 거 스칼라 저해만으로 파이프라인 포장 마차(명령보다 더 많이 지출 하나의 클럭 주기 단계에서).

간단한 superscalar 파이프라인. 한 번에 두 개의 명령어를 가져 와서 디스패치하면 클록 사이클 당 최대 두 개의 명령어를 완료 할 수 있습니다.,

더 개선 아이디어에 따라 명령의 파이프라인의 개발을 주도하는 방법을 줄이는 유휴 시간의 CPU 구성 요소를 더욱. 디자인했다 superscalar 함을 오래 지시 파이프라인과 여러 개의 동일한 실행 단위와 같은 로드-저장 장치,산술 논리 유닛,부동 소수점 단위 및 주소 생성 단위입니다. 에 superscalar 파이프라인,여러 개의 지침은 읽기 및 전달을 발송자는지 여부를 결정 또는 지침을 수 있는 병렬로 실행(동시에)., 그렇다면 그들은 여러 명령어가 동시에 실행될 수있는 능력의 결과로 사용 가능한 실행 단위에 파견됩니다. 에서 일반적으로 더 많은 지침을 superscalar CPU 할 수 있을 동시에 파견을 기다리는 실행 단위로 더 많은 지침에 완료 될 것이 주어진 주기입니다.

superscalar CPU 아키텍처 설계의 대부분의 어려움은 효과적인 디스패처를 만드는 데 있습니다., 발송자는 필요할 수 있는 신속하고 정확하게 여부를 확인 지침을 수 있는 병렬로 실행되는,뿐만 아니라 파견들과 같은 방법으로 유지하기 위해 많은 실행 단위로 바쁜 가능합니다. 이 필요로 하는 명령어는 파이프라인으로 가득 가능한 한 자주고 상승을 제공해야에서 superscalar 아키텍처에 대한 상당한 양의 CPU cache. 그것은 또한 위험을 피하는 기술과 같은 분기 예측,투기,실행 등록 이름 바꾸기,순서 실행 및 트랜잭션 메모리를 유지하는 데 매우 중요하다 높은 수준의 성능이다., 예를 들어지점(또는 경로)에 조건부 명령을 취할 것,CPU 을 최소화할 수 있습니다 횟수는 전체 파이프라인까지 기다려야 하는 조건부 교육이 완료됩니다. 투행 종종 제공하는 겸손한 성능을 증가해서 실행하는 부분의 코드는 필요하지 않을 수도 있 후에 조건적인 작업이 완료됩니다. 순서가 맞지 않는 실행은 데이터 종속성으로 인한 지연을 줄이기 위해 명령어가 실행되는 순서를 다소 재 배열합니다., 또한 경우에는 단일의 지시 스트림을 다중 데이터 스트림 경우 많은 동일한에서 데이터의 유형은 처리,현대적 프로세서용 부품의 파이프라인 때 그렇게 하나의 명령은 실행되는 많은 시간,CPU 건너뛰 가져올 및 디코딩 단계에 따라서 크게 증가하는 성과에 어느 경우에서,특히 높은 단조로운 프로그램으로 엔진과 같은 비디오 생성 소프트웨어 사진 처리합니다.,

CPU 의 일부가 superscalar 이고 일부가 아닌 경우,그렇지 않은 부분은 스케줄링 노점으로 인해 성능 패널티를 겪습니다. Intel P5 펜티엄 두 superscalar ALUs 는 받아들일 수 있는 하나의 명령을 클럭 주기 각지만,그 FPU 을 받아들일 수 없었 하나의 명령을 클럭 주기입니다. 따라서 P5 는 정수 superscalar 였지만 부동 소수점 superscalar 는 아닙니다. P5 아키텍처 인 p6 의 후계자 인 Intel 은 부동 소수점 기능에 superscalar 능력을 추가 했으므로 부동 소수점 명령어 성능이 크게 향상되었습니다.,

모두 간단한 파이프라인 및 superscalar 디자인 증가 CPU”s ILP 허용해서 단일 프로세서 실행을 완료합 지침에 따라 요금을 능가하는 하나의 명령을 클럭 주기입니다. 대부분의 최신 CPU 설계는 적어도 다소 superscalar 이며,지난 10 년 동안 설계된 거의 모든 범용 Cpu 는 superscalar 입니다. 이후 몇 년 동안 높은 ILP 컴퓨터 설계에 중점 중 일부는 CPU 의 하드웨어에서 소프트웨어 인터페이스 또는 명령어 세트 아키텍처(ISA)로 이동되었습니다., 의 전략은 아주 오래 지시어(VLIW)는 몇 가지 원 ILP 가는 묵시적 의해 직접 소프트웨어,양을 감소시키는 작업의 CPU 수행해야 합니다 높일 ILP 고함으로써 디자인”s 복잡합니다.

작업 수준 parallelismEdit

주요 기사:다중 스레딩 및 멀티 코어 프로세서

의 또 다른 전략을 달성하는 성능이 실행하는 다중 쓰레드 프로세스에 병행합니다. 이 연구 영역은 병렬 컴퓨팅으로 알려져 있습니다. Flynn 의 분류법에서이 전략은 mimd(multiple instruction stream)인 multiple data stream 이라고합니다.,

이 목적을 위해 사용 된 하나의 기술은 다중 처리(MP)였다. 이 기술의 초기 풍미는 smp(symmetric multiprocessing)로 알려져 있으며,소수의 Cpu 가 메모리 시스템에 대한 일관된 시각을 공유합니다. 이 구성표에서 각 CPU 에는 지속적으로 최신 메모리보기를 유지하기 위해 추가 하드웨어가 있습니다. 메모리의 오래된 뷰를 피함으로써 Cpu 는 동일한 프로그램에서 협력 할 수 있으며 프로그램은 한 CPU 에서 다른 CPU 로 마이그레이션 할 수 있습니다., 의 수를 증가시키는 협력 Cpu 넘어 소수,방식 등으로 비 균일한 메모리에 액세스(NUMA)과 디렉터리 기반의 일관성 프로토콜에서 소개되었으로 1990 년대. SMP 시스템은 제한된 소수의 Cpu 가 있는 동안 NUMA 시스템으로 건축되었습의 수천 프로세서를 지원합니다. 처음에는 여러 개의 개별 Cpu 와 보드를 사용하여 멀티 프로세싱을 구축하여 프로세서 간의 상호 연결을 구현했습니다., 면 프로세서와 그들의 상호 연결하는 모든 구현에 하나의 칩으로,기술로 알려져 있 칩 수준의 최적화를 하는 c 컴파일러(CMP)고 하나의 칩으로 멀티 코어 프로세서입니다.

더 미세한 입자 병렬 처리가 단일 프로그램으로 존재한다는 것이 나중에 인식되었다. 단일 프로그램에는 별도로 또는 병렬로 실행될 수있는 여러 스레드(또는 함수)가있을 수 있습니다. 의 일부는 가장 이른 예로는 이 기술의 구현 입력/출력 처리와 같은 직접 메모리 접근으로 별도의 스레드가 계산에서 스레드가 있습니다., 좀 더 일반적인 접근 방식이 기술을 소개되었는 1970 년대에 시스템을 실행하도록 설계되었 여러 스레드가 계산합니다. 이 기술은 멀티 스레딩(mt)으로 알려져 있습니다. 이 방법은 간주보다 더 비용 효율적인 최적화를 하는 c 컴파일러,으로 작은 구성 요소의 개수에서 CPU 이에 복제지원 MT 반대로 전체 CPU 의 경우에는 MP. MT 에서,실행 유닛 및 캐시를 포함하는 메모리 시스템은 다수의 스레드들 사이에서 공유된다., 의 단점 MT 는 하드웨어에 대한 지원 멀티 스레딩을 더 보이는 소프트웨어는 MP 고,따라서 관리자 소프트웨어를 운영 체제를 받아야 큰 변경 사항을 지원 MT. 한 유형의 MT 가 구현되었으로 알려진 시간 다중 스레딩을,어디 하나의 스레드가 실행될 때까지 그것은 정체를 기다리고 데이터를 반환 외부로부터 메모리. 이 제도에서,CPU 다음 빠르게 컨텍스트 스위치되는 또 다른 스레드를 실행할 준비가 된 것입,스위치는 종종에서 하나의 CPU 클럭 사이클과 같은 UltraSPARC T1., Mt 의 또 다른 유형은 하나의 CPU 클록 사이클 내에서 여러 스레드의 명령어가 병렬로 실행되는 동시 멀티 스레딩입니다.

에 대한 여러 가지 수십 년에서 1970 년대 2000 년대 초반에 초점을 설계하 고 성능이 일반적인 목적의 Cpu 가 있었기에 달성 높은 ILP 를 통해 기술과 같은 파이프라인,캐시,superscalar 실행 순서 실행,etc. 이러한 추세는 Intel Pentium4 와 같이 전력 소모가 큰 Cpu 에서 절정에 달했습니다., 에 의해 2000 년대 초반,CPU 디자이너들은 좌절을 달성에서 더 높은 성능에서 ILP 기술로 인해 성장 격차를 사 CPU 동작 주파수 및 메인 메모리의 동작 주파수뿐만 아니라 확대 CPU 전력 분산으로 인하여 더 많은 비전 ILP 기술입니다.

CPU 디자이너는 다음을 빌리는 아이디어에서 상업적 계산 시장 등과 같은 트랜잭션 처리,어디로 집계하의 성능을 여러 프로그램으로도 알려진 처리량을 컴퓨팅,더 중요하의 성능보다는 하나의 스레드 또는 과정입니다.,

이 반전을 강조한 입증의 확산에 이중과 더 코어 프로세서를 디자인하고 특히,인텔”s 새로운 디자인을 닮은 그것의 더 적은 superscalar P6 공합니다. 늦은 디자인에서 여러 프로세서 가족들이 전시 CMP 포함하여,x86-64Opteron 및 Athlon64X2,SPARC UltraSPARC T1,IBM4 고 POWER5 뿐만 아니라,여러 가지 비디오 게임 콘솔 Cpu 가 다음과 같 Xbox360″s 트리플 핵심을 파워 디자인,PlayStation3″s7-core 셀 마이크로프로세서로 가능합니다.,

데이터 parallelismEdit

주요 기사:벡터 프로세서 및 SIMD

적은 일반적이지만 점점 더 중요한 패러다임의 프로세서로(그리고 실제로,컴퓨팅의 일반적으로)와 거래하는 데이터 병렬성을 구할 수 있다. 앞에서 설명한 프로세서는 모두 일부 유형의 스칼라 장치라고합니다. 이름에서 알 수 있듯이,벡터 프로세서에서 다루는 여러 개의 데이터의 컨텍스트에서 하나의 명령입니다. 이것은 모든 명령어에 대해 하나의 데이터를 처리하는 스칼라 프로세서와 대조됩니다., 를 사용하여 플린”s 분류,이러한 두 가지 체계를 다루는 데이터는 일반적으로 단일 명령 stream,여러 데이터 스트림(SIMD)와의 단일 명령 stream,하나의 데이터 스트림(SISD),각각합니다. 훌륭한 유틸리티를 만드는 프로세서를 처리하는 벡터의 데이터 거짓말을 최적화하는 작업이 요구하는 경향이있는 동일한 동작(예를 들어,합계 또는 점는 제품)를 수행에 대량의 데이터입니다. 일부 대표적인 예이 이러한 유형의 작업을 포함하는 멀티미디어 응용 프로그램(이미지,영상과 소리),뿐만 아니라 많은 형태의 과학 및 엔지니어링 작업입니다., 반면 스칼라 프로세서를 완료해야의 전체 프로세스를 가져오,디코딩 및 실행 각 명령과 가치에서,데이터 세트를 벡터로 프로세서 수행할 수 있는 하나의 작업에서 비교적 큰의 설정과 데이터를 하나의 명령입니다. 이는 응용 프로그램이 큰 데이터 세트에 하나의 작업을 적용하는 많은 단계를 요구하는 경향이있는 경우에만 가능합니다.

Cray-1 과 같은 대부분의 초기 벡터 프로세서는 거의 독점적으로 과학 연구 및 암호화 응용 프로그램과 관련되어있었습니다., 그러나 멀티미디어가 디지털 미디어로 크게 이동함에 따라 범용 프로세서에서 SIMD 의 일부 형태에 대한 필요성이 커졌습니다. 직후의 포함은 부동 소수점 단위되기 시작하는 평범한 일반적 목적의 프로세서에 대 한 사양과 구현의 SIMD 실행위도 나타나기 시작한 일반적인 프로세서를 지원합니다. HP 의 멀티미디어 가속 확장(Max)및 Intel 의 MMX 와 같은 초기 SIMD 사양 중 일부는 정수 전용이었습니다., 이를 입증하는 중요한 장애물이 어떤 소프트웨어 개발자,이후 많은 혜택을 누릴 수 있는 애플리케이션 SIMD 주격으로 부동 소수점 숫자입니다. 점차적으로,개발자,세련된 리메이크 이러한 초기의 디자인으로 일반적인 현대 SIMD 사양은 일반적으로 관련된 하나의 instruction set architecture(ISA). 몇 가지 주목할만한 현대적인 예로는 Intel 의 Sse(Streaming SIMD Extensions)및 PowerPC 관련 AltiVec(VMX 라고도 함)이 있습니다.피>


답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다