R8000

R8000

R8000MIPS Technologies, Inc.(MTI), 도시바 및 Weitek가 개발[1]마이크로프로세서 칩셋입니다.이것은 MIPS IV 명령 집합 아키텍처의 첫 번째 구현입니다.R8000은 TFP라고도 불리며, 개발 중 엄청난 부동소수점(Versative Floating Point)을 의미합니다.

역사

R8000의 개발은 1990년대 초 SGI(Silicon Graphics, Inc.)에서 시작되었습니다.R8000은 게이트 어레이와 같은 많은 개별 컴포넌트에서 구축된 중앙처리장치(CPU) 대신 마이크로프로세서를 통해 1990년대 무렵의 슈퍼컴퓨터의 성능을 제공하도록 특별히 설계되었습니다.당시 기존 슈퍼컴퓨터의 성능은 RISC(Reduced Instruction Set Computer) 마이크로프로세서만큼 빠르게 향상되지 않았습니다.RISC 마이크로프로세서는 비용과 크기의 극히 일부만으로 고가의 대형 슈퍼컴퓨터에 필적할 것으로 예측되어 이 수준의 퍼포먼스를 가진 컴퓨터에 접근하기 쉬워지고 많은 상황에서 데스크사이드 워크스테이션과 서버가 슈퍼컴퓨터를 대체할 수 있게 되었습니다.

R8000의 첫 번째 세부 사항은 1992년 4월 MIPS Computer Systems가 발표한 미래 MIPS 마이크로프로세서에 대한 세부 사항에서 나타났습니다.1992년 3월, SGI는 MIPS Computer Systems를 인수한다고 발표했습니다.MIPS Computer Systems는 1992년 중반에 MIPS Technologies, Inc.(MTI)라는 SGI의 자회사가 되었습니다.R8000의 개발은 MTI로 이전되어 계속 진행되었습니다.R8000은 1993년에 도입될 예정이었으나 1994년 중반까지 연기되었다.첫 번째 R8000은 75MHz 부품으로 1994년 6월 7일에 도입되었습니다.당시 가격은 미화 2,500달러였다.1995년 중반, SGI의 시스템에 90MHz 부품이 등장했습니다.R8000의 고비용과 좁은 시장(기술 및 과학 컴퓨팅)으로 인해 시장 점유율이 제한되었습니다.또한 R8000은 의도한 시장에서는 인기가 있었지만 1996년 1월에 출시된 보다 저렴하고 일반적으로 성능이 뛰어난 R10000으로 대체되었습니다.

R8000 사용자는 SGI로 Power Indigo2 워크스테이션, Power Challenge 서버, Power Challenge Array 클러스터 및 Power Onyx 시각화 시스템에서 R8000을 사용했습니다.1994년 11월 TOP500 리스트에서는 500대 중 50대의 시스템이 R8000을 사용했습니다.R8000 기반 시스템에서 가장 높은 순위를 차지한 것은 154~157위 4가지 전력 과제였습니다.각각 18대의 [2]R8000을 가지고 있었다.

묘사

칩 세트는 R8000 마이크로프로세서, R8010 부동소수점 유닛, 2개의 태그 RAM 및 스트리밍 캐시로 구성되어 있습니다.R8000은 슈퍼스칼라로 사이클당 최대 4개의 명령을 발행할 수 있으며 프로그램 순서로 명령을 실행합니다.5단계 정수 파이프라인이 있습니다.

R8000

R8000 다이 사진

R8000은 칩셋을 제어하고 정수 명령을 실행했습니다.여기에는 명령어 가져오기, 분기 예측을 위한 정수 실행 유닛, 정수 레지스터 파일, 프라이머리 캐시 및 하드웨어가 포함되어 있습니다.TLB(Translation Lookaside Buffer)입니다.

1단계에서는 명령 캐시에서 4개의 명령을 가져옵니다.명령 캐시는 16kB의 대형 다이렉트 맵으로 가상 태그 부착 및 가상 인덱스 부착이며 32바이트의 회선 크기를 가집니다.명령 디코딩 및 레지스터 읽기는 스테이지 2 중에 이루어지며 분기 명령도 해결되어 1사이클 분기 오예측 패널티가 발생한다.로드 및 저장 명령은 3단계에서 실행을 시작하고, 정수 명령은 4단계에서 실행을 시작합니다.부하 결과를 오퍼랜드로 하는 정수 명령이 부하 후 사이클에서 발행되도록 4단계까지 정수 실행이 지연되었다.결과는 5단계에서 정수 레지스터 파일에 입력된다.

정수 레지스터 파일에는 9개의 읽기 포트와 4개의 쓰기 포트가 있습니다.4개의 읽기 포트가 2개의 정수 실행 유닛에 오퍼랜드를 공급합니다(브런치 유닛은 정수 유닛의 일부로 간주되었습니다).다른 4개의 읽기 포트는 2개의 주소 생성기에 오퍼랜드를 공급합니다.MIPS IV ISA에 추가된 베이스(레지스터)+인덱스(레지스터) 주소 스타일 때문에 2개가 아닌 4개의 포트가 필요합니다.R8000에서는 사이클당 최대 1개의 정수 스토어가 발행되며 최종 읽기 포트에서 정수 스토어 데이터가 전송됩니다.

2개의 레지스터 파일 쓰기 포트는 2개의 정수 기능 유닛에서 결과를 쓰기 위해 사용됩니다.R8000은 사이클마다 2개의 정수 부하를 발행하고 나머지 2개의 쓰기 포트를 사용하여 정수 부하 결과를 레지스터 파일에 씁니다.

레벨 1의 데이터 캐시는 2개의 용장 어레이로 구성되었으며, 각 어레이에는 1개의 읽기 포트와 1개의 쓰기 포트가 있습니다.두 배열 모두에 정수 저장소가 기록되었습니다.각 어레이에 1개씩 2개의 로드를 병렬로 처리할 수 있습니다.

정수 기능 단위는 2개의 정수 단위, 시프트 단위, 곱하기 나누기 단위 및 2개의 주소 생성 단위로 구성되었습니다.곱셈 및 나누기 명령은 파이프라인되지 않은 곱셈 분할 단위로 실행됩니다.그 결과 32비트 오퍼랜드의 경우 4사이클, 64비트의 경우 6사이클이 됩니다.나눗셈 명령의 지연은 결과의 유효 자릿수에 따라 다르므로 21 ~73 사이클로 변화합니다.

로드 및 스토어

로드 및 저장소는 3단계에서 실행을 시작합니다.R8000에는 로드 및 스토어의 가상 주소를 계산하는2개의 Address Generation Unit(AGU; 주소 생성 유닛)이 있습니다.스테이지 4에서 가상 주소는 384 엔트리를 포함하고 3방향 세트어소시에이트된 듀얼 포트 TLB에 의해 물리 주소로 변환됩니다.16kB 데이터 캐시는 같은 사이클로 액세스 됩니다.듀얼 포트이며, 2개의 64비트 버스를 통해 액세스합니다.사이클당 2개의 부하 또는 1개의 부하와 1개의 스토어를 처리할 수 있습니다.캐시는 패리티 또는 ECC(Error Correcting Code)에 의해 보호되지 않습니다.캐시 누락 시 스트리밍 캐시에서 데이터를 로드하고 8사이클의 패널티를 부과해야 합니다.캐시는 가상 인덱스, 물리적으로 태그 부착, 직접 매핑되며 32바이트 라인 크기를 가지며 할당 프로토콜과 함께 쓰기 기능을 사용합니다.로드가 데이터 캐시에 히트했을 경우, 그 결과는 5단계에서 정수 레지스터 파일에 기입된다.

R8010

R8010 다이 사진

R8010은 R8000의 명령 큐에 의해 제공되는 부동소수점 명령을 실행했습니다.큐는 부동소수점 파이프라인을 정수 파이프라인에서 분리하여 부동소수점 명령이 동일한 그룹으로부터 정수 명령이 발행된 후 또는 발행되기 전에 가능하면 부동소수점 명령을 실행할 수 있도록 함으로써 제한된 형식의 잘못된 실행을 구현했습니다.스트리밍 캐시 지연의 일부를 완화하기 위해 파이프라인이 분리되었습니다.

여기에는 부동소수점 레지스터 파일, 로드 큐, 스토어 큐 및 동일한 부동소수점 유닛이 포함되어 있습니다.divide 및 square-root를 제외한 모든 명령은 파이프라인으로 표시됩니다.R8010에서는 핵심 부품에 승수를 사용하는 반복 분할 및 제곱근 알고리즘이 구현되어 있기 때문에 파이프라인은 작업 기간 동안 유닛을 정지해야 합니다.

비교를 제외한 산술 명령에는 4사이클의 지연 시간이 있습니다.단정도 분할과 배정도 분할은 각각 [1]14사이클과 20사이클의 지연시간을 가지며, 단정도 제곱근과 배정도 제곱근은 각각 [3]14사이클과 23사이클의 지연시간을 가진다.

