4. 21064 성능 vs 21066 성능

21064와 21066은 같은(EV4) CPU 코어를 가진다. 만일 같은 프로그램이 같은 CPU 스피드에서 21064와 21066에서 돌아간다면, 성능 차이는 시스템 Bcache/메모리 폭 때문이다. 내부 캐시에서 높은 히트율을 가지는 코드 쓰레드는 같이 실행된다. 여기에 2개의 커다란 성능 요건이 있다:

  1. Code는 write-intensive이다. 비록 21064와 21066이 몇몇 딜레이를 만회하기 위해 write 버퍼를 가지고 있다 할지라도, write-intensive한 코드는 시스템 버스에서 write 대역폭에 의해 감속된다. 이것은 칩내 캐시들이 write-through이기 때문이다.

  2. Code는 소수를 정수처럼 다룬다. Alpha 아키텍쳐는 정수 레지스터에서 부동 소수점 레지스터로 레지스터-레지스터 전달을 허용하지 않는다. 그러한 전환은 메모리(그리고 칩내 캐시는 write-though이기 때문에 Bcache를 통해서)를 통해 행해진다. (편집자 주: EV4와 EV45는 이미 캐시되어 있는 메모리를 제공하는 원 데이터 캐시(Dcache)를 통해 전환을 한다.) 그런 경우에, 전환 순서내 저장은 Dcache를 갱신하고 연속적인 로드는 어떠한 상황에서도 갱신된 d-cache 값을 읽을수 있으며 Bcache에 대한 라운드 트립을 피할수 있다. 특별히, stq/ldt나 stt/ldq 명령어를 계속해서 실행하는것이 좋다.)

만일 여러분이 21064A와 21066A사이에서 같은 비교를 하였다면, 여기에는 투 칩사이의 다른 Icache와 Dcache 크기 때문에 추가적인 요소를 고려해야 한다.

현재, 21164는 이 문제들을 풀었다: 이것은 매우 높은 시스템 버스 대역폭 (비록 같은 수의 시그널 핀을 가지고 있다할지라도 - 좋다, 나는 21064 보다 2배 많은 핀을 가지고 있다는것을 알고 있지만 이 특별한 것들 모두는 파워와 그라운드이다!.(정말로!!)) 을 이루고 있으며 write-back 캐시를 가지고 있다. 남아 있는 유일한 문제는 "가격이 얼마인가"에 대한 것이다.