프로세서 보조 기능

Processor supplementary capability


프로세서 보조 기능은 설계가 시장에 처음 도입된 후 기존 중앙처리장치(CPU) 설계에 추가된 기능이다.

보조 기능은 프로세서 설계의 유용성을 증가시켜 경쟁사와 보다 유리하게 경쟁할 수 있고 소비자에게 업그레이드의 이유를 제공하는 동시에 원래 설계와 역호환성을 유지한다.

CPU 보조 명령 기능은 대개 8비트 또는 16비트 CPU에 적용되지 않는데, 이러한 CPU 중 많은 CPU가 마이크로컨트롤러로 사용되기 때문이다.최신 32비트 및 64비트 CPU에서 프로세서 보조 기능은 기본적인 핵심 기능으로 간주되므로 FPU(Floating Point Unit) 또는 MMU(Memory Management Unit)로 확장되지 않는다.그러나 MMU와 FPU의 핵심 기능에 대한 확장은 CPU 확장으로 간주될 수 있다.

역사적 추리

보충 지침 기능은 항상 CPU 제품군의 모든 CPU에 걸쳐 의무적이지 않은 고정된 명령 집합을 의미하는 것으로 가정되어 왔다.추가 지침은 해당 제품군 내의 모든 프로세서에서 찾을 수 없다.[1]CPU의 보조 기능을 사용하고자 하는 프로그래머는 몇 가지 선택사항에 직면하게 된다.

보조 명령 프로그래밍 옵션

  • 운영 체제(커널)와 시스템 프로그래머(프로그램)는 시스템 소프트웨어가 해당 기능을 의무적으로 사용하도록 설계할 수 있으며, 따라서 해당 기능이 있는 최신 프로세서에서만 실행될 수 있다.
  • 반면에 시스템 프로그래머는 기존 소프트웨어 라이브러리를 작성하거나 사용하여 실행 중인 프로세서에 특정 기능(또는 명령어 집합)이 있는지 여부를 결정할 수 있다.

필요한 지침이 없을 경우(대개 느리거나 덜 바람직하지 않은) 대체 기법으로 후퇴할 수 있고 그렇지 않으면 프로그램이 기능성을 감소시키도록 설정할 수 있다.

  • 다른 경우에, 운영 체제는 종종 성능이 저하되지만 구형 프로세서에 대한 새로운 기능을 모방할 수 있다.

최저 공통분모 전략을 사용함으로써(프로세서 보조 기능의 사용을 피함) 프로그램은 동일한 아키텍처의 모든 기계에 걸쳐 휴대할 수 있다.[2]

영향을 받는 CPU 제품군

x86, 68000MIPS와 같은 일부 인기 프로세서 아키텍처는 수 세대에 걸친 설계에 걸쳐 많은 새로운 기능이 도입되었다.

이러한 기능 중 일부는 프로그래머에 의해 광범위하게 채택되어 소비자 업그레이드에 박차를 가하고 이전 세대의 프로세서를 쓸모없게 만들었다.

x86 기능 플래그

VME 가상 8086 모드 향상
DE 확장 디버깅
PSE 페이지 크기 확장
TSC 타임스탬프 카운터
MSR RDMSR 및 WRMSR 지원
PAE 물리적 주소 확장
MCE 컴퓨터 검사 예외
CXS CMPXCHG8B 지침(Double Compare-and-swapTransactional Syncryption Extensions 참조)
에이픽 APIC on Chip(APIC 참조)
MTRR 메모리 유형 범위 레지스터
PGE PTE 전역 비트(페이지참조)
MCA 머신 체크 아키텍처
CMOV 조건부 이동 및 비교 지침(FCMOV 참조)

플래그에 표시되지 않는 보조 기능

포함(전체 목록이 아님):

프로세서 보조 지침

프로세서 보조 지침은 제품군 내의 특정 프로세서에 구현되었지만 특정 제품군 내의 모든 프로세서에는 존재하지 않는 지시사항이다.

IA-32

다음 지침은 IA-32 아키텍처에 대한 프로세서 보조 지침으로 간주된다.이러한 지침은 이후 생산 프로세서에 추가되었으며 원래의 IA-32 명령 집합에 포함되지 않는다.이러한 지침을 포함하는 프로그램은 IA-32 제품군의 모든 기계에서 올바르게 작동하지 않을 수 있다.

bswap 바이트 스왑
cmov 조건부 이동
cmova
cmovae
cmovb
cmovbe.
cmovc
cmove
cmovg
cmovge
cmovl
cmovle
cmovna
cmovnae
cmovnb.
cmovnbe.
cmovnc
cmovng
cmovnge
cmovnl
cmovnle
cmovno.
cmovnp
cmovns
cmovnz
cmovo
cmovp
cmovpe
cmovpo
cmovs
cmovz
물렁물렁한
fcmov 부동 소수 조건부 이동
에코미
노플의
rdpmc 읽기 성능 모니터 수
rdtsc. 타임스탬프 카운터를 읽다
syscall
sysenter
sysecxit
sysret
ud2 소프트웨어 테스트만을 위한 정의되지 않은 지침
엑스세이브 프로세서 확장 상태 저장
xrstor 프로세서 확장 상태 복원

FPU 및 MMU 기능

FPU(Floating Point Unit) 연산 공동 처리 기능은 80486DX 시리즈 이후 모든 x86 프로세서에서 사용할 수 있다.FPU 및 MMU 명령 집합(x86 제품군)은 핵심 CPU 기능에 중요하기 때문에 도입 이후 보충 지침으로 간주되지 않았다.

참고 항목

참조