스트리밍 캐시 및 태그 RAM

스트리밍 캐시는 R8000의 L2 통합 캐시 및 R8010의 L1 데이터 캐시로 기능하는 외부 1~16 MB 캐시입니다.R8000과 같은 클럭환율로 동작하며 범용 동기 스태틱 RAM으로 [1]구축되어 있습니다.이 스킴은 데이터에 자주 액세스해야 하는 부동소수점 성능을 유지하기 위해 사용되었습니다.대기 시간이 짧은 소규모 프라이머리 캐시는 충분한 데이터를 포함하지 못하고 종종 누락되기 때문에 성능을 저하시키는 긴 대기 시간 재파일이 필요합니다.

스트리밍 캐시는 양방향 인터리브입니다.각각 짝수 또는 홀수 주소의 데이터를 포함하는 2개의 독립된 은행이 있습니다.따라서 두 개의 액세스가 서로 다른 [1][4]뱅크를 연결하는 경우 두 개의 읽기, 두 개의 쓰기 또는 매 사이클마다 읽기와 쓰기를 수행할 수 있습니다.각 뱅크는 2개의 64비트 단방향 버스를 통해 액세스됩니다.하나는 읽기용이고 다른 하나는 쓰기용입니다.이 스킴은 양방향 버스에 필요한 버스 교체를 피하기 위해 사용되었습니다.버스 회전을 회피함으로써 캐시를 한 사이클에서 읽고 다음 사이클에서 쓸 수 있어 회전을 위한 인터럽트 사이클 없이 퍼포먼스가 [4]향상됩니다.

스트리밍 캐시의 태그는 2개의 태그 RAM 칩(각 뱅크에 1개씩)에 포함되어 있습니다.두 칩 모두 동일한 데이터를 포함합니다.각 칩은 4개의 트랜지스터 SRAM 셀에 의해 구현된 1.189 Mbit의 캐시 태그를 포함합니다.칩은 0.7μm BiCMOS 프로세스로 구현되며, 폴리실리콘은 2단계, 알루미늄 인터커넥트는 2단계입니다.BiCMOS 회로는 디코더와 칩의 센스 앰프 및 컴퍼레이터 부분을 결합하여 사이클 타임을 단축하는 데 사용되었습니다.각 태그 RAM은 14.8mm x 14.8mm 크기로 155핀 CPGA에 포장되어 있으며 75MHz에서 [5]3W를 방산합니다.태그 RAM은 캐시 태그를 제공할 뿐만 아니라 스트리밍 캐시가 4방향으로 설정된 어소시에이션을 담당합니다.핀 카운트의 증가를 피하기 위해 캐시 태그는 4방향 세트어소시에이션이며, 로직은 set-associative [1]캐시를 구현하는 일반적인 방법 대신 룩업 후에 액세스할 설정을 선택합니다.

지연 시간을 줄이기 위해 스트리밍 캐시에 대한 액세스가 파이프라인으로 수행됩니다.파이프라인에는 5개의 단계가 있습니다. 1단계에서는 주소가 태그 RAM으로 전송되고 2단계에서는 액세스됩니다.3단계는 태그 RAM으로부터의 신호가 SSRAM으로 전파되는 것입니다.4단계에서는 SSRAM에 액세스하여 5단계에서는 데이터가 R8000 또는 R8010으로 반환됩니다.

물리적.

R8000은 260만 개의 트랜지스터를 포함했으며 17.34mm x 17.30mm(299.98mm²)로 측정되었습니다.R8010에는 83만개의 트랜지스터가 탑재되어 있습니다.총 두 개의 칩에는 343만 개의 트랜지스터가 들어 있었다.둘 다 도시바가 0.7μm의 3층 금속 상보 금속 산화물 반도체(CMOS) 공정인 VHMOSII 공정에서 제작했습니다.모두 591핀 세라믹그리드 어레이(CPGA) 패키지로 패키지화되어 있습니다.두 칩 모두 3.3V 전원장치를 사용했으며, R8000은 75MHz에서 13W의 전력을 방전했습니다.

메모들

  1. ^ a b c d e Hsu 1994
  2. ^ 둥가라 1994
  3. ^ MIPS Technologies, Inc, 1994
  4. ^ a b MIPS 1994
  5. ^ 우네카와 1993년

레퍼런스

추가 정보