라이언 코브

**라이언 코브**(Lion Cove)는 인텔이 설계한 x86, 64비트, 양방향 CPU 코어 아키텍처이다. 라이언 코브 코어는 코어 울트라 시리즈 2 애로우레이크 및 루나레이크 프로세서에 탑재된다.

## 아키텍처
라이언 코브는 인텔의 밀도 최적화된 E-코어 아키텍처에 비해 더 넓은 정수 및 벡터 실행 장치, 더 넓은 페치 및 증가된 코어 주파수를 통해 높은 컴퓨팅 성능을 제공하는 것을 목표로 하는 성능 코어 아키텍처이다.
인텔은 라이언 코브 P-코어에서 레드우드 코브에 비해 IPC가 14% 향상되었다고 주장한다. 인텔은 "생산성에 직접적으로 기여하지 않는 트랜지스터는 설계에서 제거"하려는 의도로 라이언 코브 설계 프로세스에 접근하여 단일 스레딩 및 코어 영역 효율성에 집중하기 위해 코어 설계를 간소화했다. 오리 렘펠은 라이언 코브 P-코어 설계의 수석 엔지니어였다.

### 프런트 엔드
명령어를 패치, 디코딩 및 발행하는 라이언 코브 코어의 프런트 엔드는 더 넓고 깊어졌다. 명령어 큐에서 8방향 디코딩이 이루어지며, 이는 레드우드 코브의 6방향 디코딩에서 증가한 것이다. 마찬가지로, 라이언 코브의 Out-of-Order 엔진은 8방향 할당/이름 변경 큐를 사용하며, 이는 레드우드 코브의 6방향 큐에서 증가했다. Out-of-Order 엔진은 리네이머와 스케줄링을 전용 정수 및 벡터 도메인으로 분할하여 인텔이 향후 설계에서 Out-of-Order 엔진의 완전한 재설계 없이 각 도메인을 독립적으로 수정할 수 있도록 한다. 두 도메인 모두 마이크로 연산 큐에 대한 자체 개별 액세스를 갖는다. 더 큰 연산 캐시 크기와 더 긴 큐는 더 큰 캐시에 더 많은 마이크로 연산이 저장되므로 디코딩 로직을 다시 켜야 할 필요가 없어 효율성에 도움이 된다.

#### 분기 예측기
분기 예측은 라이언 코브에서 강화되었으며, 코어의 예측 블록은 레드우드 코브보다 8배 넓다. 코어의 분기 예측기는 분기 코드 경로 또는 분기가 있을 때 결과를 예측하려고 시도한다. 라이언 코브의 L0 분기 대상 버퍼(BTB) 캐시는 256 엔트리로 두 배 증가하여, 취해진 분기에 대한 더 많은 대상 주소를 저장할 수 있으며 이는 다음 분기를 예측하고 미스 횟수를 줄이는 데 사용될 수 있다.

### 실행 엔진
#### 정수 유닛
라이언 코브는 정수 ALU 수를 6개로 늘렸다. 레드우드 코브는 256비트 와이드 파이프를 사용하는 5개의 ALU를 포함했다. 정수 곱셈 유닛 수는 1개에서 3개로 증가하여, 코어가 사이클당 하나 이상의 정수 곱셈 연산을 수행할 수 있다.

#### 벡터 엔진
라이언 코브의 인텔 벡터 엔진 설계는 이제 젠 이후 AMD에서 사용하는 설계와 더 유사하며, 부동소수점 및 벡터 실행을 위한 4개의 파이프를 갖는다. 이 파이프 중 2개는 부동소수점 곱셈 및 곱셈-덧셈을 처리하고, 다른 2개 파이프는 부동소수점 덧셈을 처리한다. 부동소수점 나누기 유닛 수는 1개에서 2개로 증가했으며 처리량이 향상되었다. 정렬 벡터 명령어를 처리하기 위해 벡터 엔진은 4개의 SIMD ALU를 포함하며, 이는 레드우드 코브의 3개에서 증가했다.

라이언 코브는 AVX-512 명령어를 지원하지만, 애로우레이크 및 루나레이크와 같은 이기종 프로세서 세대에서는 비활성화되어 있다. 이는 이기종 비서버 제품에서 AVX-512 지원이 비활성화된 골든 코브, 랩터 코브 또는 레드우드 코브와 다르지 않다.

