프로젝트 덴버(Project Denver)는 엔비디아가 설계한 중앙 처리 장치의 코드명으로, 단순한 하드웨어 디코더와 소프트웨어 기반 이진 변환 (동적 재컴파일)의 조합을 사용하여 ARMv8-A64/32비트명령어 집합을 구현한다. "덴버의 이진 변환 레이어는 운영 체제보다 낮은 수준의 소프트웨어에서 실행되며, 일반적으로 접근되고 이미 최적화된 코드 시퀀스를 주 메모리에 저장된 128MB 캐시에 저장한다."[2] 덴버는 매우 넓은 인오더 슈퍼스칼라 파이프라인이다. 이 설계는 다른 SIP 코어(예: GPU, 디스플레이 컨트롤러, DSP, 이미지 프로세서 등)와 통합되어 하나의 다이에 시스템 온 칩(SoC)을 구성하는 데 적합하다.
프로젝트 덴버는 모바일 컴퓨터, 개인용 컴퓨터, 서버, 그리고 슈퍼컴퓨터를 대상으로 한다.[3] 해당 코어는 엔비디아의 테그라 SoC 시리즈에 통합되었다. 초기 덴버 코어는 28 nm 공정 노드(테그라 모델 T132, 일명 "테그라 K1")용으로 설계되었다. 덴버 2는 더 작고 효율적인 16 nm 노드용으로 제작된 개선된 디자인이다. (테그라 모델 T186, 일명 "테그라 X2").
2018년, 엔비디아는 ARMv8 (64비트; 변형: ARM-v8.2[4] (10방향 슈퍼스칼라, 기능 안전성, 이중 실행, 패리티 및 ECC 포함)에 기반한 개선된 디자인(코드명: "카멜")을 테그라 자비에르 SoC에 통합하여 총 8개의 코어(또는 4개의 듀얼 코어 쌍)를 제공한다.[5] 카멜 CPU 코어는 완전한 Advanced SIMD (ARM NEON), VFP (Vector Floating Point) 및 ARMv8.2-FP16을 지원한다.[6] 카멜 코어가 통합된 젯슨 AGX 개발 키트의 첫 번째 외부 전문가 테스트는 2018년 9월에 이루어졌으며, 테스트 설정의 일반적인 속도와 특히 관련된 모든 의심에도 불구하고 이전 시스템에 비해 현저히 향상된 성능을 보여주었다.[7] 카멜 디자인은 12nm 구조 크기로 설계된 테그라 모델 T194 ("테그라 자비에르")에서 찾을 수 있다.
ARM 코드는 하드웨어 번역기 또는 소프트웨어 에뮬레이션을 통해 프로젝트 덴버의 내부 명령어 집합으로 번역된다. 소프트웨어 에뮬레이션이 사용되는 경우 ARM 명령어는 재정렬되거나, 최종 결과에 기여하지 않으면 제거되거나, 다른 방식으로 최적화될 수 있다.[2]
칩
멀티 코어 덴버 CPU는 케플러 기반 GPU 솔루션과 결합되어 테그라 K1을 형성했다. 듀얼 코어 2.3 GHz 덴버 기반 K1은 2014년 11월 3일 출시된 HTC 넥서스 9 태블릿에 처음 사용되었다.[10][11] 그러나 쿼드 코어 테그라 K1은 동일한 이름을 사용하더라도 덴버 기반이 아니다.
엔비디아 테그라 X2는 두 개의 덴버2 (ARMv8 64비트) 코어와 네 개의 A57 (ARMv8 64비트) 코어를 일관된 HMP(이종 멀티프로세서 아키텍처) 방식으로 사용한다.[12] 이는 파커 GPU와 장치를 짝짓는다.
테그라 자비에르는 엔비디아 볼타 GPU와 여러 특수 목적 가속기를 카멜 디자인의 8개 CPU 코어와 짝지어 사용한다. 이 디자인에서 4개의 카멜 ASIC 매크로 블록(각각 2개의 코어 포함)은 하나의 크로스바와 4 MiB의 L3 메모리와 서로 연결된다.
역사
프로젝트 덴버의 존재는 2011년 소비자 가전 전시회에서 공개되었다.[13] 2011년 3월 4일 Q&A 기사에서 젠슨 황 CEO는 프로젝트 덴버가 수백 명의 엔지니어들이 이미 3년 반 동안 작업한 5년짜리 64비트ARMv8-ACPU 개발이며 32비트ARM 명령어 집합 (ARMv7) 하위 호환성도 갖추고 있다고 밝혔다.[14] 프로젝트 덴버는 트랜스메타의 프로젝트와 유사하게 이진 변환을 사용하는 X86 호환 프로세서로 스테이사 회사(콜로라도)에서 시작되었다. 스테이사는 2006년 엔비디아에 인수되었다.[15][16][17]
찰리 데머지안에 따르면, 프로젝트 덴버 CPU는 CPU 내부의 펌웨어를 사용하여 ARM 명령어를 내부 명령어 집합으로 변환할 수 있다.[19] 또한 데머지안에 따르면, 프로젝트 덴버는 원래 트랜스메타의 코드 모핑 기술을 사용하여 ARM 및 X86 코드를 모두 지원할 예정이었지만, 엔비디아가 인텔의 특허 라이센스를 얻지 못했기 때문에 ARMv8-A 64비트 명령어 집합으로 변경되었다.[19]
덴버 CPU 코어를 탑재한 최초의 소비자 기기인 구글의 넥서스 9은 2014년 10월 15일에 발표되었다. 이 태블릿은 HTC에서 제조되었으며 듀얼 코어 테그라 K1 SoC를 특징으로 한다. 넥서스 9는 소비자에게 제공된 최초의 64비트 안드로이드 기기였다.[20]