5.14.1. FPSCR, 부동 소수점 상태 및 제어 레지스터

FPSCR에는 모든 사용자 수준 NEON 및 VFP 상태 및 제어 비트가 포함되어 있습니다. NEON은 비트[31:27]만 사용합니다. 이 비트는 다음과 같이 사용됩니다.

비트[31:28]

N, Z, C 및 V 플래그로, NEON 및 VFP의 상태를 나타냅니다. 이러한 플래그는 CPSR의 상태 플래그에 복사될 때까지 조건부 실행을 제어하는 데 사용할 수 없습니다 (조건 코드 참조).

비트[27]

QC, 누적 포화 플래그로, NEON 포화 명령어에서 포화가 발생할 경우 설정됩니다.

비트[25]

DN (기본 NaN) 모드 제어 비트입니다.

0

비활성화됩니다. NaN 피연산자는 부동 소수점 연산 출력으로 전달됩니다.

1

활성화됩니다. 하나 이상의 NaN이 포함된 모든 연산은 기본 NaN으로 반환됩니다.

Note

NEON은 이 비트에 관계없이 항상 기본 NaN이 활성화된 설정을 사용합니다.

비트[24]

0으로 플러시 모드 제어 비트입니다.

0

0으로 플러시 모드가 해제됩니다.

1

0으로 플러시 모드가 설정됩니다.

0으로 플러시 모드에서는 범위를 줄이면 하드웨어와 소프트웨어에 따라 성능이 향상될 수 있습니다 (0으로 플러시 모드 참조).

Note

NEON은 이 비트에 관계없이 항상 0으로 플러시 모드를 사용합니다.

IEEE 754와의 호환성이 필요한 경우 0으로 플러시 모드를 사용하면 안 됩니다.

비트[23:22]

다음과 같이 반올림 모드를 제어합니다.

0b00

가장 가까운 수로 반올림 (RN) 모드

0b01

양의 무한대로 반올림 (RP) 모드

0b10

음의 무한대로 반올림 (RM) 모드

0b11

0으로 반올림 (RZ) 모드

Note

NEON은 이 비트에 관계없이 항상 가장 가까운 수로 반올림 모드를 사용합니다.

비트[21:20]

STRIDE는 벡터에 연속해서 있는 값 간의 거리입니다 (벡터 참조). 스트라이드는 다음과 같이 제어됩니다.

0b00

STRIDE = 1

0b11

STRIDE = 2

비트[18:16]

LEN은 각 벡터에서 사용되는 레지스터 수입니다 (벡터 참조). 1 + 비트[18:16] 값은 다음과 같습니다.

0b000

LEN = 1

...

0b111

LEN = 8

비트[15, 12:8]

예외 트랩 활성화 비트입니다.

IDE

비정규 입력 예외 활성화

IXE

정확하지 않은 예외 활성화

UFE

언더플로 예외 활성화

OFE

오버플로 예외 활성화

DZE

0으로 나누기 예외 활성화

IOE

잘못된 연산 예외 활성화

이 설명서에서는 부동 소수점 예외 트랩의 사용에 대해 설명하지 않습니다. 자세한 내용은 사용 중인 VFP 보조 프로세서의 기술 참조 설명서를 참조하십시오.

비트[7, 4:0]

누적 예외 비트는 다음과 같습니다.

IDC

비정규 입력 예외

IXC

정확하지 않은 예외

UFC

언더플로 예외

OFC

오버플로 예외

DZC

0으로 나누기 예외

IOC

잘못된 연산 예외

해당 예외가 발생하면 누적 예외 비트가 설정됩니다. 누적 예외 비트는 사용자가 FPSCR에 직접 기록하여 지울 때까지 설정된 상태로 있습니다.

다른 모든 비트

기본 NEON 및 VFP 사양에서는 사용되지 않지만 특정 구현에서는 사용될 수 있습니다. 자세한 내용은 사용 중인 VFP 보조 프로세서의 기술 참조 설명서를 참조하십시오. 특정 구현에서 사용될 경우를 제외하고 이러한 비트를 수정하면 안 됩니다.

다른 비트에 영향을 주지 않고 원하는 비트만 변경하려면 읽기-수정-쓰기 프로시저를 사용하십시오 (NEON 및 VFP 시스템 레지스터의 개별 비트 수정 참조).

Note

벡터 모드 사용이 제공되지 않습니다. LENSTRIDE를 1로 설정하십시오.

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential