비 VLIW ISA에서도 첫 번째 명령이 반드시 "순차적으로 실행"되는 것은 아니며 실행은 순차적으로 만 나타나야합니다. 순차적 슈퍼 스칼라 구현은 하나 이상의 명령어를 다른 명령어와 동시에 실행할 수 있습니다. 이를 효과적으로 수행하려면 명령어 디코딩을위한 하드웨어를 늘리고 (확장), 명령어의 데이터 독립성을 병렬로 실행하고, 실행 리소스를 늘려야하며, 레지스터 파일 포트 수가 일반적으로 증가하도록 하드웨어를 추가해야합니다. 이들 모두 트랜지스터를 추가합니다.
비 순차적 구현은 데이터 종속성이없는 한 이후의 명령을 이전 명령보다 먼저 실행할 수 있도록하며, 추가 하드웨어를 사용하여 데이터를 사용할 수있는 즉시 명령 일정을 처리하고 매핑에 이름 바꾸기 레지스터 및 하드웨어를 추가합니다. 읽기 후 쓰기 및 쓰기 후 쓰기 위험을 피하기 위해 이들을 할당하고 해제합니다 (더 많은 트랜지스터). 비 순차적 실행은 프로세서가 정지되지 않도록합니다.
비 순차적 프로세서에서로드 및 저장 순서를 다시 정렬하려면 프로그램 순서의 초기에 상점이 동일한 주소의 이후로드로 결과를 전달해야합니다. 이는 저장소가 메모리 (캐시)에 커밋 될 때까지 저장소의 주소 (및 크기) 저장소 (및 데이터 저장소)와 주소 비교 논리를 의미합니다. (메모리 일관성 모델이 약한 ISA의 경우 다른 프로세서, 더 많은 트랜지스터의 저장소와 관련하여로드가 올바르게 정렬되어 있는지 확인해야합니다.)
파이프 라이닝은 추가적인 제어 및 버퍼링 오버 헤드를 추가하고 명령 처리의 다른 부분에 대한 논리 재사용을 방지하지만 명령 처리의 다른 부분이 다른 명령에 대해 시간이 겹치는 것을 허용합니다.
파이프 라이닝 및 슈퍼 스칼라 실행은 제어 위험 (예 : 조건부 분기 및 점프)의 영향을 증가시킵니다. 파이프 라이닝 (및 비 순차적 실행)은 무조건적인 점프에서도 대상의 가용성을 지연시킬 수 있으므로, 대상 (및 조건부 분기의 방향)을 예측하기위한 하드웨어를 추가하면 명령의 페치가 필요한 데이터를 사용할 수 있도록 프로세서. 보다 정확한 예측 변수에는 더 많은 트랜지스터가 필요합니다.
비 순차적 프로세서의 경우, 모든 이전 저장소의 주소가 계산되기 전에 메모리에서로드가 실행되도록하는 것이 바람직 할 수 있으므로, 예측을 포함하여 이러한 추론을 처리하기위한 일부 하드웨어가 필요합니다.
캐시는 대기 시간을 줄이고 메모리 액세스 대역폭을 증가시킬 수 있지만 데이터를 저장하고 태그를 저장하기 위해 트랜지스터를 추가합니다 (및 요청 된 주소와 태그를 비교). 교체 정책을 구현하려면 추가 하드웨어도 필요합니다. 하드웨어 프리 페칭은 더 많은 트랜지스터를 추가합니다.
소프트웨어가 아닌 하드웨어에서 기능을 구현하면 성능이 향상 될 수 있습니다 (트랜지스터가 더 필요함). 예를 들어 TLB 관리, 곱셈 또는 부동 소수점 연산과 같은 복잡한 연산, 선행 0과 같은 특수 연산. (명령을 추가하면 명령 디코딩의 복잡성과 일반적으로 실행의 복잡성이 증가합니다 (예 : 실행 하드웨어의 어떤 부분을 사용할지 제어).)
SIMD / 벡터 작업은 명령 당 수행되는 작업량을 늘리지 만 더 많은 데이터 저장소 (더 넓은 레지스터)를 필요로하며 일반적으로 더 많은 실행 리소스를 사용합니다.
(추론적인 멀티 스레딩은 또한 여러 프로세서가 단일 스레드 프로그램을 더 빠르게 실행할 수있게합니다. 분명히 칩에 프로세서를 추가하면 트랜지스터 수가 증가합니다.)
더 많은 트랜지스터를 사용할 수있게되면 컴퓨터 아키텍트는 소프트웨어에 더 많은 레지스터를 볼 수있는 ISA를 제공 할 수 있으며, 레지스터 액세스보다 속도가 느리고 어느 정도의 간접적 인 (예 : 스택에 오프셋 추가) 메모리 액세스 빈도를 줄일 수 있습니다 대기 시간이 증가합니다.
칩이 아닌 시스템의 칩 수를 늘리는 통합 기능은 통신 대기 시간을 줄이고 대역폭을 증가시켜 성능을 향상시킵니다. (또한 전력 소비가 감소하여 성능이 향상 될 수 있습니다.)
명령 실행 수준에서도 트랜지스터를 추가하면 성능이 향상 될 수 있습니다. 예를 들어, 캐리 선택 가산기는 하위 비트에서 캐리의 다른 가정과 병행하여 상위 비트를 두 번 병렬로 추가하여 하위 비트에서 캐리가 가능할 때 상위 비트의 정확한 합을 선택하여 명백히 단순한 것보다 더 많은 트랜지스터를 필요로한다 리플 캐리 가산기이지만 전체 합 생성 지연을 줄입니다. 마찬가지로, 한 줄의 캐리-세이브 가산기가있는 멀티 플라이어는 Dadda (또는 Wallace) 트리 멀티 플라이어보다 더 적은 수의 트랜지스터를 사용하지만 속도가 느리므로 파이프 라인 할 수 없습니다 (따라서 다른 멀티플라이가 더 빠른 동안 실행을 시작할 수 있도록 복제해야 함) 곱하기 진행 중).
위의 내용은 소진 될 수 있지만 전체가 아닙니다!