서니 코브와 7nm 공정, 적층 기술을 발표
인텔은 차세대 CPU 마이크로 아키텍처 서니 코브(Sunny Cove)의 내용을 일부 공개했습니다. 서니 코브는 10nm 공정 CPU 코어에서 명령 발행 포트를 확장하는 큰 폭의 마이크로 아키텍처 혁신입니니다. 인텔은 하스웰 세대에서 명령 발행 포트를 늘렸는데, 서니 코브의 확장은 그 만큼 큰 변화입니다. 그러나 완전히 새로 설계한 아키텍처로 보이진 않습니다. 코어 아키텍처의 복잡한 명령 발행 포트 배치는 그대로 이어집니다.
또 7nm 공정의 개발 상황도 밝혔습니다. 인텔은 7nm 공정에서 EUV (Extreme Ultraviolet) 노광을 채용합니다. 그러나 이 7nm가 10nm 노드와 비교될 정도로 크기가 줄어들지는 아직 확실치 않습니다. 인텔의 10nm는 다른 회사의 7nm 공정과 비슷한 스펙이기에, 인텔 7nm는 다른 회사의 5nm 수준이거나 그 이상일 가능성이 있습니다. 파운드리 업체들은 2019년부터 5nm 셔틀(커스텀 디자인을 1장의 웨이퍼로 만드는 프로토타입) 서비스를 시작합니다.
그리고 적층 기술도 적극적으로 채용한다고 밝혔습니다. 인텔은 이미 2.5D 적층으로 서로 다른 제조 공정의 칩렛을 하나의 패키지에 넣는 개발 방향을 제시했습니다. 2.5D 솔루션인 Embedded Multi-die Interconnect Bridge(EMIB)를 개발했으며 새로운 3D 적층 기술인 포베로스(Foveros)도 발표했습니다.
메모리 파이프라인을 대폭 확장
서니 코브의 프론트 엔드는 x86/x64 명령을 디코딩한 내부 명령 uOP를 저장하는 uOP 캐시의 용량을 늘렸다는 것 정도만 공개했습니다. 프론트 엔드가 다른 부분에서 얼마나 확장됐는지, 예를 들면 분기 예측의 변경은 버퍼 용량 증가 외에는 공개하지 않았습니다.
아웃 오브 오더의 백 엔드 파이프 라인은 명령 발행 포트가 스카이레이크 아키텍처의 8개에서 10개로 늘었습니다. 명령 스케줄러인 리저베이션 스테이션의 구성도 바뀌었습니다. 명령 발행을 확장하며 아웃 오브 오더 실행 시 명령 관리를 위한 리 오더 버퍼가 확장, 외부 예약 스테이션에서 대기하는 명령 수도 늘어났습니다. 또 AVX-512 유닛도 탑재합니다.
인텔의 CPU 마이크로 아키텍처 변화
서니 코브의 10포트 구성은 많아 보이지만, 인텔 아키텍처 구조의 특수성 때문에 늘어난 점도 있습니다. 10개 중 연산 포트는 4개 뿐이며, 정수 연산 4유닛과 벡터 연산 3유닛이 같은 포트에 할당됩니다. 정수와 벡터와 같은 포트를 쓰는 건 기존 방식 그대로이며, 연산 유닛이 쓰는 포트 수는 그리 많지 않습니다.
스카이레이크는 로드/스토어가 3포트, 저장소 데이터가 1포트입니다. 서니 코브는 로드/스토어가 4포트에 저장소 데이터는 2포트로 늘었습니다. 즉 명령 포트의 증가는 연산 외에 다른 부분에 할당됐다는 소리입니다.
특히 로드/스토어 포트와 디바이스 구성이 눈이 띕니다. 스카이레이크까지는 로드/스토어의 AGU(Address Generator Unit)가 3개이며 그 중 포트 2와 3이 로드와 스토어를 모두 지원하고, 포트 7은 스토어 전용입니다. 반면 서니 코브는 로드/스토어 구성이 2쌍입니다. 포트 2와 8, 3과 7이 로드와 스토어를 맡아 쌍을 이룹니다. 로드 2에 스토어 2면 균형이 안 맞는 것처럼 보이지만, 포트에서 쓰기 uOPs를 대기하는 리저베이션 스테이션 구성 때문에 유용한 배치입니다.
스카이레이크는 로드/스토어의 외부 예약 스테이션이 3개의 AGU마다 1개였습니다. 반면 서니 코브는 로드/스토어마다 리저베이션 스테이션을 분이해 명령을 대기시킵니다. 이 구성의 목적은 서로 의존성이 있는 로드와 스토어 같은 외부 예약 스테이션까지 영향을 주어, 스케줄링을 보다 쉽게 구성하는 데 있습니다.
로드/스토어의 AGU 수는 스카이레이크까지 3개였는데 서니 코브는 4개입니다. 스토어 AGU 처리량이 2가 되면서 저장소 데이터 유닛도 1에서 2로 늘었습니다. l1 데이터 캐시에 쓰기 포트도 두배로 늘려 대역폭은 2배가 됐습니다. 스토어 유닛 수가 늘어났으니 당연한 변화입니다.
또 L1 데이터 캐시도 기존의 32KB에서 48KB로 50% 늘렸습니다. l2 캐시도 늘렸는데 이는 제품마다 다릅니다. 또 L2의 Translation Lookaside Buffer (TLB) 크기도 확장됐습니다.
스카이레이크-X에서 확장한 연산 유닛 배치
실행 유닛의 기본 배치는 스카이레이크-X를 확장한 구성입니다. 연산 계통의 ALU 파이프는 포트 0, 1, 5, 6까지 총 4개의 포트에 할당됩니다. 서니 코브는 여기서 파이프 구성이 확장됐습니다.
일반 데스크탑 버전 CPU와 차이점으로 포트 5에 FMA 연산이 할당됐습니다. 이는 서버용으로 개발한 스카이레이크-X의 구성과 같습니다. 스카이레이크-X는 512비트 AVX-512를 지원합니다. 이를 위해 512비트 SIMD(Single Instruction, Multiple Data) 유닛을 구현합니다.
구체적으로는 기존의 포트 0과 1의 256-bit SIMD의 FMA 유닛 2개를 묶어 512-bit 폭의 SIMD 유닛으로 사용합니다. 또 포트 5에 새로 512-bit의 FMA 유닛을 배치했습니다. 포트를 3개 사용해 512bit의 FMA를 2개씩 병렬 실행하는 구조입니다. 서니 코브 아키텍처도 이 구성이 유지될 것으로 보입니다.
서니 코브에서 확장된 점도 많습니다. 스칼리 정수 유닛은 주소 값을 저장하는 LEA(Load Effective Address)가 4개의 ALU 파이프 전부에 배치됐습니다. 또 정수 연산 중에는 나눗셈이 포트 1, 곱센이 포트 5에 배치돼, 정수 나눗셈 연산의 대기 시간이 크게 줄었습니다. 부동 소수점 나눗셈은 포트 0입니다.
벡터 연산에선 벡터 셔플 유닛이 포트 1에 배치됩니다. 원래 벡터 서플용 포트였던 포트 5 FMA에 배치했기에, 두번째 유닛을 다른 파이프에 배치하는 구성이라 추측됩니다. 그럼 포트 6에 서플을 배치할 수도 있지만, 그럼 벡터 레지스터에 액세스하는 파이프가 하나 늘어나게 됩니다.
인텔과 AMD의 대조적인 CPU 마이크로 아키텍처 개발 자세
서니 코브의 백엔드 아웃 오브 오더 설명을 보면 인텔이 기존의 코어 아키텍처를 확장하려는 노선을 게속 지켜나가고 있음이 드러납니다. 이는 마이크로 아키텍처를 완전히 새로 설계한 AMD와는 전혀 다른 방법입니다. AMD는 새로운 아키텍처를 사용해 설계의 유지 보수가 쉽다는 장점은 있지만 버그가 포함됐을 수 있습니다. 인텔 방식은 갈수록 복잡해지지만 기존 설계 부분은 손대지 않아도 되니 설계 기간을 줄일 수 있다는 장점이 있습니다.
(인텔이 올해 큰 버그 때문에 곤혹을 겪긴 했으나, AMD도 앞으로 버그가 생기지 말란 법은 없겠지요. 그리고 AMD는 기존 아키텍처를 워낙 말아먹어서 어찌됐건 새로 팔 수밖에 없다는 점도 생각해야 되겠고요)
인텔 서니 코브와 AMD 젠2
10nm 공정 세대의 CPU 마이크로 아키텍처는 인텔의 상황이 달라졌음을 보여줍니다. 인텔은 긴 터널을 벗어나 10nm 공정 양산산에 겨우 도달했습니다.
인텔 10nm 공정이 실패한 건 만들기 힘든 스펙과, 새로운 재료인 코발트를 도입한 SAQP (Self-Aligned Quadruple Patterning) 때문에 복잡한 배선 패턴(패턴 자체도 복잡하고, 기본적으로 4개의 병렬 배선이기에 회로 설계가 어려움), 그리고 표준 셀을 줄이기 위한 Design-Technology Co-Optimization(DTCO)의 적극적인 사용 때문이었다고보입니다. 트랜지스터의 핀 높이도 문제지만 그건 핀을 낮춰서 해결이 됩니다.
인텔은 2019년에 이런 문제를 해결한 10nm 공정으로 서니 코브 아키텍처의 CPU를 출시할 수 있다고 확신을 가졌다고 보입니다.
인텔 10nm DTCO 기술 중 가장 논란이 많았던 CGOA (Contact-Over-Active-Gate)
인텔이 스펙 향상과 DTCO의 표준 셀 면적 축소를 고집한 건, 그렇게 하지 않으면 트랜지스터 제조 비용이 올라가기 때문입니다. 10nm 이후 웨이퍼의 제조 가격이 늘어나면서 DTCO로 회로 밀도를 높여 웨이퍼 비용 증가를 상쇄하려 했습니다. 하지만 너무 무리했다고 보입니다.
그럼 서니 코브를 양산할 10nm 공정은 어떤 것일까요? 우선 10nm 배선 구조 자체가 바뀌었을 가능성이 있습니다. 또 DTCO의 적극 도입을 포기하는 방법도 있습니다. 어쨌건 회로 설계를 대폭 바꿔야 하니 2019년에 10nm를 본격 출시하게 됩니다. 그리고 이렇게 방법을 바꾸면 14nm의 3배 밀도에 달하는 트랜지스터를 넣지 못하게 됩니다. 코어 크기를 늘리지 못한다면 CPU 마이크로 아키텍처 선에서 해결해야 합니다. 서니 코브는 이런 요구를 바탕으로 만들었다고 추측됩니다.
이 경우 10nm 제조 비용이 늘어나니 CPU를 다른 공정으로 나눠 제조한 칩렛이 더 합리적입니다. 다이가 큰 서버 CPU의 경우 더욱 그렇습니다. 거기에 EUV 프로세스라면 EUV 장비의 처리량 병목 현상 때문에 EUV에서 생산하는 다이를 작게 설계하는 게 합리적입니다.
각 제조사의 프로세스 비교