AMD K10 마이크로아키텍처

 


1. 개요
2. 상세
2.1. 배경
2.2. 특징
2.3. 사용 모델
3. 관련 문서


1. 개요


2007년에 발표된 AMD의 CPU 마이크로아키텍처.

2. 상세



2.1. 배경


K10 마이크로아키텍처를 제대로 이해하려면 K7K8 마이크로아키텍처를 알고 보면 좋다. 2005년부터 존재가 알려지기 시작했고, 전체적인 틀은 K7부터 K10까지 대체로 유사한 편이라 초기에는 K8 Rev.H나 K8L로 불리기도 했다.
2006년 7월 21일, 경쟁사의 코어 2 시리즈가 투입되기 겨우 6일 전에 자사의 신제품을 2007년 중반에 투입될 예정이라고 공표했었다. 그러고 나서 8월 15일에 K10 마이크로아키텍처 기반의 쿼드코어 프로세서 칩이 테이프 아웃 되었고, 12월 14일 Analyst Day 2006에서 구체적인 정보가 공개되면서 경쟁사보다 늦지만 예정대로 진행되는 듯 했다.
그러나 순탄치 않았는지 2007년 9월 10일에 들어서야 서버용 쿼드코어 옵테론인 바르셀로나부터 겨우 출시되었으며, 일반 데스크톱용 쿼드코어 페넘 시리즈인 아제나는 11월 19일에 들어서야 출시되었다. 경쟁사보다 무려 1년 넘는 늦은 시기에 투입됨으로써, 1999~2000년 당시와 정 반대의 입장이 되어버린 것이다.

2.2. 특징


[image]
AMD CPU 역사상 CPU 내장 L3 캐시 메모리가 처음 도입되었다. 총 2 MB가 탑재되었으며, 현세대 마이크로아키텍처들의 L3 캐시 메모리와는 다르게 코어를 둘러싸는 즉 한마디로 지금 기준으로 봤을 때엔 굉장히 요상하게 생긴 배치를 보여주고 있다.
L2 캐시 메모리는 코어당 512 KB로 증설되고, 명령 변환 색인 버퍼(ITLB)가 48엔트리로 확장되었다. 전체적으로 용량 확장에 주력해 대역폭을 넓히고 병목을 줄이는데 중점을 둔 설계를 하였다. L1 명령어 캐시 메모리와 데이터 캐시 메모리 간의 통로도 확장하였고 그 외에 특별한 점은 딱히 없다. 기존에 만들어 놓은 것들을 최적화 하는데 주력한 느낌. 이 땐 헥터 CEO가 재임했던 시절이라 한창 CPU 연구 역량이 쭉 빠지던 시기였기 때문이다.
드디어 80비트 SSE 연산 유닛이 128비트로 확장되어 128비트 연산을 원 큐에 처리할 수 있게 되었다. 부동소수점 실수 연산부 대역폭을 SSE가 잡아먹는 일이 사라져 실수 연산 성능 효율이 향상되었다. 또한, AMD의 신형 연산명령어를 처리하기 위한 새 유닛이 정수연산부에 하나 추가되었다. 원래 AMD가 만든 신 명령어들은 경쟁사한테 밀리는 AMD의 시장 점유율 때문에 잘 안쓰여서 단명해왔지만 이건 의외로 오래 살아남아서 ZEN 마이크로아키텍처는 물론이고 경쟁사의 스카이레이크 마이크로아키텍처 세대까지도 생명유지 중.
2009년 1월 8일, K10 마이크로아키텍처의 45nm 공정 미세화 버전이 투입되었다. L3 캐시 메모리 용량이 대폭 증설되었고, 상대적으로 빈약했던 부동소수점 실수 연산부가 보강되어 균형 잡힌 스펙이 되었으며, DDR3 SDRAM 컨트롤러가 처음 도입되었다. 아키텍처 관점에서도 기존 65nm 공정 버전과 비교해서 변경 사항이 있었기 때문에 K10.5라고도 부르지만, 공식 명칭은 아니다.
주요 특장점들을 열거하자면 다음과 같다.
  • 65nm SOI 공정 기반
    • 연산 처리 증가
    • ABM, SSE4a 등 명령어 추가
    • 실행 파이프라인 강화
    • 메모리 서브시스템 개선
    • 시스템 연결 개선
    • 플랫폼 수준 향상
    • DDR2 SDRAM 컨트롤러 기본 내장
  • 45nm 액침 노광 SOI 공정 기반
    • 벡터 유닛 포트 1개 추가 (2개 → 3개)
    • FP 스케줄러[1] 용량 확장 (36엔트리 → 48엔트리)
부동소수점 연산 성능 효율이 약 33% 향상되었다.
  • 부동소수점 연산장치에 SIMD 연산 유닛 1개 추가 (2개 → 3개)
모든 부동소수점 연산 장치가 128-bit SIMD에 대응 가능해졌다.
  • L3 캐시 메모리가 2 MB에서 6 MB로 3배 증설
  • DDR2, DDR3 SDRAM 컨트롤러 둘 다 내장

2.3. 사용 모델



3. 관련 문서




[1] 부동소수점 연산 명령어가 연산 장치에 들어가기 전에 효율적으로 들어가지도록 관리하는 모듈.