hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
인터그레이티드 디바이스 테크놀로지 합병 및 인수
2010년에 IDT는 두 건의 인수를 했다. 1월에 IDT는 올 실리콘 발진기 기술 개발업체인 Mobius Microsystems Inc.를 인수했다. 거래 조건은 공개되지 않았다. 같은 해 4월 말, IDT는 고성능 컴퓨팅용 전력 모듈 VRM 제품을 제조하는 iWatt Corporation의 전 자회사인 IKOR의 자산을 인수했다. 전액 현금 거래를 통해 IDT는 엔터프라이즈 컴퓨팅을 위한 고성능 전력 관리 제품을 생산할 수 있었다.
2011년 9월 IDT와 퀄컴은 IDT의 Hollywood Quality Video(HQV) 및 Frame Rate Conversion(FRC) 비디오 처리 제품 라인과 특정 관련 자산을 퀄컴으로 이전하는 계약을 체결했다고 발표했다. 계약의 일환으로 양사는 퀄컴의 레퍼런스 디자인에 IDT의 제품을 더 많이 포함하기 위한 옵션을 모색할 것이다.
2012년에 IDT는 세 건의 인수를 했다. 4월에 IDT는 주파수 제어 제품(FCP)의 글로벌 공급업체인 FOX Electronics를 약 3천만 달러의 전액 현금 거래로 인수했다. 2012년 7월 IDT는 NXP의 고속 데이터 변환기 자산과 데이터 변환기 전문 아날로그 IP 회사인 Alvand Technologies를 인수했다. 거래 조건은 공개되지 않았다. 이러한 거래는 IDT의 무선 인프라 제품에 추가된다.
2015년에 IDT는 독일 드레스덴의 ZMDI를 3억 7백만 달러에 인수했다.
2017년 IDT는 광 상호 연결 제품 및 기술 사업체인 GigPeak를 주당 3.08달러, 총 약 2억 5천만 달러의 현금으로 인수했다.
2018년 9월, 르네사스는 IDT를 67억 달러에 인수한다고 발표했다. 2019년 3월 30일, 르네사스는 Integrated Device Technology 인수를 완료했으며, 새로운 사업부는 Tempo Semiconductor로 명명되었다.
POWER6
POWER6는 IBM이 개발한 마이크로프로세서로 Power ISA v.2.05를 구현했다. 2007년에 시스템에서 사용 가능해지면서 POWER5+의 뒤를 이어 IBM의 주력 Power 마이크로프로세서가 되었다. 이는 eCLipz 프로젝트의 일환으로 알려져 있는데, IBM의 서버 하드웨어를 가능한 한 통합하려는 목표를 가지고 있다고 한다(따라서 약어에 "ipz"가 포함됨: iSeries, pSeries, zSeries).
POWER6 역사
POWER6는 2006년 2월 국제 고체 회로 학회(ISSCC)에서 소개되었고, 2006년 10월 마이크로프로세서 포럼과 2007년 2월 다음 ISSCC에서 추가 세부 사항이 공개되었다. 2007년 5월 21일 공식적으로 발표되었다. 2007년 6월 8일 3.5, 4.2, 4.7 GHz의 속도로 출시되었으며, 회사는 시제품이 6 GHz에 도달했다고 언급했다. POWER6는 2005년 중반에 첫 실리콘이 제작되었고, P595 도입과 함께 2008년 5월에 5.0 GHz로 향상되었다.
POWER6 설명
POWER6는 듀얼 코어 프로세서다. 각 코어는 2-방향 동시 멀티스레딩(SMT)이 가능하다. POWER6는 약 7억 9천만 개의 트랜지스터를 포함하며, 65 nm 공정으로 제작된 341 mm2 크기이다. POWER5와의 눈에 띄는 차이점은 POWER6가 비순차적이 아닌 순차적으로 명령어를 실행한다는 점이다. 이러한 변화는 종종 최적의 성능을 위해 소프트웨어를 재컴파일해야 하지만, POWER6 프로젝트의 수석 엔지니어에 따르면 수정되지 않은 소프트웨어로도 POWER5+보다 상당한 성능 향상을 달성한다고 한다.
POWER6는 또한 ViVA-2, 즉 Virtual Vector Architecture를 활용하는데, 이는 여러 POWER6 노드를 결합하여 단일 벡터 프로세서 역할을 할 수 있도록 한다.
POWER6 설명
각 코어는 두 개의 정수 단위, 두 개의 이진 부동소수점 단위, AltiVec 단위, 그리고 새로운 십진 부동소수점 단위를 갖는다. 회사 문서에 따르면 이진 부동소수점 장치는 "6사이클, 13-FO4 파이프라인"을 달성하기 위해 "많은 마이크로아키텍처, 논리, 회로, 래치 및 통합 기술"을 통합한다. IBM 경쟁사 서버와 달리 POWER6는 IEEE 754 십진 산술을 위한 하드웨어 지원을 제공하며, 실리콘에 통합된 최초의 십진 부동소수점 단위를 포함한다. 50개 이상의 새로운 부동소수점 명령어는 십진 연산과 이진 및 십진 간의 변환을 처리한다. 이 기능은 System z10에 탑재된 z10 마이크로프로세서에도 추가되었다.
각 코어는 64KB의 4방향 세트 연관 명령어 캐시와 64KB의 데이터 캐시를 가지며, 8방향 세트 연관 설계로 2단계 파이프라인을 지원하여 사이클당 두 개의 독립적인 32비트 읽기 또는 하나의 64비트 쓰기를 지원한다. 각 코어는 반개인적인 4 MiB 통합 L2 캐시를 가지며, 캐시는 특정 코어에 할당되지만 다른 코어는 빠르게 접근할 수 있다. 두 코어는 80GB/s 버스를 사용하여 다이 외부에 있는 32MiB L3 캐시를 공유한다.
POWER6 설명
POWER6는 두 개의 노드 간 링크(50GB/s)를 사용하여 최대 31개의 다른 프로세서와 연결할 수 있으며, 코어당 최대 10개의 논리 파티션을 지원한다(시스템당 최대 254개). 설정된 매개변수에 따라 성능과 전력을 모니터링하고 조정하는 서비스 프로세서와의 인터페이스가 있다.
IBM은 또한 프로세서에 5 GHz 듀티 사이클 보정 클럭 분배 네트워크를 사용한다. 이 네트워크에서 회사는 3 μm 너비와 1.2 μm 두께의 구리 분배 와이어를 구현한다. POWER6 설계는 이중 전원 공급 장치를 사용하며, 0.8~1.2볼트 범위의 논리 전원 공급 장치와 약 150mV 높은 SRAM 전원 공급 장치를 사용한다.
POWER6의 열 특성은 POWER5와 유사하다. IBM 수석 과학자 프랭크 솔티스 박사는 IBM이 POWER6 설계에 90 nm와 65 nm 부품의 조합을 사용하여 고주파수와 관련된 전력 누설 문제를 해결했다고 말했다.
약간 향상된 POWER6+는 2009년 4월에 출시되었지만, 2008년 10월부터 Power 560 및 570 시스템에 탑재되어 출하되고 있었다. 이는 IBM의 메인프레임 프로세서에서 가져온 기능인 보안 메모리 파티션을 위한 더 많은 메모리 키를 추가했다.
POWER6 제품
2008년 기준, POWER6 시스템 제품군에는 "익스프레스" 모델(520, 550, 560)과 엔터프라이즈 모델(570, 595)이 포함된다. 다양한 시스템 모델은 모든 규모의 기업에 서비스를 제공하도록 설계되었다.
예를 들어, 520 익스프레스는 중소기업을 대상으로 판매되고, Power 595는 대규모 다중 환경 데이터 센터를 대상으로 판매된다.
익스프레스 모델과 엔터프라이즈 모델의 주요 차이점은 후자가 주문형 용량 업그레이드(CUoD) 기능과 핫 플러그 가능 프로세서 및 메모리 "북"을 포함한다는 것이다.
IBM은 또한 4개의 POWER6 기반 블레이드 서버를 제공한다. 사양은 아래 표에 나와 있다.
POWER6 제품
모든 블레이드는 AIX, IBM i, 리눅스를 지원한다. BladeCenter S 및 H 섀시는 AIX, i 및 리눅스를 실행하는 블레이드를 지원한다. BladeCenter E, HT 및 T 섀시는 AIX 및 리눅스를 실행하는 블레이드를 지원하지만 i는 지원하지 않는다.
2007년 레노에서 열린 슈퍼컴퓨팅 컨퍼런스(SC07)에서 새로운 수랭식 Power 575가 공개되었다. 575는 2U "노드"로 구성되며, 각 노드에는 4.7 GHz의 POWER6 코어 32개와 최대 256GB의 RAM이 장착되어 있다. 단일 프레임에 최대 448개의 코어를 설치할 수 있다.
POWER6 각주
R. Berridge; R. M. Averill; A. E. Barish; M. A. Bowen; P. J. Camporese; J. DiLullo; P. E. Dudley; J. Keinert; D. W. Lewis; R. D. Morel; T. Rosser; N. S. Schwartz; P. Shephard; H. H. Smith; D. Thomas; P. J. Restle; J. R. Ripley; S. L. Runyon; P. M. Williams (November 2007). 《IBM POWER6 microprocessor physical design and design methodology》. 《IBM Journal of Research and Development》 51. 685–714쪽. doi:10.1147/rd.516.0685.
POWER6 각주
H. -Y. McCreary; M. A. Broyles; M. S. Floyd; A. J. Geissler; S. P. Hartman; F. L. Rawson; T. J. Rosedahl; J. C. Rubio; M. S. Ware (November 2007). 《EnergyScale for IBM POWER6 microprocessor based systems》. 《IBM Journal of Research and Development》 51. 775–786쪽. doi:10.1147/rd.516.0775.
M. S. Floyd; S. Ghiasi; T. W. Keller; K. Rajamani; F. L. Rawson; J. C. Rubio; M. S. Ware (November 2007). 《System power management support in the IBM POWER6 microprocessor》. 《IBM Journal of Research and Development》 51. 733–746쪽. CiteSeerX 10.1.1.128.8084. doi:10.1147/rd.516.0733.
POWER6 각주
H. Q. Le; W. J. Starke; J. S. Fields; F. P. O'Connell; D. Q. Nguyen; B. J. Ronchetti; W. M. Sauer; E. M. Schwarz; M. T. Vaden (November 2007). 《IBM POWER6 microarchitecture》. 《IBM Journal of Research and Development》 51. 639–662쪽. CiteSeerX 10.1.1.115.6020. doi:10.1147/rd.516.0639.
L. Eisen; J. W. Ward; H. -W. Tast; N. Mading; J. Leenstra; S. M. Mueller; C. Jacobi; J. Preiss; E. M. Schwarz; S. R. Carlough (November 2007). 《IBM POWER6 accelerators: VMX and DFU》. 《IBM Journal of Research and Development》 51. 1–21쪽. CiteSeerX 10.1.1.128.3776. doi:10.1147/rd.516.0663.
해밍 가중치
해밍 가중치 또는 해밍 웨이트(Hamming weight)는 사용되는 알파벳의 0 기호와 다른 기호의 개수이다. 따라서 동일한 길이의 모든 0 문자열에서 해밍 거리와 같다. 가장 일반적인 경우인 주어진 비트 집합의 경우, 이는 1로 설정된 비트의 수, 또는 주어진 숫자의 이진 표현의 디지털 합계 및 비트 벡터의 ℓ₁ 노름이다. 이 이진 사례에서는 개체수 개수, 팝카운트, 측면 합계, 또는 비트 합산이라고도 불린다.
해밍 가중치 역사 및 사용법
해밍 가중치는 미국의 수학자 리처드 해밍의 이름을 따서 명명되었지만, 그가 이 개념을 고안한 것은 아니다. 이진 숫자의 해밍 가중치는 이미 1899년에 제임스 W. L. 글래셔가 파스칼의 삼각형의 한 행에 있는 홀수 이항 계수의 개수에 대한 공식을 제시하기 위해 사용했다. 어빙 S. 리드는 1954년에 이진 사례에서 해밍 가중치와 동일한 개념을 도입했다.
해밍 가중치는 정보 이론, 부호 이론, 암호학을 포함한 여러 분야에서 사용된다. 해밍 가중치 적용의 예는 다음과 같다.
해밍 가중치 효율적인 구현
비트 배열의 개체수 개수는 암호화 및 기타 응용 부문에서 종종 필요하다. 두 단어 A와 B의 해밍 거리는 A XOR B의 해밍 가중치로 계산할 수 있다.
이를 효율적으로 구현하는 방법에 대한 문제는 널리 연구되어 왔다. 계산을 위한 단일 연산 또는 비트 벡터에 대한 병렬 연산이 일부 프로세서에서 사용 가능하다. 이러한 기능이 없는 프로세서의 경우, 알려진 최상의 솔루션은 트리 패턴으로 개수를 추가하는 것을 기반으로 한다. 예를 들어, 16비트 이진수 a = 0110 1100 1011 1010에서 1비트의 개수를 세기 위해 다음 연산을 수행할 수 있다.
여기서 연산은 C 프로그래밍 언어와 같으므로, X >> Y는 X를 Y비트만큼 오른쪽으로 시프트하는 것을 의미하고, X & Y는 X와 Y의 비트 AND를 의미하며, +는 일반적인 덧셈이다. 이 문제에 대해 알려진 최상의 알고리즘은 위에 설명된 개념을 기반으로 하며 다음과 같다.
해밍 가중치 효율적인 구현
위의 구현은 알려진 모든 알고리즘 중에서 최악의 경우에 가장 좋은 성능을 보인다. 그러나 값이 0이 아닌 비트가 거의 없을 것으로 예상되는 경우, 한 번에 하나씩 비트를 세는 알고리즘을 사용하는 것이 더 효율적일 수 있다. 웨그너(Wegner)가 1960년에 설명했듯이, x와 x-1의 비트 AND는 최하위 0이 아닌 비트를 0으로 만드는 것에서만 x와 다르다. 1을 빼면 가장 오른쪽의 0 문자열은 1로 바뀌고, 가장 오른쪽의 1은 0으로 바뀐다. 만약 x가 원래 n개의 1비트를 가졌다면, 이 연산을 n번만 반복하면 x는 0이 될 것이다. 다음 구현은 이 원리에 기반한다.
여기서 흥미로운 점은 팝카운트, FFS 및 CLZ 간의 밀접한 관계이다.
더 많은 메모리 사용이 허용된다면, 위 방법보다 해밍 가중치를 더 빠르게 계산할 수 있다. 무제한 메모리로는 모든 64비트 정수의 해밍 가중치를 저장하는 큰 조회 테이블을 만들 수 있다. 모든 16비트 정수의 해밍 함수 조회 테이블을 저장할 수 있다면, 모든 32비트 정수의 해밍 가중치를 계산하기 위해 다음을 수행할 수 있다.
재귀적 알고리즘은 도노번(Donovan)과 커니핸(Kernighan)에 의해 제시되었다.
뮬라(Muła) 외는 popcount64b의 벡터화 버전이 전용 명령어(예: x64 프로세서의 popcnt)보다 빠르게 실행될 수 있음을 보여주었다.
할리-실(Harley–Seal) 알고리즘은 정수 연산만 필요로 하면서도 가장 빠른 알고리즘 중 하나이다.
해밍 가중치 최소 가중치
오류 정정 부호에서 코드의 최소 해밍 가중치(일반적으로 코드의 최소 가중치 wmin이라고 함)는 가장 낮은 가중치를 가진 비영 코드 워드의 가중치이다. 코드 워드의 가중치 w는 워드에 있는 1의 개수이다. 예를 들어, 워드 11001010의 가중치는 4이다.
선형 블록 코드에서 최소 가중치는 최소 해밍 거리 (dmin)이기도 하며 코드의 오류 수정 능력을 정의한다. 만약 wmin = n이면, dmin = n이고 코드는 최대 dmin/2개의 오류를 수정한다.
해밍 가중치 언어 지원
일부 C 컴파일러는 비트 개수 기능을 제공하는 내장 함수를 제공한다. 예를 들어, GCC (2004년 4월 버전 3.4부터)는 사용 가능한 경우 프로세서 명령어를 사용하거나 그렇지 않은 경우 효율적인 라이브러리 구현을 사용하는 내장 함수 __builtin_popcount를 포함한다. LLVM-GCC는 2005년 6월 버전 1.5부터 이 함수를 포함했다.
C++ 표준 라이브러리에서 비트 배열 데이터 구조인 bitset은 설정된 비트 수를 세는 count() 메서드를 가지고 있다. C++20에서는 새로운 헤더 <bit>가 추가되었으며, 부호 없는 정수형 인수를 받는 함수 std::popcount와 std::has_single_bit를 포함한다.
자바에서는 확장 가능한 비트 배열 데이터 구조인 BitSet에 설정된 비트 수를 세는 BitSet.cardinality() 메서드가 있다. 또한, 기본 32비트 및 64비트 정수의 비트 수를 세는 Integer.bitCount(int) 및 Long.bitCount(long) 함수가 있다. 또한, BigInteger 임의 정밀도 정수 클래스에도 비트 수를 세는 BigInteger.bitCount() 메서드가 있다.
해밍 가중치 언어 지원
파이썬에서 int 타입은 설정된 비트 수를 세는 bit_count() 메서드를 가지고 있다. 이 기능은 2021년 10월에 출시된 파이썬 3.10에서 도입되었다.
커먼 리스프에서 함수 logcount는 음수가 아닌 정수가 주어지면 1비트의 수를 반환한다. (음의 정수의 경우 2의 보수 표기법에서 0비트의 수를 반환한다.) 두 경우 모두 정수는 BIGNUM일 수 있다.
GHC 7.4부터 하스켈 기본 패키지에는 Bits 클래스의 인스턴스인 모든 타입에 대해 사용 가능한 popCount 함수가 있다. (Data.Bits 모듈에서 사용 가능)
SQL 언어의 MySQL 버전은 BIT_COUNT()를 표준 함수로 제공한다.
포트란 2008은 정수(또는 정수 배열) 내의 0이 아닌 비트 수를 반환하는 표준, 내장, 요소 함수 popcnt를 가지고 있다.
일부 프로그래밍 가능한 과학용 포켓 계산기에는 설정된 비트 수를 계산하는 특별한 명령이 있다. 예를 들어, HP-16C에는 #B가 있다.
프리 파스칼은 버전 3.0부터 popcnt를 구현한다.
해밍 가중치 더 읽어보기
Schroeppel, Richard C.; Orman, Hilarie K. (1972년 2월 29일). 〈compilation〉《HAKMEM》 (report). By Beeler, Michael; Gosper, Ralph William; Schroeppel, Richard C. 매사추세츠 공과대학교 인공지능 연구소, 매사추세츠 공과대학교, Cambridge, Massachusetts, USA. MIT AI Memo 239.  (Item 169: PDP/6-10용 개체수 개수 어셈블리 코드.)
트랜스퓨터
트랜스퓨터(transputer)는 1980년대에 병렬 컴퓨팅을 위해 고안된 선구적인 마이크로프로세서 시리즈이다. 이를 지원하기 위해 각 트랜스퓨터는 자체 통합 메모리와 다른 트랜스퓨터와 데이터를 교환하기 위한 직렬 통신 링크를 가지고 있었다. 이들은 영국 브리스틀에 본사를 둔 반도체 회사인 인모스에 의해 설계 및 생산되었다.
1980년대 후반 한동안 많은 사람들은 트랜스퓨터를 컴퓨팅 미래를 위한 다음의 위대한 디자인으로 여겼다. 트랜스퓨터가 이러한 기대를 충족시키지는 못했지만, 트랜스퓨터 아키텍처는 컴퓨터 구조에 대한 새로운 아이디어를 불러일으키는 데 매우 큰 영향을 미쳤으며, 이 중 일부는 현대 시스템에서 다른 형태로 다시 나타났다.
트랜스퓨터 배경
1980년대 초, 기존의 중앙 처리 장치(CPU)는 성능 한계에 도달한 것처럼 보였다. 그때까지 제조의 어려움으로 인해 칩에 넣을 수 있는 회로의 양이 제한되었다. 제조 공정의 지속적인 개선으로 이러한 제약은 대부분 사라졌다. 10년 안에 칩은 설계자가 어떻게 사용해야 할지 모르는 더 많은 회로를 담을 수 있게 되었다. 전통적인 복잡 명령어 집합 컴퓨터(CISC) 설계는 성능 정체에 도달했고, 이를 극복할 수 있을지 불분명했다.
앞으로 나아갈 유일한 방법은 병렬성의 사용을 늘리는 것, 즉 여러 CPU가 동시에 여러 작업을 해결하기 위해 함께 작동하는 것이었다. 이는 이러한 기계가 여러 작업을 동시에 실행할 수 있는지에 달려 있었으며, 이 과정을 다중작업이라고 불렀다. 이것은 일반적으로 이전 마이크로프로세서 설계에서는 너무 어려웠지만, 최근 설계에서는 효과적으로 달성할 수 있었다. 미래에는 이것이 모든 운영체제(OS)의 특징이 될 것이 분명했다.
트랜스퓨터 배경
대부분의 다중작업 설계의 부수 효과는 물리적으로 다른 CPU에서 프로세스를 실행할 수 있다는 것이며, 이 경우 이를 다중 처리라고 한다. 다중 처리를 위해 저렴한 CPU를 제작하면 더 빠른 CPU 설계를 사용하는 것보다 잠재적으로 훨씬 저렴하게 더 많은 CPU를 추가하여 기계의 속도를 높일 수 있었다.
최초의 트랜스퓨터 설계는 컴퓨터 과학자 데이비드 메이와 통신 컨설턴트 로버트 밀른이 담당했다. 1990년, 메이는 사우샘프턴 대학교에서 명예 이학박사 학위를 받았고, 이어서 1991년 왕립학회 회원으로 선출되었으며 1992년에는 영국 물리학회 패터슨 메달을 수상했다. 당시 인모스의 선임 엔지니어였던 토니 퍼지는 T414 트랜스퓨터에 대한 공로로 1987년 필립 공 디자이너상을 수상했다.
트랜스퓨터 설계
트랜스퓨터는 병렬 컴퓨팅 시스템에서 사용되도록 특별히 설계된 최초의 범용 마이크로프로세서였다. 목표는 전력과 비용 면에서 다양한 칩 패밀리를 생산하여 완전한 병렬 컴퓨터를 구성할 수 있도록 연결하는 것이었다. 이름은 "트랜지스터(transistor)"와 "컴퓨터(computer)"에서 따왔는데, 이는 개별 트랜스퓨터가 수행할 역할을 나타내기 위해 선택되었다. 초기 설계에서 트랜지스터가 사용되었듯이, 더 큰 통합 시스템에서 기본 구성 요소로 사용될 것이었다.
원래 계획은 트랜스퓨터의 단가가 몇 달러에 불과하게 만드는 것이었다. 인모스는 트랜스퓨터가 컴퓨터의 주 CPU로 작동하는 것부터 같은 기계의 디스크 드라이브용 채널 컨트롤러로 작동하는 것까지 실질적으로 모든 곳에 사용될 것으로 보았다. 예를 들어, 전통적인 기계에서는 디스크가 액세스되지 않을 때 디스크 컨트롤러의 처리 능력이 유휴 상태였다. 대조적으로 트랜스퓨터 시스템에서는 이러한 트랜스퓨터의 여유 사이클을 다른 작업에 사용할 수 있어 기계의 전체 성능을 크게 향상시킬 수 있었다.
트랜스퓨터 설계
트랜스퓨터는 온칩 메모리가 커서 본질적으로 메모리 내 프로세서였다. 단일 트랜스퓨터라도 자체적으로 작동하는 데 필요한 모든 회로를 가지고 있었는데, 이는 마이크로컨트롤러에서 더 흔히 볼 수 있는 기능이었다. 의도는 트랜스퓨터를 가능한 한 쉽게 연결할 수 있도록 하는 것이었으며, 복잡한 버스나 메인보드가 필요 없었다. 전력과 간단한 클럭 신호만 공급하면 되었고, 그 외에는 거의 필요 없었다. 랜덤 액세스 메모리(RAM), RAM 컨트롤러, 버스 지원, 심지어 실시간 운영체제(RTOS)까지 모두 내장되어 있었다. 이런 방식으로, 마지막 트랜스퓨터는 당시 떠오르는 SoC 시장에서 단일 재사용 가능한 마이크로 코어(RMC)였다.
트랜스퓨터 설계
초기 트랜스퓨터는 작은 면적에서 높은 성능을 달성하기 위해 매우 간단하고 다소 특이한 아키텍처를 사용했다. 마이크로코드를 데이터 경로를 제어하는 주요 방법으로 사용했지만, 당시의 다른 설계와 달리 많은 명령이 실행하는 데 단일 사이클만 소요되었다. 명령어 명령 코드는 마이크로코드 고정 기억 장치(ROM)의 진입점으로 사용되었으며, ROM의 출력은 데이터 경로에 직접 전달되었다. 다중 사이클 명령의 경우, 데이터 경로가 첫 번째 사이클을 수행하는 동안 마이크로코드는 두 번째 사이클에 대한 네 가지 가능한 옵션을 디코딩했다. 이 옵션 중 어느 것이 실제로 사용될지에 대한 결정은 첫 번째 사이클이 끝날 무렵에 이루어질 수 있었다. 이로 인해 아키텍처를 일반적으로 유지하면서도 매우 빠른 작동이 가능했다.
트랜스퓨터 설계
20 MHz의 클럭 속도는 그 시대에 상당히 높았고, 설계자들은 그렇게 빠른 클럭 신호를 보드에 분배하는 실용성에 대해 매우 우려했다. 5 MHz의 더 느린 외부 클럭이 사용되었고, 이는 위상동기회로(PLL)를 사용하여 필요한 내부 주파수로 곱해졌다. 내부 클럭은 실제로 네 개의 겹치지 않는 위상을 가졌으며, 설계자들은 원하는 어떤 조합이든 자유롭게 사용할 수 있었으므로, 트랜스퓨터가 실제로는 80 MHz로 작동했다고 주장할 수도 있다. 동적 논리는 면적을 줄이고 속도를 높이기 위해 설계의 여러 부분에서 사용되었다. 안타깝게도 이러한 방법은 자동 시험 패턴 생성 스캔 테스트와 결합하기 어려워 이후 설계에서는 선호되지 않게 되었다.
프렌티스 홀은 트랜스퓨터의 일반적인 원리에 관한 책을 출판했다.
트랜스퓨터 설계
트랜스퓨터의 기본 설계에는 "os-link"로 알려진 직렬 통신이 포함되어 있었는데 이를 통해 최대 4개의 다른 트랜스퓨터와 각각 5, 10 또는 20 Mbit/s로 통신할 수 있었으며, 이는 1980년대에는 매우 빠른 속도였다. 어떤 수의 트랜스퓨터도 링크(수십 미터까지 연결 가능)를 통해 연결되어 하나의 컴퓨팅 팜을 형성할 수 있었다. 가상의 데스크톱 기계는 "저가형" 트랜스퓨터 두 개가 직렬 라인의 일부에서 입출력(I/O) 작업을 처리하고 (적절한 하드웨어에 연결됨) 다른 라인에서는 CPU 역할을 하는 더 큰 사촌과 통신할 수 있었다.
이러한 방식으로 구축될 수 있는 시스템의 크기에는 제한이 있었다. 각 트랜스퓨터가 고정된 지점 대 지점 레이아웃으로 다른 트랜스퓨터에 연결되어 있었기 때문에, 더 먼 트랜스퓨터로 메시지를 보내려면 라인의 각 칩이 메시지를 중계해야 했다. 이는 링크를 통한 각 "홉"마다 지연을 유발하여 대규모 네트워크에서 긴 지연을 초래했다. 이 문제를 해결하기 위해 인모스는 최대 32개의 트랜스퓨터(또는 스위치)를 훨씬 더 큰 네트워크로 연결하는 제로 지연 스위치를 제공했다.
트랜스퓨터 설계
트랜스퓨터는 대부분의 컴퓨터처럼 메모리에서 부팅할 수 있었지만, 네트워크 링크를 통해서도 부팅할 수 있었다. 칩의 특수 핀인 BootFromROM은 어떤 방법을 사용해야 하는지를 나타냈다. 칩이 재설정될 때 BootFromROM이 활성화되면 메모리 상단에서 2바이트 떨어진 명령부터 처리를 시작했는데, 이는 일반적으로 부팅 코드로 역방향 점프를 수행하는 데 사용되었다. 이 핀이 활성화되지 않으면 칩은 대신 어떤 네트워크 링크에서든 바이트가 수신되기를 기다렸다. 수신되는 첫 번째 바이트는 뒤따를 코드의 길이를 나타냈다. 다음 바이트들은 낮은 메모리에 복사된 다음 해당 바이트 수가 수신되면 점프되었다.
트랜스퓨터 설계
이 시스템의 일반적인 개념은 하나의 트랜스퓨터가 연결된 여러 트랜스퓨터를 포함하는 시스템을 부팅하는 중앙 권한 역할을 하는 것이었다. 선택된 트랜스퓨터는 BootFromROM이 영구적으로 활성화되어 시작 시 ROM에서 부팅 프로세스를 실행하기 시작했다. 다른 트랜스퓨터는 BootFromROM이 낮게 연결되어 단순히 기다렸다. 로더는 중앙 트랜스퓨터를 부팅한 다음, 네트워크의 다른 트랜스퓨터로 부팅 코드를 보내기 시작했으며, 각 트랜스퓨터로 보내는 코드를 사용자 정의할 수 있었다. 예를 들어, 하드 드라이브에 연결된 트랜스퓨터로 장치 드라이버를 보낼 수 있었다.
이 시스템에는 PEEK과 POKE를 위해 예약된 0과 1이라는 '특수' 코드 길이도 포함되어 있었다. 이를 통해 부팅되지 않은 트랜스퓨터의 RAM을 검사하고 변경할 수 있었다. 엿보기를 수행한 후 메모리 주소 또는 주소와 단일 데이터 워드를 사용하여 포크를 수행한 후, 트랜스퓨터는 부트스트랩을 기다리는 상태로 돌아갔다. 이 메커니즘은 일반적으로 디버깅에 사용되었다.
트랜스퓨터 설계
추가 회로가 링크를 통한 트래픽을 스케줄링했다. 통신을 기다리는 프로세스는 네트워킹 회로가 읽기 또는 쓰기를 완료하는 동안 자동으로 일시 중지되었다. 그러면 트랜스퓨터에서 실행 중인 다른 프로세스에 해당 처리 시간이 주어졌다. 실시간 및 다중 처리 작업을 개선하기 위해 두 가지 우선순위 수준이 포함되었다. 동일한 논리 시스템이 하나의 트랜스퓨터에서 실행되는 프로그램 간의 통신에 사용되었으며, 메모리의 가상 네트워크 링크로 구현되었다. 따라서 모든 입출력을 요청하는 프로그램은 작업이 완료되는 동안 자동으로 일시 중지되었는데, 이는 일반적으로 하드웨어의 중재자 역할을 하는 운영체제가 처리해야 하는 작업이었다. 트랜스퓨터의 운영체제는 스케줄링을 처리할 필요가 없었다. 칩 자체에 운영체제가 내장되어 있다고 볼 수 있었다.
트랜스퓨터 설계
이 모든 기능을 하나의 칩에 포함하기 위해 트랜스퓨터의 코어 논리는 대부분의 CPU보다 간단했다. 일부 사람들은 그 희박한 특성과 당시 바람직한 마케팅 버즈워드였기 때문에 축소 명령어 집합 컴퓨터(RISC)라고 불렀지만, 이는 마이크로코드로 심하게 구성되어 있었고, 제한된 레지스터 세트와 복잡한 메모리 대 메모리 명령어를 가지고 있었으며, 이 모든 것이 이를 확고히 CISC 진영에 놓이게 했다. 레지스터가 많은 로드/스토어 RISC CPU와 달리 트랜스퓨터는 스택처럼 작동하는 3개의 데이터 레지스터만 가지고 있었다. 또한 작업 공간 포인터는 Load Local 및 Store Local 명령어를 통해 쉽게 접근할 수 있는 일반적인 메모리 스택을 가리켰다. 이는 작업 공간 포인터를 다른 프로세스가 사용하는 메모리로 단순히 변경함으로써 매우 빠른 문맥 교환을 가능하게 했다 (이는 TMS9900과 같은 여러 동시대 설계에서 사용된 방법이다). 3개의 레지스터 스택 내용은 트랜스퓨터가 문맥 전환을 수행할 수 있을 때, Jump와 같은 특정 명령어를 지나서도 보존되지 않았다.
트랜스퓨터 명령어 세트는 명령 코드와 피연산자니블로 구성된 8비트 명령어로 이루어져 있었다. 상위 니블은 가능한 16개의 주요 명령어 코드를 포함하여, 상업화된 최소 명령어 집합 컴퓨터 중 하나였다. 하위 니블은 하나의 즉시 상수 피연산자를 포함했으며, 일반적으로 작업 공간(메모리 스택) 포인터에 대한 오프셋으로 사용되었다. 두 개의 접두어 명령어는 뒤따르는 명령어의 피연산자에 하위 니블을 접두어로 붙여 더 큰 상수를 구성할 수 있게 했다. 추가 명령어는 명령어 코드 Operate(Opr)를 통해 지원되었는데, 이는 상수 피연산자를 확장된 0-피연산자 명령 코드로 디코딩하여, 트랜스퓨터의 새로운 구현이 도입됨에 따라 거의 무한하고 쉬운 명령어 세트 확장을 제공했다.
16개의 '기본' 단일 피연산자 명령은 다음과 같다.
이 모든 명령어는 오프셋 또는 산술 상수를 나타내는 상수를 취한다. 이 상수가 16보다 작으면 이 모든 명령어가 1바이트로 코딩된다.
OPR 기본 명령어를 사용하는 첫 번째 16개의 '보조' 0-피연산자 명령어는 다음과 같다.
다중 트랜스퓨터 시스템의 프로토타이핑, 구축 및 구성을 용이하게 하기 위해 인모스는 1987년 TRAM(TRAnsputer Module) 표준을 도입했다. TRAM은 본질적으로 트랜스퓨터와 선택적으로 외부 메모리 및 주변 장치로 구성된 빌딩 블록 도터보드였으며, 전원, 트랜스퓨터 링크, 클럭 및 시스템 신호를 제공하는 간단하고 표준화된 커넥터를 갖추고 있었다. 기본 Size 1 TRAM(3.66 x 1.05인치)부터 Size 8(3.66 x 8.75인치)까지 다양한 크기의 TRAM이 정의되었다. 인모스는 ISA 버스(ISA), 마이크로채널 또는 VME버스와 같은 다양한 호스트 버스용 TRAM 메인보드를 생산했다. TRAM 링크는 10 Mbit/s 또는 20 Mbit/s로 작동한다.
트랜스퓨터 소프트웨어
트랜스퓨터는 커뮤니케이팅 시퀜셜 프로세스(CSP) 프로세스 계산에 기반한 프로그래밍 언어인 Occam을 사용하여 프로그래밍하도록 설계되었다. 트랜스퓨터는 파스칼이나 C와 같은 언어를 실행하도록 만들어진 현대의 CISC 설계보다 Occam을 실행하도록 특별히 만들어졌다. Occam은 병행성과 채널 기반의 프로세스 간 또는 프로세서 간 통신을 언어의 기본적인 부분으로 지원했다. 칩과 언어가 직접 상호 작용하는 병렬 처리 및 통신이 내장되어 있었기 때문에 장치 컨트롤러와 같은 코드를 작성하는 것이 사소한 일이 되었다. 가장 기본적인 코드조차도 I/O를 위해 직렬 포트를 감시할 수 있었고, 데이터가 없을 때는 자동으로 절전 모드로 전환되었다.
트랜스퓨터 소프트웨어
트랜스퓨터를 위한 초기 Occam 개발 환경은 인모스 D700 트랜스퓨터 개발 시스템(TDS)이었다. 이는 편집기, 컴파일러, 링커 및 (사후) 디버거를 통합한 비정통적인 통합 개발 환경이었다. TDS는 Occam으로 작성된 트랜스퓨터 애플리케이션이었다. TDS 텍스트 편집기는 코드 블록을 숨기거나 보이게 하여 코드의 구조를 더 명확하게 만들 수 있는 폴딩 편집기라는 점이 특징이었다. 불행히도, 낯선 프로그래밍 언어와 마찬가지로 낯선 개발 환경의 조합은 트랜스퓨터의 초기 인기에 아무런 도움이 되지 않았다. 나중에 인모스는 보다 전통적인 Occam 크로스 컴파일러인 Occam 2 툴셋을 출시했다.
C, 포트란, 에이다, 포스, 파스칼과 같은 더 주류적인 프로그래밍 언어의 구현은 나중에 인모스와 타사 공급업체 모두에서 출시되었다. 이들은 일반적으로 Occam과 유사한 병행성과 채널 기반 통신을 덜 우아한 방식으로 제공하는 언어 확장 또는 라이브러리를 포함했다.
트랜스퓨터는 가상 메모리를 지원하지 않아 유닉스 운영체제의 주류 변형을 포팅하는 데 어려움이 있었지만, 유닉스 계열 운영체제(예: 미닉스 및 화이트스미스의 아이드리스)의 포팅은 제작되었다. 고급 유닉스 계열 분산 운영체제인 헬리오스는 페리헬리온 소프트웨어에 의해 다중 트랜스퓨터 시스템을 위해 특별히 설계되었다.
트랜스퓨터 구현
최초의 트랜스퓨터는 1983년에 발표되었고 1984년에 출시되었다.
마이크로컨트롤러와 같은 장치로서의 역할에 따라, 온보드 RAM과 내장된 RAM 컨트롤러가 포함되어 있어 추가 하드웨어 없이 더 많은 메모리를 추가할 수 있었다. 다른 설계와 달리 트랜스퓨터는 I/O 라인을 포함하지 않았다. 이들은 기존 직렬 링크에 연결된 하드웨어로 추가되어야 했다. 기존 프로세서의 인터럽트 라인과 유사한 '이벤트' 라인이 하나 있었다. 채널로 처리되어, 프로그램은 이벤트 채널에서 '입력'할 수 있었고, 이벤트 라인이 활성화된 후에만 진행할 수 있었다.
모든 트랜스퓨터는 외부 5 MHz 클럭 입력에서 작동했다. 이것은 프로세서 클럭을 제공하기 위해 곱해졌다.
트랜스퓨터에는 메모리 관리 장치(MMU)나 가상 메모리 시스템이 포함되지 않았다.
트랜스퓨터 변형(취소된 T9000 제외)은 세 그룹으로 분류할 수 있다. 16비트 T2 시리즈, 32비트 T4 시리즈, 64비트 IEEE 754 부동소수점 지원을 갖춘 32비트 T8 시리즈이다.
트랜스퓨터 구현
프로토타입 16비트 트랜스퓨터는 S43으로, 스케줄러와 링크의 DMA 제어 블록 전송 기능이 없었다. 출시 당시 T212와 M212(후자는 온보드 디스크 컨트롤러 포함)가 16비트 제품으로 제공되었다. T212는 17.5 및 20 MHz 프로세서 클럭 속도 등급으로 제공되었다. T212는 온칩 RAM이 2 KB에서 4 KB로 확장된 T222로 대체되었고, 나중에는 T225로 대체되었다. T225는 디버깅-브레이크포인트 지원(명령어 "J 0" 확장)과 T800 명령어 세트의 일부 추가 명령어를 추가했다. T222와 T225 모두 20 MHz로 작동했다.
트랜스퓨터 구현
1985년 10월에 출시된 T414는 900,000개의 트랜지스터에 해당하는 기능을 사용했고 1.5 마이크로미터 공정 기술로 제조되었다. 이 칩은 32비트 설계로, 32비트 데이터 단위를 처리하고 최대 4 GB의 주 메모리를 주소 지정할 수 있었다. 원래 첫 번째 32비트 변형은 T424였으나, 제조상의 어려움으로 인해 4 KB 대신 2 KB 온보드 RAM을 갖춘 T414로 재설계되었다. T414는 15 MHz 및 20 MHz 버전으로 제공되었다. RAM은 나중에 T425(20, 25, 30 MHz 버전)에서 4 KB로 복원되었으며, T425는 또한 J 0 브레이크포인트 지원과 추가 T800 명령어를 추가했다. 1989년 9월에 출시된 T400은 2 KB와 4개 대신 2개의 링크를 가진 저가형 20 MHz T425 파생 제품으로, 임베디드 시스템 시장을 겨냥했다.
트랜스퓨터 구현
1987년에 도입된 2세대 T800 트랜스퓨터는 확장된 명령어 세트를 가졌다. 가장 중요한 추가 사항은 64비트 부동소수점 장치(FPU)와 부동 소수점을 위한 3개의 추가 레지스터였는데, IEEE 754-1985 부동 소수점 표준을 구현했다. 또한 4 KB의 온보드 RAM을 가졌고 20 또는 25 MHz 버전으로 제공되었다. 나중에 T801과 T805에 브레이크포인트 지원이 추가되었는데, 전자는 성능 향상을 위해 별도의 주소 및 데이터 버스를 특징으로 했다. T805는 나중에 30 MHz 부품으로도 제공되었다.
더 많은 RAM, 더 많고 빠른 링크, 추가 명령어, 개선된 마이크로코드를 가질 향상된 T810이 계획되었지만, 1990년경에 취소되었다.
인모스는 또한 C004 32방향 링크 스위치 및 트랜스퓨터 링크를 8비트 데이터 버스와 인터페이스할 수 있도록 하는 C011 및 C012 "링크 어댑터"와 같은 트랜스퓨터 프로세서를 위한 다양한 지원 칩을 생산했다.
트랜스퓨터 구현
원래 인모스 전략의 일부는 CPU를 매우 작고 저렴하게 만들어 다른 논리와 하나의 장치로 결합할 수 있도록 하는 것이었다. 시스템 온 칩(SoC)이 지금은 유비쿼터스이지만, 이 개념은 1980년대 초반에는 거의 들어본 적이 없었다. 1983년경 M212와 TV-toy라는 두 가지 프로젝트가 시작되었다. M212는 ST 506 및 ST 412 슈가트 표준용 디스크 컨트롤러를 추가한 표준 T212 코어에 기반을 두었다. TV-toy는 비디오 게임 콘솔의 기반이 될 예정이었고 인모스와 싱클레어 리서치 간의 공동 프로젝트였다.
트랜스퓨터 구현
T212 및 T414/T424 트랜스퓨터의 링크에는 하드웨어 DMA 엔진이 있어 다른 프로세스의 실행과 병렬로 전송이 이루어질 수 있었다. CPU가 이러한 전송을 처리하는 T400이라는 디자인 변형(나중에 같은 이름의 트랜스퓨터와 혼동하지 말 것)이 설계되었다. 4개의 링크 엔진이 전체 CPU와 거의 같은 크기였기 때문에 장치 크기가 상당히 줄어들었다. T400은 당시 시스템 온 실리콘(SOS) 장치라고 불리던 것, 즉 현재는 시스템 온 칩(SoC)으로 불리는 장치의 코어로 사용될 예정이었다. 이 디자인이 TV-toy의 일부를 형성할 예정이었다. 이 프로젝트는 1985년에 취소되었다.
트랜스퓨터 구현
이전 SoC 프로젝트가 제한적인 성공을 거두었지만(M212는 한동안 판매되었다), 많은 설계자들은 여전히 그 개념을 굳게 믿었고 1987년에 새로운 프로젝트인 T100이 시작되었다. 이 프로젝트는 트랜스퓨터 CPU의 8비트 버전과 상태 기계 기반의 구성 가능한 로직을 결합했다. 트랜스퓨터 명령어 세트는 8비트 명령어에 기반을 두고 있으며 8비트의 배수인 모든 워드 크기와 쉽게 사용할 수 있다. T100의 목표 시장은 퓨처버스(Futurebus)와 같은 버스 컨트롤러 및 표준 링크 어댑터(C011 등)의 업그레이드였다. 이 프로젝트는 T840(나중에 T9000의 기반이 됨)이 시작되면서 중단되었다.
TPCORE는 FPGA에서 실행되는 os-링크를 포함한 트랜스퓨터 구현이다.
트랜스퓨터 구현
인모스는 T9000(개발 중에는 H1이라는 코드명)을 도입하여 T8 시리즈 트랜스퓨터의 성능을 향상시켰다. T9000은 T800의 대부분의 기능을 공유했지만, 설계의 여러 부분을 하드웨어로 옮기고 슈퍼스칼라 지원을 위한 여러 기능을 추가했다. 이전 모델과 달리 T9000은 RAM 대신 실제 16 KB의 고속 CPU 캐시 (무작위 교체 사용)를 가졌지만, 이를 메모리로 사용할 수 있도록 허용했으며, 이 모든 것을 처리하는 MMU와 유사한 기능(PMI라고 불림)을 포함했다. 더 빠른 속도를 위해 T9000은 이전 버전의 3개 대신 스택의 상위 32개 위치를 캐싱했다.
T9000은 더욱 빠른 속도를 위해 5단계 파이프라인을 사용했다. 흥미로운 추가 기능은 캐시에서 명령어를 수집하여 최대 8바이트의 더 큰 패키지로 묶어 파이프라인에 더 빠르게 공급하는 그루퍼였다. 그런 다음 그룹은 더 빠른 CPU에서 작동하는 단일 더 큰 명령어처럼 한 사이클에 완료되었다.
링크 시스템은 새로운 100 MHz 모드로 업그레이드되었지만, 이전 시스템과 달리 링크는 더 이상 하향 호환되지 않았다. 이 새로운 패킷 기반 링크 프로토콜은 DS-링크라고 불렸으며, 나중에 IEEE 1355 직렬 상호 연결 표준의 기반이 되었다. T9000은 또한 VCP(Virtual Channel Processor)라고 불리는 링크 라우팅 하드웨어를 추가하여 링크를 지점 간(point-to-point)에서 진정한 네트워크로 변경하여 링크에 어떤 수의 가상 채널이든 생성할 수 있도록 했다. 이는 프로그램이 더 이상 연결의 물리적 레이아웃을 알 필요가 없다는 것을 의미했다. C104 32방향 크로스바 스위치 및 C101 링크 어댑터와 같은 다양한 DS-링크 지원 칩도 개발되었다.
T9000 개발의 긴 지연은 출시될 무렵에는 이미 더 빠른 로드/스토어 설계가 이를 능가하고 있었다는 것을 의미했다. T800보다 10배 빠른 성능 목표를 지속적으로 달성하지 못했다. 프로젝트가 마침내 취소되었을 때에도 50 MHz에서 약 36 MIPS만 달성하고 있었다. 생산 지연은 T9000을 위한 최고의 호스트 아키텍처가 오버헤드 프로젝터였다는 농담을 낳았다.
이것은 인모스에게는 너무나 큰 부담이었고, 개발을 계속할 자금이 없었다. 이 무렵 회사는 SGS-Thomson(현재 ST마이크로일렉트로닉스)에 매각되었는데, 이 회사는 임베디드 시스템 시장에 중점을 두었으며 결국 T9000 프로젝트는 중단되었다. 그러나 임베디드 애플리케이션용으로 완전히 재설계된 32비트 트랜스퓨터인 ST20 시리즈가 나중에 T9000을 위해 개발된 일부 기술을 사용하여 생산되었다. ST20 코어는 셋톱박스 및 GPS 애플리케이션용 칩셋에 통합되었다.
엄밀히 말하면 트랜스퓨터는 아니지만, ST20은 T4와 T9의 영향을 많이 받았으며, 트랜스퓨터의 마지막이라고 할 수 있는 T450의 기반을 형성했다. ST20의 목표는 당시 떠오르던 SoC 시장에서 재사용 가능한 코어가 되는 것이었다. ST20의 원래 이름은 RMC(Reusable Micro Core)였다. 아키텍처는 마이크로코드 제어 데이터 경로를 갖춘 원래 T4 아키텍처를 느슨하게 기반으로 했다. 그러나 이는 설계 언어로 VHDL을 사용하고 최적화된(그리고 다시 작성된) 마이크로코드 컴파일러를 사용하여 완전히 재설계되었다. 이 프로젝트는 T9가 많은 애플리케이션에 너무 클 것이라는 점이 인식되었던 1990년에 처음 구상되었다. 실제 설계 작업은 1992년 중반에 시작되었다. 트랩을 통해 소프트웨어로 구현된 복잡한 명령어를 가진 매우 간단한 RISC 스타일 CPU부터 토마술로 알고리즘과 유사한 개념의 다소 복잡한 슈퍼스칼라 설계에 이르기까지 여러 시험 설계가 수행되었다. 최종 설계는 원래 T4 코어와 매우 유사했지만, 성능 향상을 위해 일부 간단한 명령어 그룹화와 작업 공간 캐시가 추가되었다.
트랜스퓨터 채택
트랜스퓨터는 많은 동시대 설계에 비해 간단하면서도 강력했지만, CPU와 마이크로컨트롤러 역할 모두에서 보편적으로 사용되겠다는 목표에 거의 도달하지 못했다. 마이크로컨트롤러 시장에서는 비용이 가장 중요한 고려 사항인 8비트 기계가 시장을 지배했다. 여기서는 심지어 T2도 대부분의 사용자에게 너무 강력하고 비쌌다.
컴퓨터 데스크톱 및 워크스테이션 분야에서 트랜스퓨터는 상당히 빨랐다(20 MHz에서 약 1천만 초당 명령 수(MIPS)로 작동). 이는 1980년대 초반에는 뛰어난 성능이었지만, 부동소수점 장치(FPU)를 장착한 T800이 출시될 무렵에는 다른 RISC 설계가 이를 능가했다. 이는 계획대로 여러 트랜스퓨터를 사용했다면 크게 완화될 수 있었겠지만, T800은 도입 당시 개당 약 400달러였으므로 가격 대비 성능비가 좋지 않았다. 트랜스퓨터 기반 워크스테이션 시스템은 거의 설계되지 않았으며, 가장 주목할 만한 것은 아마도 아타리 트랜스퓨터 워크스테이션일 것이다.
트랜스퓨터 채택
트랜스퓨터는 1980년대 후반 여러 공급업체가 트랜스퓨터 기반 시스템을 생산했던 대규모 병렬 컴퓨터 분야에서 더 성공적이었다. 여기에는 메이코 사이언티픽 (전 인모스 직원들이 설립), 플로팅 포인트 시스템즈, 파르지텍 및 파르시스가 포함되었다. 여러 영국 학술 기관은 브리스틀 폴리테크닉의 브리스틀 트랜스퓨터 센터와 에든버러 대학교의 에든버러 동시 슈퍼컴퓨터 프로젝트를 포함하여 트랜스퓨터 기반 병렬 시스템 적용에 대한 연구 활동을 시작했다. 또한 DESY의 하드론 전자 링 시설(HERA) 충돌기용 고에너지 물리학 ZEUS 실험의 데이터 수집 및 2차 트리거 시스템은 여러 하위 시스템으로 나뉜 300개 이상의 동기식 클록 트랜스퓨터 네트워크를 기반으로 했다. 이들은 맞춤형 검출기 전자 장치의 판독을 제어하고 물리학 이벤트 선택을 위한 재구성 알고리즘을 실행했다.
트랜스퓨터 채택
트랜스퓨터의 병렬 처리 능력은 1990년대 초 세계 최대 인쇄 회사인 R. R. 도넬리 & 선즈에 의해 영상 처리를 위해 상업적으로 활용되었다. 인쇄 준비를 위해 디지털 이미지를 빠르게 변환하는 능력은 이 회사에 경쟁업체보다 상당한 우위를 제공했다. 이 개발은 R. R. 도넬리 기술 센터의 마이클 벵스턴이 주도했다. 몇 년 안에 데스크톱 컴퓨터의 처리 능력만으로도 이 회사를 위한 맞춤형 다중 처리 시스템의 필요성이 없어졌다.
독일 회사 Jäger Messtechnik는 초기 ADwin 실시간 데이터 준비 및 제어 제품에 트랜스퓨터를 사용했다.
프랑스 회사는 최대 144개의 T800 및 T400 트랜스퓨터를 갖춘 아르키펠 볼복스 슈퍼컴퓨터를 구축했다. 이 컴퓨터는 UNIX를 실행하는 실리콘 그래픽스 인디고2와 볼복스 백플레인에 인터페이스하는 특수 카드로 제어되었다.
트랜스퓨터는 지멘스/텍트로닉스 K1103과 같은 프로토콜 분석기와 군사 애플리케이션에서도 사용되었다. 군사 애플리케이션에서는 어레이 아키텍처가 레이더와 같은 애플리케이션에 적합했으며, (1980년대에 고속이었던) 직렬 링크는 하위 시스템 통신에서 비용과 무게를 절약하는 데 큰 도움이 되었다.
트랜스퓨터 채택
트랜스퓨터는 또한 가상 현실 관련 제품에서도 등장했다. 브리스틀의 Division Limited에서 만든 ProVision 100 시스템이 그 예인데, 인텔 i860, 80486/33, 도시바 HSP 프로세서와 함께 T805 또는 T425 트랜스퓨터를 사용하여 렌더링 엔진을 구현했고, 이 엔진은 PC, 선 SPARC스테이션 또는 VAX 시스템에서 서버로 접근할 수 있었다.
아스트리움 새틀라이트와 프랑스 국립 우주 연구 센터가 개발하고 피카르 위성 등에서 사용되는 유럽의 초소형 위성 플랫폼인 미리아드는 T805를 기반으로 하며 약 4 MIPS의 성능을 제공하고 2015년까지 생산될 예정이다.
통신과 연산의 비동기 작동은 베인의 "비동기 다항식 근 찾기" 알고리즘과 같은 비동기 알고리즘의 개발을 가능하게 했다. 비동기 알고리즘 분야와 현재 알고리즘의 비동기 구현은 엑사스케일 컴퓨팅으로의 전환에 핵심적인 역할을 할 가능성이 있다.
고에너지 천이 탐색기 2(HETE-2) 우주선은 4개의 T805 트랜스퓨터와 8개의 DSP56001을 사용하여 약 1억 초당 명령 수(MIPS)의 성능을 제공했다.
트랜스퓨터 유산
내부 병렬 처리의 증가는 기존 CPU 설계 개선의 원동력 중 하나였다. (트랜스퓨터에서 사용되는) 명시적인 스레드 수준 병렬 처리 대신, CPU 설계는 명령어 수준에서 암시적인 병렬 처리를 활용하여 데이터 의존성을 위해 코드 시퀀스를 검사하고 여러 독립적인 명령어를 다른 실행 장치에 발행했다. 이를 슈퍼스칼라 처리라고 한다. 슈퍼스칼라 프로세서는 순차적으로 구성된 코드 조각의 실행을 최적화하는 데 적합하다. 슈퍼스칼라 처리와 투기적 실행의 조합은 기존 코드 본체(대부분 파스칼, 포트란, C, C++로 작성됨)에서 상당하고 규칙적인 성능 향상을 제공했다. 기존 코드의 이러한 실질적이고 규칙적인 성능 향상으로 인해 더 많은 태스크 수준 병렬 처리를 노출하는 언어나 코딩 스타일로 소프트웨어를 다시 작성할 유인이 거의 없었다.
트랜스퓨터 유산
그럼에도 불구하고 협력하는 동시 프로세서 모델은 21세기 슈퍼컴퓨터 설계를 지배하는 클러스터 컴퓨팅 시스템에서 여전히 찾아볼 수 있다. 트랜스퓨터 아키텍처와 달리, 이러한 시스템의 처리 장치는 일반적으로 상당한 양의 메모리 및 디스크 저장 장치에 접근할 수 있는 슈퍼스칼라 CPU를 사용하며, 기존 운영 체제 및 네트워크 인터페이스를 실행한다. 더 복잡한 노드로 인해 이러한 시스템에서 병렬 처리를 조정하는 데 사용되는 소프트웨어 아키텍처는 일반적으로 트랜스퓨터 아키텍처보다 훨씬 더 무겁다.
근본적인 트랜스퓨터의 동기는 남아 있었지만, 트랜지스터 수가 반복적으로 두 배로 늘어나면서 20년 이상 가려져 있었다. 필연적으로 마이크로프로세서 설계자들은 결국 더 많은 물리적 자원을 사용할 방법을 다 소진했고, 거의 동시에 기술 스케일링이 한계에 부딪히기 시작했다. 전력 소비, 즉 열 방출 요구 사항으로 인해 추가적인 클럭 속도 증가는 불가능해졌다. 이러한 요인들은 산업을 인모스가 제안한 것과 본질적으로 크게 다르지 않은 해결책으로 이끌었다.