아이테니엄
아이테니엄(Itanium)은 2001년에 공식 발표된 인텔이 제공하는 64비트 CPU이다. 휴렛 팩커드(HP)와 공동으로 개발된 높은 성능의 서버 아키텍처인 IA-64를 처음으로 채용하여, HP의 PA-RISC 프로세서를 대체하거나 인텔의 제온 프로세서의 규모로 사용되는 것을 목적으로 한다. 개발이 지연되면서 출시된 최초의 아이테니엄은 2001년에 출시되었다. 그 뒤로도 보다 강력한 아이테니엄 프로세서가 정기적으로 발표되었다. 아이테니엄은 2006년에 아이테니엄 2로 자리를 내 주었다.
아이테니엄 프로세서는 그 능력면에서 지속적인 발전을 보여줘왔다. 머시드는 초기 개념을 증명하기 위한 제품이었지만, 맥킨리 프로세서는 메모리 구조를 극적으로 향상시켰으며 이로인해 경쟁력있는 제품이 되었다. 매디슨은 130나노미터 공정기술로 전환을 하였으며 주된 성능의 병목현상을 극복시킬 수 있었던 캐시 크기를 증가시킬 수 있었다. 몬테시토는 90나노미터 공정기술로 듀얼코어를 가능하게 했으며 단위 전력당 성능을 크게 향상시킬 수 있었다. 몬트베일에서는 코어 수준 락스텝과 요구 기반 스위칭()의 기능을 지원했으며 프론트 사이드 버스(FSB)를 667 MHz로 증가시키게 되었다.
아이테니엄 서버 판매의 추이 역사는 다음과 같다.
인텔은 아이테니엄 명령어 집합과 마이크로아키텍처에 대해서 자세한 정보를 공개하고 있으며 기술에 대한 개요들도 제공하고 있다. 아키텍처의 이름은 그동안 여러번 바뀌었다. HP는 처음 PA-WideWord라고 명명했으나 인텔은 나중에 IA-64라고 이름을 지었다. 그 이후 아이테니엄 프로세서 아키텍처(IPA)라고 불리다가 최종적으로 인텔 아이테니엄 아키텍처라고 명명했다. 그렇지만 일반적으로 IA-64라고도 불린다. 인텔 아이테니엄 아키텍처는 폭넓은 64비트 함축적인 병렬 아키텍처이다. 기본 데이터 워드는 64비트이며 바이트 단위로 액세스 가능한 바이트-어드레싱을 지원한다. 논리적인 주소 범위는 2 바이트이다. 아키텍처는 predication speculation과 분기 예측 을 지원한다. 하드웨어적인 레지스터 재명명을 사용한다. 루프의 병렬적인 실행을 위해서도 동일한 방법이 사용된다. Speculation, 예측, predication, 그리고 재명명(renaming)은 컴파일러에 의해 제어된다. 각 명령어 워드는 이것들을 위해 추가적인 비트가 있다. 이 방법은 아키텍처의 뚜렷한 특성이다.
아키텍처는 128개의 정수용 레지스터와 128개의 부동소수점 레지스터, 64개의 1비트 예측 레지스터, 그리고 8개의 분기 레지스터가 있다. 부동소수점 레지스터는 82비트 길이여서 중간 결과를 정확하게 보존할 수 있다.
각 128비트의 명령어 워드에는 3개의 명령어가 포함된다. 명령어를 가지고 오는 페치(Fetch)부에서는 클럭당 두개의 워드를 L1캐시로부터 파이프라인으로 읽어올 수 있다. 컴파일러가 이러한 최대의 장점을 살리게 되면, 프로세서는 클럭 주기동안 여섯개의 명령어를 실행할 수 있다. 프로세서는 11개의 그룹에 총 30개의 기능 실행부를 가지고 있다. 각 부분은 특정 부분집합의 명령어 집합을 실행 할 수 있으며 각 유닛은 실행부분이 데이터를 기다리기위해 멈추지 않는한 단위 주기당 하나의 명령어의 비율로 실행을 한다. 그룹에 있는 모든 유닛들이 명령어 집합의 부분집합과 정확히 일치하지는 않지만 공통된 명령어는 여러 유닛들을 실행될 수 있다.
실행 유닛 그룹은 아래와 같이 구성되어 있다.
컴파일러는 명령어들을 동시에 실행할 수 있는 6개의 집합으로 집단을 만든다. 부동소수점 유닛은 곱셈과 누산을 동시에 실행할 수 있어서 하나의 부동소수점 명령어는 곱셈을 한후 덧셈이 필요한 경우 두개의 명령어처리를 한번에 수행할 수 있다. 이러한 연산은 과학 계산과 같은 곳에서는 매우 일반적이며 곱셈-누산기는 성능향상에 커다란 도움을 준다. 이러한 경우 프로세서는 하나의 주기동안에 4개의 FLOPs를 처리할 수 있다. 예를 들면 800MHz 아이테니엄 프로세서는 3.2GFlops의 이론 성능을 가진다. 가장 빠른 아이테니엄 2 1.67GHz의 이론 성능은 6.67GFlops이다.
2002년부터 2006년까지 아이테니엄2 프로세서는 공통의 캐시 계층구조를 공유하여 왔다. 16KiB의 1차 명령어 캐시와 16KiB의 1차 데이터 캐시를 가지고 있다. 2차 캐시는 명령어와 데이터용 공통의 통합 캐시로서 256KiB의 크기이다. 3차 캐시도 역시 공통의 통합 캐시이지만 그 크기는 1.5MiB에서부터 24MiB로 다양하다. 256KiB의 2차 캐시는 주 산술 논리 장치(ALU)를 방해하지 않고 세마포어 연산을 처리할 수 있는 충분한 회로를 포함하고 있다.
주 메모리는 버스를 통하여 별도 칩으로 접근할 수 있다. 아이테니엄 2 버스는 초기에 맥킨리 버스라 불리었다. 그렇지만 일반적으로 아이테니엄 버스라 통칭된다. 버스의 속도는 새로운 프로세서가 출시될 때마다 지속적으로 빨라졌으며 버스 전송은 단위 클럭 주기당 2x128비트이다. 따라서 200MHz 맥킨리 버스의 전송 속도는 6.4GiB/s이며 533MHz 몬테시토 버스 전송속도는 17.056 GiB/s이다.
2006년 이전 출시된 아이테니엄 프로세서는 IA-32 아키텍처를 하드웨어적으로 구현하였기 때문에 기존의 32비트 서버 애플리케이션들을 지원한다. 그렇지만 IA-32코드의 성능은 아이테니엄 프로세서의 64비트뿐만 아니라 그 당시의 x86프로세서보다 뒤떨어졌다. 2005년에 인텔은 IA-32 실행 계층()를 개발하였다. 이것은 더 나은 성능을 제공하는 소프트웨어 애뮬레이션이다. 따라서 인텔은 몬테시토에서부터 IA-32 코드의 하드웨어적인 지원을 하지 않았다.
인텔은 2006년 출시된 몬테시토에서 기본적인 프로세서의 마이크로아키텍처 향상을 이루었다.
아이테니엄 프로세서는 그 능력면에서 지속적인 발전을 보여줘왔다. 머시드는 초기 개념을 증명하기 위한 제품이었지만, 맥킨리 프로세서는 메모리 구조를 극적으로 향상시켰으며 이로인해 경쟁력있는 제품이 되었다. 매디슨은 130나노미터 공정기술로 전환을 하였으며 주된 성능의 병목현상을 극복시킬 수 있었던 캐시 크기를 증가시킬 수 있었다. 몬테시토는 90나노미터 공정기술로 듀얼코어를 가능하게 했으며 단위 전력당 성능을 크게 향상시킬 수 있었다. 몬트베일에서는 코어 수준 락스텝과 요구 기반 스위칭의 기능을 지원했으며 프론트 사이드 버스를 667 MHz로 증가시키게 되었다.
폴손은 투킬라 프로세서의 후속 모델로서 2012년에 출시 예정이다. 인텔에 의하면 45나노미터 공정기술을 건너뛰고 바로 32나노미터 공정기술을 사용할 것이다. 8코어 이상과 멀티스레딩 향상, 그리고 특히 가상화에서 병렬화의 장점을 살릴 수 있는 새로운 명령어들을 지원할 예정이다. 폴손은 세계 최대의 48MiB L3캐시와 코어당 768KiB 총 6MiB의 L2 캐시, 총 캐시 크기는 54MiB이며 다이 사이즈는 544 mm²로서 이전 세대인 투킬라 프로세서의 698.75 mm² 보다 작을것으로 예상된다.
키슨은 2014년에 출시될 폴손의 후속 아이테니엄 프로세서이다. 폴손과 키슨 그리고 투킬라는 이진, 소켓 호환성을 지원할 것이다라는 것외에는 알려진 것이 없다.