매버릭크런치

MaverickCrunch

MaverickCrunch는 디지털 오디오를 위한 부동 소수 연산 코프로세서 코어이다.2000년[1] 6월 Cirrus Logic이 200MHz EP9302 EP9307 EP9312 및 EP9315 System-on-Chip 통합 회로에 ARM920T 정수 프로세서와 함께 처음 선보였다.하드웨어 버그와 부족한 컴파일러 지원으로 인해, 이러한 칩을 기반으로 하는 어떤 장치에서도 거의 사용되지 않았고 2008년 4월 1일에 제품 라인이 단종되었다.

MaverickCrunch FPU를 포함하는 Cirrus Logic EP9315 칩

특징들

코프로세서에는 32비트 또는 64비트 정수 및 부동소수점 연산에 사용할 수 있는 16개의 64비트 레지스터가 있으며 부동소수점 형식은 IEEE-754 표준에 기초한다.부동소수점 가산, 뺄셈, 곱셈, 부정, 절대값, 비교는 물론 정수에 대한 덧셈, 곱셈, 비트 이동을 수행하는 자체 명령 집합이 있다.또한 32비트의 곱셈과 축적의 명령과 상태 레지스터를 수행할 수 있는 네 개의 72비트 레지스터를 가지고 있으며, 정수와 부동소수점 값 사이의 변환과 ARM 레지스터 또는 메모리 간에 데이터를 이동시키는 명령도 가지고 있다.

그것은 메인 프로세서와 병렬로 작동하며, 두 프로세서는 단일 32비트 명령 스트림에서 지시를 받는다.따라서 이를 효율적으로 사용하기 위해서는 두 프로세서를 모두 사용 가능하도록 정수 및 부동 소수점 지시사항을 인터리브해야 한다.

하드웨어 버그

EP93xx 실리콘은 "D0"과 "D1"/"E0"/"E1"과 "E2"의 5가지 버전이 발행되었는데, 최악의 버그를 고치기 위해 D0과 D1 사이의 MaverickCrunch 코어에 대한 주요 개정판이 있었다.모두 12개 이상의 하드웨어 버그를 가지고 있는데, 이 버그는 특정 순서에 따라 명령을 실행할 때 부정확하거나 가비지 결과 또는 클로버 레지스터나 메모리를 제공한다.

컴파일러 지원

2003년에 Red Hat/Cygnus Solutions에 의해 GNU 컴파일러 컬렉션에 패치가 제출되어 코드 생성기를 포함시키고, 결함 문제를 해결하기 위한 플래그가 완성되었다.불행하게도 이것들은 충분히 잘 작동되지 않아서 그것이 사용 가능하지 않다.GCC 4.8(2012년 9월)에 의해 제거되었다.[2]

이 작업을 수정하기 위한 몇 가지 시도가 있었다.

  • Cirrus Logic의 크런치 도구, 불가리아의 Nucleys에 의해 수정된 GNU 도구의 재포장(또는 나중에 RedHat에 의해 제출된 작업을 수행한 것은 그들이었는가?)
  • 오픈 임베디드용으로 패키지된 gcc 4.1.2 및 4.2.0용 미래 패치
  • 마틴 가이(Martin Guy)의 gcc 크런치 패치와 네이티브 컴파일러(native compiler)는 신뢰할 수 있는 코드를 생성하고 모든 테스트사이트를 통과한 후타리스 패치의 개발이다.

참조

  1. ^ 클라스, 제프"매버릭 EP9312 도입" 2009-03-03에 검색됨.2000년 6월 13일 캘리포니아 주 산호세의 임베디드 프로세서 포럼에서 소개된 웨이백 머신보관된 2009-12-31.
  2. ^ GCC 메일링 리스트의 Richard Earnshaw, FPA 및 Crunch 지원 제거

외부 링크