### 캐시
라이언 코브는 3개가 아닌 4개의 캐싱 계층을 갖는 확장된 캐시 계층 구조를 도입한다. 2015년 특정 브로드웰 SKU에서 인텔은 4단계 캐시처럼 작동하는 128MB EDRAM을 추가했다. 그러나 이 eDRAM은 CPU 코어와 그래픽 간의 느린 공유 메모리 형태로서 별도의 다이에 배치되었으므로 기존 캐시는 아니었으며, 메모리 액세스 요청을 줄이는 것이 의도된 목적이었다. 브로드웰의 L3 캐시는 eDRAM에 비해 사이클당 대기 시간이 3배 짧고 대역폭이 3배 이상이었다. 새로운 수준의 기존 캐시 추가 측면에서 인텔이 마지막으로 이를 수행한 것은 2003년 펜티엄 4 익스트림 에디션에 L3 캐시를 추가했을 때였다.





#### L0
라이언 코브의 L0 캐시는 다른 CPU 코어 아키텍처에서는 L1 데이터 및 명령어 캐시로 알려져 있던 것이다. 인텔은 최근 코어 아키텍처에서 더 큰 L0 캐시 크기를 유지하지만, 스카이레이크 이후 볼 수 없었던 4사이클까지 부하 사용 대기 시간을 줄이는 데 성공했으며, 사이프레스 코브의 3사이클 및 골든 코브의 2사이클(모두 3GHz 미만의 낮은 주파수에서 실행될 때)보다는 여전히 높으며, 레드우드 코브의 5사이클보다는 낮다.

#### L1
라이언 코브 코어의 새로운 192KB L1 캐시는 코어 내부의 L0 데이터 및 명령어 캐시와 코어 외부의 L2 캐시 사이의 중간 수준 버퍼 캐시 역할을 한다. L2 캐시에 액세스할 필요 없이 L0 데이터 캐시 미스 발생 시 대기 시간을 줄이는 데 초점을 맞추고 있다. L1 캐시에서 데이터에 액세스하는 것은 9사이클의 대기 시간을 가지며, 이는 L2 캐시에 액세스하는 데 따른 대기 시간의 거의 절반이다.

#### L2
L2 캐시는 라이언 코브 코어 아키텍처에 중요하다. 인텔은 L2 캐시에 의존하여 코어를 L3 캐시의 느린 성능으로부터 격리하기 때문이다. 라이언 코브는 제품에 따라 2.5MB에서 3MB까지 구성 가능한 L2 캐시를 수용하도록 설계되었다. 루나레이크의 라이언 코브 구현은 2.5MB L2 캐시를 포함하고 있으며, 애로우레이크의 라이언 코브 변형은 3MB L2 캐시를 포함한다. 라이언 코브의 더 큰 L2 캐시는 골든 코브, 랩터 코브, 레드우드 코브와 같은 인텔의 이전 몇 세대 P-코어에서 L2 캐시 크기를 늘리는 추세를 이어가고 있다. 이전 세대 레드우드 코브 P-코어 아키텍처는 2MB L2 캐시를 특징으로 했다. 그러나 캐시 크기가 증가하면 종종 대기 시간이 증가한다. 라이언 코브의 L2 캐시는 17사이클의 대기 시간을 가지며, 이는 레드우드 코브의 16사이클 대기 시간보다 증가한 것이다. 이론적으로 L2 캐시는 사이클당 110바이트의 대역폭을 제공할 수 있지만, 루나레이크에서는 절전을 위해 사이클당 64바이트로 제한되었다.

#### L3
단일 라이언 코브 코어가 L3 캐시에 액세스할 때 읽기 대역폭은 레드우드 코브의 사이클당 16바이트에서 라이언 코브의 사이클당 10바이트로 역행했다. 이러한 낮은 데이터 읽기 및 쓰기 대역폭에도 불구하고, 라이언 코브의 L3 데이터 액세스 대기 시간은 루나레이크에서 75사이클에서 51사이클로 감소했다. 그러나 애로우레이크의 라이언 코브는 P-코어와 E-코어 모두가 L3 캐시를 공유하므로 더 긴 링 버스 설계로 인해 84사이클의 훨씬 높은 대기 시간을 겪는다.
루나레이크의 L3 캐시는 4개의 라이언 코브 P-코어 전용이며, 4개의 E-코어는 L3 캐시 없이 별도의 "섬"에 위치한다.

## 각주

## 같이 보기

분류:인텔 마이크로아키텍처