트랜스푸터
Transputer트랜스푸터는 병렬 컴퓨팅을 목적으로 한 1980년대의 선구적인 마이크로프로세서 시리즈입니다.이를 지원하기 위해 각 트랜스푸터는 다른 트랜스푸터와 데이터를 교환하기 위한 자체 메모리 및 시리얼 통신 링크를 가지고 있습니다.그것들은 영국 [1]브리스톨에 본사를 둔 반도체 회사인 Inmos에 의해 설계되고 생산되었다.
1980년대 후반, 많은 사람들은[2] 트랜스푸터가 컴퓨팅의 미래를 위한 차세대 훌륭한 설계라고 생각했습니다.트랜스푸터가 이러한 기대를 달성하지는 못했지만, 트랜스푸터 아키텍처는 컴퓨터 아키텍처의 새로운 아이디어를 자극하는 데 큰 영향을 미쳤으며, 그 중 일부는 현대 [3]시스템에서 다른 형태로 재등장하고 있습니다.
배경
1980년대 초반, 기존의 중앙 처리 장치(CPU)는 성능 제한에 도달한 것으로 보입니다.그 당시까지는 제조상의 어려움으로 인해 칩에 장착할 수 있는 회로의 양이 제한되었습니다.제조 공정의 지속적인 개선으로 이러한 제약이 대부분 해소되었습니다.10년 안에 칩은 설계자가 사용법을 알고 있는 것보다 더 많은 회로를 수용할 수 있게 되었습니다.기존의 CISC(복잡한 명령어 세트 컴퓨터) 설계는 성능 안정기에 접어들었고,[4] 이를 극복할 수 있을지는 분명하지 않았습니다.
앞으로 나아갈 수 있는 유일한 방법은 병행 사용, 즉 동시에 여러 작업을 해결하기 위해 함께 작동하는 여러 CPU의 사용을 늘리는 것 같습니다.이것은 멀티태스킹이라고 불리는 프로세스를 동시에 실행할 수 있는 머신에 의존했습니다.이것은 이전의 마이크로프로세서 설계에서는 다루기가 너무 어려웠지만, 보다 최근의 설계에서는 효과적으로 달성할 수 있었습니다.이것은, 장래에 모든 operating system(OS)의 기능이 될 것이 분명했습니다.
대부분의 멀티태스킹 설계의 단점은 많은 경우 물리적으로 다른 CPU 상에서 프로세스를 실행할 수 있다는 것입니다.이 경우 멀티프로세싱이라고 불립니다.멀티프로세싱용으로 구축된 저비용 CPU는 CPU를 추가함으로써 머신의 속도를 높일 수 있습니다.이는 고속 CPU 설계를 사용하는 것보다 훨씬 저렴할 수 있습니다.
최초의 트랜스푸터 설계는 컴퓨터 과학자 David May와 통신 컨설턴트 Robert Milne에 의해 이루어졌습니다.1990년, 메이는 사우샘프턴 대학에서 명예 DSC를 받았고, 1991년 왕립학회 펠로우로 선출되었고 1992년 물리학 연구소의 패터슨 메달을 수상했습니다.당시 Inmos의 선두 엔지니어였던 Tony Fuge는 1987년 T414 트랜스푸터에 [5]대한 그의 업적으로 Prince Philip Designers 상을 받았습니다.
설계.
트랜스푸터는 병렬 컴퓨팅 시스템에서 사용하도록 특별히 설계된 최초의 범용 마이크로프로세서입니다.목표는 전력과 비용 면에서 다양한 칩 패밀리를 생산하여 완전한 병렬 컴퓨터를 구성하는 것이었습니다."트랜지스터"와 "컴퓨터"[6]에서 유래한 이 이름은 각각의 트랜지스터가 수행할 역할을 나타내기 위해 선택되었습니다. 트랜지스터의 수가 이전의 경우와 마찬가지로 기본 구성 요소로 사용됩니다.
원래 계획은 트랜스푸터를 개당 몇 달러만 지불하도록 하는 것이었다.Inmos는 컴퓨터의 메인 CPU로 동작하는 것에서부터 같은 기계에서 디스크 드라이브의 채널 컨트롤러로 동작하는 것까지 실질적으로 모든 것에 사용되는 것을 보았습니다.예를 들어 기존 시스템에서는 디스크에 액세스하지 않을 때 디스크 컨트롤러의 처리 기능이 유휴 상태였습니다.반면 트랜스푸터 시스템에서는 이들 트랜스푸터의 스페어 사이클을 다른 태스크에 사용할 수 있어 머신의 전체적인 퍼포먼스가 대폭 향상됩니다.
1대의 트랜스푸터라도, 그 자체로 동작하는 데 필요한 모든 회로를 갖추고 있습니다.이것은 마이크로컨트롤러와 관련된 일반적인 기능입니다.그 목적은 복잡한 버스나 메인보드를 사용하지 않고 트랜스푸터를 가능한 한 쉽게 연결할 수 있도록 하는 것이었습니다.전원과 간단한 클럭 신호를 공급해야 했지만, 그 외에는 RAM(랜덤 액세스 메모리), RAM 컨트롤러, 버스 지원 및 실시간 운영 체제(RTOS)가 모두 내장되어 있었습니다.
아키텍처
최초의 트랜스푸터는 매우 심플하고 다소 특이한 아키텍처를 사용하여 좁은 영역에서 높은 성능을 달성했습니다.데이터 경로를 제어하기 위한 주요 방법으로 마이크로코드를 사용했지만, 당시의 다른 설계와는 달리, 많은 명령들이 실행하는 데 한 사이클만 소요되었습니다.명령 opcode는 마이크로코드 읽기 전용 메모리(ROM)의 엔트리 포인트로 사용되며 ROM으로부터의 출력은 데이터 패스에 직접 공급됩니다.멀티사이클 명령의 경우 데이터 경로가 첫 번째 사이클을 수행하는 동안 마이크로코드가 두 번째 사이클에 대해 가능한 네 가지 옵션을 디코딩했습니다.이들 옵션 중 실제로 어떤 옵션을 사용할지에 대한 결정은 첫 번째 사이클의 종료 시점에 내려질 수 있다.이것에 의해, 아키텍처의 [7]범용성을 유지하면서, 매우 고속의 조작이 가능하게 되었습니다.
20MHz의 클럭 속도는 그 시대에 비해 상당히 높았고 설계자들은 이렇게 빠른 클럭 신호를 보드에 분배하는 것의 실용성에 대해 매우 우려했습니다.5MHz의 느린 외부 클럭이 사용되었으며, Phase-Locked Loop(PLL; 위상 잠금 루프)를 사용하여 필요한 내부 주파수까지 곱했습니다.내부 클럭에는 4개의 겹치지 않는 위상이 있으며 설계자는 원하는 조합을 자유롭게 사용할 수 있기 때문에 실제로 트랜스푸터가 80MHz로 작동했다고 주장할 수 있습니다.면적을 줄이고 속도를 높이기 위해 설계의 많은 부분에서 동적 논리가 사용되었습니다.안타깝게도 이 방법들은 자동 테스트 패턴 생성 스캔 테스트와 결합하기가 어려워서 이후 설계에서는 선호되지 않습니다.
프렌티스 홀은 트랜스푸터의 일반적인 원리에 관한 책을[8] 출판했다.
링크
트랜스포머의 기본 설계에는 "os-link"라고[9][10] 불리는 시리얼 링크가 포함되어 있어 최대 4대의 다른 트랜스포머와 통신할 수 있었습니다.각각 5, 10, 또는 20 Mbit/s로 1980년대에 비해 매우 빨랐습니다.임의의 수의 트랜스푸터를 링크(수십 미터)를 통해 연결하여 하나의 컴퓨팅 팜을 구성할 수 있습니다.가상 데스크톱 머신의 일부 시리얼 라인(적절한 하드웨어에 연결)에서 입력/출력(I/O) 태스크를 처리하는 "로우엔드" 트랜스퓨터가 2개 있을 수 있습니다.또, 다른 쪽에서는 CPU로서 기능하는 사촌과 대화합니다.
이러한 방식으로 구축할 수 있는 시스템의 크기에는 한계가 있었습니다.각 트랜스포머는 고정 포인트 투 포인트레이아웃으로 서로 링크되어 있기 때문에, 보다 멀리 있는 트랜스포머에 메시지를 송신하려면 , 회선내의 각 칩에 의해서 메세지를 릴레이 할 필요가 있습니다.이것에 의해, 링크상의 모든 「홉」에 지연이 발생해, 대규모 넷에서의 지연이 길어졌습니다.이 문제를 해결하기 위해 Inmos는 최대 32대의 트랜스푸터(또는 스위치)를 더 큰 네트워크에 연결하는 제로 지연 스위치도 제공했습니다.
기동중
대부분의 컴퓨터와 마찬가지로 트랜스푸터는 메모리에서 부팅할 수 있지만 네트워크 링크를 통해 부팅할 수도 있습니다.칩의 특수 핀인 Boot From ROM은 어떤 방법을 사용해야 하는지를 나타냅니다.Boot From의 경우ROM은 칩이 리셋되었을 때 메모리 상부에서2바이트의 명령으로 처리를 시작한다고 주장되었습니다.이 명령어는 보통 부트 코드로 역점프를 실행하기 위해 사용되었습니다.이 핀이 인식되지 않으면 칩은 네트워크 링크에서 바이트가 수신될 때까지 대기합니다.처음 수신된 바이트는 이어지는 코드 길이입니다.다음 바이트는 낮은 메모리에 복사되어 그 바이트 수가 수신되면 바로 들어갑니다.
시스템의 일반적인 개념은 연결된 다수의 트랜스푸터가 포함된 시스템을 부팅하기 위한 중앙 권한으로 1개의 트랜스푸터가 작동하도록 하는 것이었습니다.선택한 트랜스푸터에 Boot From이 있습니다.ROM은 영구적으로 단언되어 기동시에 ROM에서 부트 프로세스의 실행이 개시됩니다.다른 트랜스푸터는 Boot From을 가지고 있습니다.ROM은 낮게 묶여 있어 대기만 하면 됩니다.로더는 중앙 트랜스푸터를 기동하고, 그 후 네트워크내의 다른 트랜스푸터에 부트 코드를 송신하기 시작합니다.또, 하드 드라이브에 접속되어 있는 트랜스푸터에 디바이스 드라이버를 송신하는 등, 각 트랜스푸터에 송신되는 코드를 커스터마이즈 할 수 있습니다.
이 시스템에는 PEEK 및 POKE용으로 예약된 '특수' 코드 길이 0과 1도 포함되어 있습니다.이것에 의해, 기동하지 않은 트랜스푸터의 RAM 의 검사와 교환이 가능하게 되었습니다.주소 및 단일 워드의 데이터와 함께 메모리주소 또는 포크를 엿본 후 트랜스푸터는 부트스트랩 대기 상태로 돌아갑니다.이 메커니즘은 일반적으로 디버깅에 사용되었습니다.
스케줄러
링크상의 회선 스케줄트래픽 추가.통신 대기 프로세스는 네트워크 회로가 읽기 또는 쓰기를 완료하는 동안 자동으로 일시 중지됩니다.그 후, 트랜스푸터로 동작하고 있는 다른 프로세스에는, 그 처리 시간이 주어집니다.여기에는 실시간 및 멀티프로세서 작동을 개선하기 위한 두 가지 우선 순위가 포함되어 있습니다.메모리 내의 가상 네트워크 링크로 구현된 하나의 트랜스푸터에서 실행되는 프로그램 간의 통신에는 동일한 논리 시스템이 사용되었습니다.따라서 작업이 완료되는 동안 입력 또는 출력을 요청하는 프로그램이 자동으로 일시 중지됩니다. 이 작업은 일반적으로 운영 체제가 하드웨어의 아비터로 처리해야 하는 작업입니다.트랜스푸터의 운영체제는 스케줄링을 처리할 필요가 없었습니다.칩에 OS가 탑재되어 있는 것으로 간주할 수 있습니다.
명령 집합
이 모든 기능을 하나의 칩에 포함시키기 위해 트랜스푸터의 핵심 논리는 대부분의 CPU보다 단순했다.일부에서는 RISC(Reduced Instruction Set Computer)가 다소 희박한 특성 때문에 RISC(Reduced Instruction Set Computer)라고 부르기도 하지만, 당시 바람직한 마케팅용 유행어였기 때문에 상당히 마이크로코드화되어 있었고 레지스터 세트가 한정되어 있었으며 메모리 투 메모리 명령어가 복잡하여 모두 CISC 진영에 확고히 자리 잡고 있었습니다.레지스터 부하가 높은 RISC CPU와 달리 트랜스포머에는 스택으로 동작하는 데이터 레지스터가 3개밖에 없었습니다.또한 워크스페이스 포인터는 기존 메모리 스택을 가리키며 지시에 따라 쉽게 접근할 수 있습니다.Load Local
그리고.Store Local
이를 통해 워크스페이스 포인터를 다른 프로세스(TMS9900 등 여러 현대 디자인에서 사용되는 방법)에서 사용하는 메모리로 변경하는 것만으로 매우 빠른 컨텍스트 전환이 가능했습니다.3개의 레지스터 스택의 내용은 트랜스포머가 컨텍스트스위치를 실행할 수 있는 경우 점프 등의 특정 명령어 이후에는 유지되지 않았습니다.
트랜스푸터 명령어세트는 opcode와 operandnible에서 조립된8비트 명령어로 구성되어 있습니다.상부 니블에는 16개의 기본 명령 코드가 포함되어 있어 상용화된 몇 안 되는 최소 명령 집합 컴퓨터 중 하나가 되었습니다.하부 니블에는 워크스페이스(메모리 스택) 포인터에 대한 오프셋으로 일반적으로 사용되는 하나의 즉시 상수 피연산자가 포함되어 있습니다.2개의 프리픽스명령어를 사용하면 다음 명령어의 오퍼랜드에 하위 니블을 부가함으로써 더 큰 상수를 구성할 수 있습니다.추가 지침은 지침 코드 Operate(작동)를 통해 지원되었습니다.Opr
)는 연속 오퍼랜드를 확장 제로 오퍼랜드 opcode로 디코딩하여 트랜스푸터의 새로운 구현이 도입됨에 따라 명령어세트를 거의 무한하고 쉽게 확장할 수 있도록 합니다.
16개의 '주요' 단일 연산자 명령은 다음과 같습니다.
니모닉 | 묘사 |
---|---|
J | 점프 – 명령 포인터에 오퍼랜드를 즉시 추가합니다. |
LDLP | 로컬 포인터 로드– 레지스터 스택 상단에 워크스페이스 상대 포인터 로드 |
PFIX | 프리픽스 – 다음 기본 명령의 낮은 니블을 증가시키는 일반적인 방법 |
LDNL | Load non-local – 스택 상단의 주소에서 값 오프셋을 로드합니다. |
LDC | 부하 상수 – 레지스터 스택 상단에 부하 상수 피연산자 |
LDNLP | 로컬 이외의 포인터 로드– 로드 주소, 스택 상단에서 오프셋 |
픽스 | 마이너스 프리픽스– 낮은 니블을 부정(및 가능한 한 증가)하는 일반적인 방법 |
LDL | 로컬 로드 – 작업 공간에서 로드 값 오프셋 |
ADC | 상수 추가 – 레지스터 스택 상단에 상수 피연산자 추가 |
불러 | 서브루틴 호출 – 푸시 명령 포인터 및 점프 |
씨제이 | 조건부 점프 – 레지스터 스택 상단의 값에 따라 다름 |
AJW | 워크스페이스 조정– 워크스페이스 포인터에 오퍼랜드 추가 |
EQC | [ Equals constant ]: 레지스터 스택의 상단이 상수 오퍼랜드와 동일한지 여부를 테스트합니다. |
STL | 로컬 저장 – 작업 공간에서 일정한 오프셋으로 저장 |
STNL | 로컬이 아닌 저장 – 스택 상단에서 주소 오프셋에 저장 |
OPR | 조작 – 명령 세트를 확장하는 일반적인 방법 |
이 모든 명령어는 오프셋 또는 산술 상수를 나타내는 상수를 사용합니다.이 상수가 16보다 작을 경우 이 모든 명령은 1바이트로 코드화됩니다.
최초의 16개의 '세컨더리' 제로 오퍼랜드 명령(OPR 프라이머리 명령 사용)은 다음과 같습니다.
니모닉 | 묘사 |
---|---|
리비전 | 역방향 – 레지스터 스택의 상위 항목 2개 스왑 |
LB | 로드 바이트 |
BSUB | 바이트 첨자 |
엔드 | 프로세스 종료 |
다르다 | 차이 |
더하다 | 더하다 |
G콜 | 일반 콜 – 탑 오브 스택과 명령 포인터의 스왑 |
입력 | 입력 – 메시지 수신 |
생산하다 | 제품. |
GT | 보다 큼 – 유일한 비교 |
WSUB | 단어 첨자 |
나가. | 출력 – 메시지 보내기 |
후보선수 | 빼다 |
기동 | 프로세스 시작 |
아웃바이트 | 출력 바이트 – 1바이트 메시지 전송 |
아웃워드 | 출력 워드 – 한 단어로 메시지 보내기 |
발전
Inmos는 다중 트랜스퓨터 시스템의 프로토타이핑, 구성 및 구성을 위한 쉬운 수단을 제공하기 위해 1987년에 TRANsputer Module(TRANsputer Module) 표준을 도입했습니다.TRAM은 기본적으로 전원, 트랜스푸터 링크, 클럭 및 시스템 신호를 제공하는 단순한 표준화된 커넥터와 함께 트랜스푸터 및/또는 외부 메모리 및/또는 주변 장치로 구성된 빌딩 블록 도터보드였습니다.기본 크기 1 트램 (3.66인치x1.05인치)부터 크기 8 (3.66인치x8.75인치)까지 다양한 크기의 트램이 정의되었습니다.Inmos는 Industry Standard Architecture(ISA; 산업 표준 아키텍처), MicroChannel, VMEbus 등의 다양한 호스트 버스용 다양한 트램 메인보드를 생산했습니다.TRAM 링크는 10 Mbit/s 또는 20 Mbit/[11]s로 동작합니다.
소프트웨어
트랜스푸터는 통신 순차 프로세스(CSP) 프로세스 [12]미적분을 기반으로 프로그래밍 언어 occam을 사용하여 프로그래밍되도록 고안되었습니다.이 트랜스푸터는 특히 Occam을 실행하도록 설계되었으며, 파스칼이나 C와 같은 언어를 실행하도록 설계된 현대의 CISC 디자인보다 더 많은 것이 개발되었습니다.Occam은 언어의 기본 부분으로서 동시성과 채널 기반 프로세스 간 또는 프로세서 간 통신을 지원했습니다.칩에 병렬과 통신이 내장되어 있고 언어가 직접 상호작용하기 때문에 디바이스 컨트롤러 등의 코드를 작성하는 것은 매우 간단했습니다.가장 기본적인 코드라도 시리얼 포트의 I/O를 감시할 수 있어 데이터가 없으면 자동으로 sleep 상태가 됩니다.
트랜스푸터의 초기 Occam 개발 환경은 Inmos D700 Transputer Development System(TDS)이었습니다.이것은 에디터, 컴파일러, 링커 및 (사후) 디버거를 통합한 비정통적인 통합 개발 환경이었다.TDS는 Occam으로 작성된 트랜스푸터 어플리케이션입니다.TDS 텍스트 에디터는 코드 블록을 숨기고 드러낼 수 있는 폴딩 에디터라는 점에서 눈에 띄었다.안타깝게도 익숙하지 않은 프로그래밍 언어와 똑같이 낯선 개발 환경의 조합은 트랜스푸터의 초기 인기에 아무런 도움이 되지 않았습니다.나중에 Inmos는 기존의 Occam 크로스 컴파일러인 Occam 2 툴셋을 출시하게 됩니다.
C, FORTRAN, Ada, Pascal과 같은 보다 주류 프로그래밍 언어의 구현 또한 Inmos와 서드파티 벤더에 의해 나중에 공개되었다.여기에는 일반적으로 Occam과 유사한 동시성과 채널 기반 커뮤니케이션을 제공하는 언어 확장자 또는 라이브러리가 포함됩니다.
트랜스포머의 가상 메모리 지원이 부족하여 유닉스 운영 체제의 주류 버전 포팅이 금지되었지만, 유닉스 운영 체제의 포트(예: 화이트미스의 Minix 및 Idris)는 생산되었다.고급 유닉스 계열의 분산 운영 체제인 헬리OS도 Perihelion Software에 의해 멀티 트랜스포터 시스템용으로 특별히 설계되었습니다.
실장
최초의 트랜스푸터는 1983년에 발표되어 1984년에 출시되었습니다.
마이크로컨트롤러와 같은 디바이스로서의 역할을 유지하기 위해 온보드 RAM과 내장 RAM 컨트롤러를 탑재하여 하드웨어를 추가하지 않고도 메모리를 추가할 수 있게 되었습니다.다른 설계와 달리, 트랜스포머에는 I/O 라인이 포함되어 있지 않았습니다.이것들은 기존의 시리얼 링크에 연결된 하드웨어를 사용하여 추가되어야 했습니다.기존 프로세서의 인터럽트 라인과 유사한 '이벤트' 라인이 하나 있었습니다.채널로 취급되는 프로그램은 이벤트 채널에서 '입력'할 수 있으며 이벤트 라인이 아사트된 후에만 진행됩니다.
모든 트랜스푸터는 외부 5MHz 클럭 입력에서 실행되며 프로세서 클럭을 제공하기 위해 곱셈되었습니다.
트랜스포머에는 메모리 관리 유닛(MMU)이나 가상 메모리 시스템은 포함되어 있지 않습니다.
트랜스푸터 바리안트(취소된T9000 제외)는 16비트 T2 시리즈, 32비트 T4 시리즈 및 64비트 IEEE 754 부동소수점을 지원하는 32비트 T8 시리즈의 3가지 그룹으로 분류할 수 있습니다.
T2: 16비트
16비트 트랜스포머의 프로토타입은 S43으로, 링크 상에서 스케줄러와 DMA 제어 블록 전송이 없었습니다.출시 당시 T212와 M212(온보드 디스크 컨트롤러를 탑재한 후자)가 16비트 제품이었습니다.T212는 17.5MHz 및 20MHz 프로세서의 클럭 속도 정격에서 사용할 수 있습니다.T212는 T222로 대체되었으며 온칩 RAM은 2KB에서4KB로 확장되었으며 이후 T225로 확장되었습니다.이것에 의해, 디버깅 브레이크 포인트의 서포트(명령어 「」J 0를 확장해)와 T800 명령어 세트로부터의 추가 명령이 추가되었습니다.T222와 T225는 모두 20MHz로 동작했습니다.
T4: 32비트
1985년 10월에 출시된 T414는 900,000개의 트랜지스터를 채용했으며 1.5마이크로미터의 피처 사이즈로 제작되었습니다.32비트 설계로 32비트 단위의 데이터를 처리할 수 있으며 최대 4GB의 메인 [13]메모리를 처리할 수 있습니다.최초 32비트 베리에이션은 T424로 되어 있었지만 제조상의 어려움으로 인해 T414는 의도한4KB가 아닌2KB의 온보드 RAM을 탑재한 T414로 재설계되었습니다.T414는 15MHz와 20MHz로 출시되었습니다.이후 RAM은 T425(20, 25 및 30MHz 종류)에서 4KB로 복구되었습니다.이것에 의해, 브레이크 포인트의 서포트와 추가의 T800 명령도 추가되었습니다.1989년 9월에 출시된 T400은 저렴한 20MHz T425 파생 모델로, 4개의 링크가 아닌 2KB와 2개의 링크가 포함되어 임베디드 시스템 시장을 겨냥하고 있습니다.
T8: 부동 소수점
1987년에 도입된 2세대 T800 트랜스푸터는 명령어 세트가 확장되어 있었습니다.가장 중요한 추가는 64비트 부동소수점 유닛(FPU)과 3개의 부동소수점 레지스터를 추가하여 IEEE 754-1985 부동소수점 표준을 구현한 것입니다.또한 4KB의 온보드 RAM을 탑재하여 20MHz 또는 25MHz 버전으로 제공되었습니다.이후 T801과 T805에 브레이크포인트 지원이 추가되었으며, T801은 성능을 향상시키기 위해 별도의 주소 및 데이터 버스를 갖추고 있습니다.T805는 나중에 30MHz 부품으로도 출시되었습니다.
향상된 T810은 더 많은 RAM, 더 빠른 링크, 추가 명령 및 향상된 마이크로 코드를 가지고 있을 예정이었지만 1990년경에 취소되었습니다.
Inmos는 또한 C004 32방향 링크 스위치, C011 및 C012 "링크 어댑터" 등 트랜스푸터 프로세서를 위한 다양한 지원 칩을 생산하여 트랜스푸터 링크를 8비트 데이터 버스에 인터페이스할 수 있도록 하였습니다.
T400
초기 Inmos 전략의 일부는 CPU를 하나의 디바이스에서 다른 로직과 결합할 수 있도록 매우 작고 저렴하게 만드는 것이었습니다.흔히 말하는 시스템 온 칩(SoC)은 현재 어디에나 존재하지만 1980년대 초반에는 거의 전례가 없었습니다.1983년경 M212와 TV-toy라는 두 가지 프로젝트가 시작되었습니다.M212는 표준 T212 코어를 기반으로 하며, ST 506 및 ST 412 슈가트 표준용 디스크 컨트롤러가 추가되었습니다.TV-toy는 비디오 게임기의 기반이 될 예정이었고 Inmos와 Sinclair Research의 공동 프로젝트였다.
T212 및 T414/T424 트랜스퓨터의 링크에는 하드웨어 DMA 엔진이 탑재되어 있기 때문에 전송은 다른 프로세스의 실행과 병행할 수 있습니다.같은 이름의 최신 트랜스푸터와 혼동하지 않도록 T400이라고 불리는 설계의 변형은 CPU가 이러한 전송을 처리하는 곳에서 설계되었습니다.이로 인해 4개의 링크엔진이 CPU 전체와 거의 동일한 크기였기 때문에 디바이스 크기가 대폭 감소했습니다.T400은 당시 실리콘(SOS) 디바이스의 시스템(System on a Chip(SoC)으로 불리는 시스템)에서 코어로 사용되도록 고안되었습니다.이 디자인은 TV 장난감의 일부가 될 예정이었습니다.그 프로젝트는 1985년에 취소되었다.
T100
이전의 SoC 프로젝트는 성공이 제한적이었지만(M212는 한때 판매되었습니다), 많은 설계자들은 여전히 이 개념을 굳게 믿었고 1987년 새로운 프로젝트인 T100은 8비트 버전의 트랜스푸터 CPU와 스테이트 머신에 기반한 구성 가능한 로직을 결합한 새로운 프로젝트를 시작했습니다.트랜스푸터 명령 세트는 8비트 명령을 기반으로 하며 8비트의 배수인 모든 워드 크기로 쉽게 사용할 수 있습니다.T100의 타깃 시장은 Futurebus 등의 버스 컨트롤러와 표준 링크어댑터(C011 등)의 업그레이드였습니다.이 프로젝트는 T840(나중에 T9000의 기반이 됨)이 시작되었을 때 중단되었습니다.
- T2, T4, 및 T8 시리즈트랜스푸터
TPCORE
TPCORE는 FPGA에서 [9][14]동작하는 OS 링크를 포함한 트랜스푸터의 구현입니다.
T9000
Inmos는 T9000(개발 중 코드명 H1)의 도입으로 T8 시리즈 트랜스퓨터의 성능을 향상시켰습니다.T9000은 대부분의 기능을 T800과 공유하지만 설계 일부를 하드웨어로 옮기고 슈퍼스케일러 지원을 위해 몇 가지 기능을 추가했습니다.이전 모델과 달리 T9000은 RAM 대신 진정한 16KB 고속 캐시(랜덤 치환 사용)를 탑재하고 있었지만 메모리로 사용할 수 있었고 이 모든 것을 처리하기 위한 MMU와 같은 기능도 포함되었습니다(PMI).고속화를 위해 T9000은 이전 버전에서와 같이 3개가 아닌 상위 32개의 스택 위치를 캐시했습니다.
T9000은 5단 파이프라인을 사용하여 더욱 빠른 속도를 구현했습니다.흥미로운 추가 기능은 명령어를 캐시에서 수집하여 최대 8바이트의 큰 패키지로 그룹화하여 파이프라인을 더 빠르게 공급하는 그루퍼입니다[15].그런 다음 그룹은 마치 더 빠른 CPU에서 작동하는 하나의 큰 명령처럼 한 번의 사이클로 완료됩니다.
링크 시스템은 새로운 100MHz 모드로 업그레이드되었지만 이전 시스템과 달리 링크의 하위 호환성은 없어졌습니다.이 새로운 패킷 기반 링크 프로토콜은 DS-Link라고 [16]불리며, 나중에 IEEE 1355 시리얼 인터커넥트 표준의 기초를 형성했습니다.또한 T9000에서는 VCP(Virtual Channel Processor)라고 불리는 링크 라우팅 하드웨어가 추가되어 포인트 투 포인트에서 진정한 네트워크로 링크가 변경되어 링크 상에 임의의 수의 가상 채널을 생성할 수 있게 되었습니다.즉, 프로그램이 접속의 물리적인 레이아웃을 인식할 필요가 없어졌습니다.C104 32방향 크로스바 스위치 및 C101 링크 어댑터를 포함한 다양한 DS-Link 지원 칩도 개발되었습니다.
T9000의 개발 지연이 길었기 때문에 출시 시점에는 로드/스토어 속도가 더 빨라진 설계가 이미 T9000을 앞지르고 있었습니다.T800을 10배 이상 앞서겠다는 자체적인 성능 목표를 달성하지 못했다.프로젝트가 최종적으로 취소되었을 때, 50 MHz에서 36 MIPS만을 달성하고 있었습니다.생산 지연으로 인해 T9000에 가장 적합한 호스트 아키텍처는 오버헤드 프로젝터라는 의문이 제기되었습니다.
개발을 계속하는 데 필요한 자금이 없었던 Inmos에게 이것은 무리였다.이 무렵, 동사는 임베디드 시스템 시장에 주력하고 있던 SGS-Thomson(현재의 STMicroelectronics)에 매각되어 T9000 프로젝트는 결국 포기되었습니다.그러나, 임베디드 애플리케이션을 위해 포괄적으로 재설계된 32비트 트랜스퓨터 ST20 시리즈는 T9000용으로 개발된 기술을 사용하여 나중에 생산되었습니다.ST20 코어는 셋톱박스 및 GPS(Global Positioning System) 애플리케이션용 칩셋에 통합되었습니다.
ST20
ST20은 엄밀히 말하면 트랜스푸터는 아니지만 T4와 T9의 영향을 많이 받아 T450의 기반이 되었습니다.T450은 거의 틀림없이 트랜스푸터의 마지막이었습니다.ST20의 사명은 당시 신흥 SoC 시장에서 재사용 가능한 핵심이 되는 것이었습니다.ST20의 원래 이름은 재사용 가능한 마이크로 코어(RMC)였습니다.이 아키텍처는 마이크로코드 제어 데이터 경로를 가진 원래의 T4 아키텍처에 느슨하게 기반을 두고 있었습니다.그러나 VHDL을 설계 언어로 사용하고 최적화된(및 다시 작성된) 마이크로코드 컴파일러를 사용하여 완전히 재설계되었습니다.이 프로젝트는 1990년 T9이 많은 애플리케이션에 비해 너무 크다는 것을 깨달았을 때 구상되었습니다.실제 설계 작업은 1992년 중반에 시작되었습니다.트랩을 통해 소프트웨어에 구현된 복잡한 명령어를 가진 매우 단순한 RISC 스타일의 CPU부터 Tomasulo 알고리즘과 유사한 개념의 다소 복잡한 슈퍼스케일러 설계까지 여러 가지 시험 설계가 수행되었습니다.최종 디자인은 원래의 T4 코어와 매우 비슷해 보였지만 성능을 높이기 위해 간단한 명령 그룹화와 작업 공간 캐시가 추가되었습니다.
도입
이 트랜스푸터는 심플하지만 현대의 많은 디자인에 비해 강력하지만 CPU와 마이크로컨트롤러 역할 모두에서 보편적으로 사용된다는 목표를 달성하지는 못했습니다.마이크로컨트롤러 시장에서는 8비트 머신이 시장을 지배하고 있어 비용이 가장 중요한 고려 대상이었습니다.여기서는 T2조차 대부분의 사용자에게 너무 강력하고 비용이 많이 들었습니다.
컴퓨터 데스크톱 및 워크스테이션 분야에서 트랜스푸터는 상당히 빨랐습니다(20MHz에서 약 1,000만 명령/초(MIPS)로 동작).이것은 1980년대 초반에는 뛰어난 퍼포먼스였지만, 부동 소수점 유닛(FPU)을 탑재한 T800이 출하되었을 무렵에는 다른 RISC 설계가 그것을 웃돌고 있었습니다.이는 기계가 계획한 대로 여러 개의 트랜스퓨터를 사용했다면 크게 완화될 수 있었지만, T800은 도입 당시 개당 약 400달러의 비용이 들었기 때문에 가격 대비 성능이 낮았습니다.트랜스푸터 기반 워크스테이션 시스템은 거의 설계되지 않았으며, 가장 주목할 만한 것은 Atari 트랜스푸터 워크스테이션입니다.
트랜스포머는 1980년대 후반에 여러 벤더가 트랜스포머 기반 시스템을 생산한 대규모 병렬 컴퓨팅 분야에서 더욱 성공적이었다.여기에는 Meiko Scientific(Inmos 전 직원이 설립한), Floating Point Systems,[17] Parsytec 및 Parsys가 포함되어 있습니다.Bristol Polytechnic의 Bristol Transputer Center와 Edinburgh 대학의 Edinburgh Concurrent Supercomputer Project를 포함한 몇몇 영국 학술 기관은 트랜스푸터 기반의 병렬 시스템을 적용하기 위한 연구 활동을 시작했습니다.또한 DESY의 하드론 일렉트론 링 앤레이지(HERA) 충돌기를 위한 고에너지 물리학 제우스 실험의 데이터 수집 및 세컨드 레벨 트리거 시스템은 여러 서브시스템으로 분할된 300개가 넘는 동기 클럭 전송기의 네트워크를 기반으로 했습니다.이들은 사용자 정의 검출기 전자 장치의 판독값을 제어하고 물리적 사건 선택을 위한 재구성 알고리즘을 실행했다.
트랜스푸터의 병렬 처리 능력은 1990년대 초 세계 최대 인쇄 회사인 RR Donnelley & Sons에 의해 이미지 처리에 상업적으로 사용되었습니다.인쇄 준비를 위해 디지털 이미지를 신속하게 변환할 수 있는 능력은 경쟁업체에 비해 상당한 우위를 점하게 했습니다.이 개발은 RR Donnelley Technology Center의 Michael Bengtson이 주도했습니다.몇 년 안에 데스크톱 컴퓨터의 처리 능력도 커스텀 멀티 프로세싱 시스템의 필요성을 [citation needed]없앴습니다.
독일 회사인 Jéger Messtechnik은 초기 ADwin 실시간 데이터 수집 및 제어 [18]제품에 트랜스푸터를 사용했습니다.
프랑스의 한 회사가 최대 144대의 T800 및 T400 트랜스푸터를 갖춘 군도 Volvox 슈퍼컴퓨터를 개발했습니다.UNIX를 실행하는 Silicon Graphics Indigo2와 Volvox 백플레인과 인터페이스하는 특수 카드에 의해 제어되었습니다.
또한 전송기는 Siemens/Tektronix K1103과 같은 프로토콜 분석기와 어레이 아키텍처가 레이더 및 시리얼 링크와 같은 애플리케이션에 적합한 군사 애플리케이션에서의 사용을 발견하여 하위 시스템 통신에서 비용과 무게를 절감하였습니다.
이 트랜스푸터는 인텔 i860, 80486/33 및 도시바 HSP 프로세서와 T805 또는 T425 트랜스푸터를 조합한 Bristol의 Division 100 시스템 등의 가상현실 관련 제품에도 등장했습니다.이러한 제품은 T805 또는 T425 트랜스푸터를 탑재하여 PC, SunC SPARC에서 서버로서 액세스 할 수 있습니다.또는 VAX 시스템.[19][20]
아스트리움 위성, CNES가 개발하고 피카르 등 위성이 사용하는 유럽 소형화 위성 플랫폼인 미리아데는 T805를 기반으로 하며 약 4MIPS를 생산하며 [21][22]2015년까지 생산될 예정이다.
통신과 연산의 비동기 연산은 베인의 "비동기 다항식 영점 찾기"[23] 알고리즘과 같은 비동기 알고리즘의 개발을 가능하게 했다.비동기 알고리즘의 분야와 현재 알고리즘의 비동기 구현은 엑사스케일 컴퓨팅으로의 이행에 중요한 역할을 할 가능성이 높습니다.
HETE-2(High Energy Transmit Explorer 2) 우주선은 4배의 T805 트랜스퓨터와 8배의 DSP56001을 사용하여 약 초당 1억 개의 명령([24]MIPS)의 성능을 발휘했습니다.
레거시
![]() |
내부 병렬화의 증가는 기존의 CPU 설계 개선의 원동력 중 하나입니다.(트랜스푸터에서 사용되는) 명시적인 스레드 수준의 병렬 처리 대신 CPU 설계는 명령 수준의 암묵적인 병렬 처리를 이용하여 코드 시퀀스를 검사하고 여러 개의 독립된 명령을 다른 실행 장치에 발행합니다.이를 슈퍼스칼라 처리라고 합니다.슈퍼스칼라 프로세서는 순차적으로 생성된 코드 조각의 실행을 최적화하는 데 적합합니다.슈퍼스칼라 프로세싱과 투기적 실행의 조합은 대부분 Pascal, Fortran, C 및 C++로 작성된 기존 코드 본문에 실질적인 성능 향상을 가져다 주었습니다.기존 코드에 대한 이러한 실질적이고 정기적인 성능 향상을 고려할 때, 보다 작업 수준의 병렬성을 드러내는 언어나 코딩 스타일로 소프트웨어를 다시 작성할 동기는 거의 없었습니다.
그럼에도 불구하고 동시 프로세서의 협업 모델은 21세기 슈퍼컴퓨터 설계를 지배하고 있는 클러스터 컴퓨팅 시스템에서 여전히 찾아볼 수 있습니다.트랜스푸터 아키텍처와 달리 이들 시스템의 처리 유닛은 일반적으로 대량의 메모리와 디스크 스토리지에 액세스할 수 있는 슈퍼스칼라 CPU를 사용하며 기존 운영 체제와 네트워크 인터페이스를 실행합니다.노드가 더 복잡하기 때문에 이러한 시스템에서 병렬 처리를 조정하는 데 사용되는 소프트웨어 아키텍처는 일반적으로 트랜스푸터 아키텍처보다 훨씬 더 무겁습니다.
기본적인 트랜지스터 동기는 남아 있지만, 트랜지스터 카운트의 반복적인 2배로 인해 20년 이상 숨겨져 있었습니다.필연적으로 마이크로프로세서 설계자는 테크놀로지의 확장이 한계에 다다르기 시작한 거의 동시에 더 큰 물리 자원을 다 써버렸습니다.소비전력과 그에 따른 발열요구로 인해 클럭환율이 더 이상 상승할 수 없게 됩니다.이러한 요소들은 Inmos가 제안한 솔루션과 본질적으로는 거의 다른 솔루션을 지향하게 했습니다.
Columbia University의 디자인을 기반으로 IBM Blue Gene으로 제작된 세계에서 가장 강력한 슈퍼컴퓨터는 트랜스푸터의 꿈을 실제로 구현한 것입니다.이들은 동일한 비교적 낮은 성능의 SoC로 구성된 방대한 어셈블리입니다.
최근의 경향은 트랜지스터 딜레마를 Inmos에게조차 너무 미래지향적인 방법으로 해결하려고 노력해왔다.최신 프로세서는 CPU 다이(die)에 컴포넌트를 추가하고 하나의 시스템에 여러 개의 다이(die)를 설치하는 것 외에 하나의 다이(die)에 여러 개의 코어를 배치하는 경우가 늘고 있습니다.트랜지스터 설계자들은 하나의 코어라도 트랜지스터 예산에 넣기 위해 고군분투했습니다.오늘날 디자이너들은 트랜지스터 밀도를 1000배 증가시켜 많은 트랜지스터를 배치할 수 있게 되었습니다.가장 최근의 상업적 개발 중 하나는 XMOS에서 비롯되었습니다. XMOS는 트랜스푸터와 Inmos에 강한 반향을 일으키는 임베디드 멀티 코어 멀티 스레드 프로세서 제품군을 개발했습니다.Cell 프로세서, Adapteva Epiphany 아키텍처, Tilera 등 칩 상의 네트워크(NoC)에 접근하는 멀티코어/매니코어 프로세서가 새롭게 등장하고 있습니다.
트랜스푸터와 Inmos는 영국의 Bristol을 마이크로일렉트로닉스 설계와 혁신의 허브로 설립하는 데 도움을 주었습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ 앨런 켄트, 제임스 GWilliams (ed.) (1998) "컴퓨터 과학기술 백과사전", ISBN0-8247-2222-2, Hamid R의 "트랜스푸터 제품군"아랍니아
- ^ Hey, Anthony J. G. (1990-01-01). "Supercomputing with Transputers—Past, Present and Future". Proceedings of the 4th International Conference on Supercomputing. ICS '90. New York, NY, USA: ACM: 479–489. doi:10.1145/77726.255192. ISBN 0897913698. S2CID 8612995.
- ^ Stoker, & White, A. (2000).트랜스푸터 컨트롤을 사용한 메카트로닉 시네 필름 복사메카트로닉스(Oxford), 10(7), 773~807.https://doi.org/10.1016/S0957-4158(99)00043-4
- ^ Fuller, Samuel H. & Millett, Lynette I., 편집자(2011).컴퓨팅 퍼포먼스의 미래, CSTB, National Academic Press, 페이지 84.ISBN 978-0-309-15951-7 2016년 11월 2일 취득.
- ^ "The Prince Philip Designers Prize". The Design Council. Retrieved 2019-12-01.
- ^ Barron, Iann M. (1978). D. Aspinall (ed.). "The Transputer". The Microprocessor and Its Application: An Advanced Course. Cambridge University Press: 343. ISBN 0-521-22241-9. Retrieved 2009-05-18.
- ^ 말뚝, 패트릭 H트랜스푸터의 하드웨어와 소프트웨어 아키텍처, 2011, PRB 퍼블리싱, ASIN B004OYTS1K
- ^ Transputer Reference Manual (PDF). Prentice-Hall. 1988. ISBN 0-13-929001-X.
- ^ a b 다나카 카즈토, 이와나미 사토시, 야마카와 다케시, 후쿠나가 치카라, 마쓰이 카즈토, 요시다 다카시."CSP를 이용한 SpaceWire 라우터 네트워크의 설계 및 성능" 페이지 2.
- ^ "하이 퍼포먼스 컴퓨팅과 네트워킹: 네덜란드 암스테르담 국제회의 및 전시회, 1998년 4월 21일부터 23일까지.B C 오닐, G 콜슨, K L Wong, R 호치키스, J H Ng, S Clark, P D Thomas."StrongARM 마이크로프로세서를 위한 분산 병렬 시스템을 지원하는 인터페이스 장치." 페이지 1031.
- ^ "Inmos Technical Note 29: Dual-In-Line Transputer Modules (TRAMs)". Transputer.net. 2008-07-04. Retrieved 2013-10-12.
- ^ Borger, & Durdanovic, I. (1996)Occam에서 트랜스푸터 코드로의 컴파일 정확성.컴퓨터 저널, 39(1), 52~92.https://doi.org/10.1093/comjnl/39.1.52
- ^ Anning, Nick; Hebditch, David (1986-03-20). "New chip displays its powers". New Scientist. pp. 43–46. Retrieved 2022-06-22.
- ^ 「커뮤니케이션 프로세스 아키텍처 2004」p.361. 다나카 마코토, 후쿠치 나오야, 오오키 유타카, 후쿠나가 치카라.「트랜스푸터 코어의 설계와 FPGA에서의 실장」. 2004년.
- ^ Inmos T9000 CPU 특허, "미국 특허 5742783",
- ^ Inmos DS Link 특허, "통신 인터페이스 미국 특허 5341371"
- ^ Harald W. Wabnig (20–22 September 1993). Virtual Channels for Deadlock-Free Communication in Transputer Networks. 1993 World Transputer Congress. Aachen, Germany. p. 1047. ISBN 9789051991406.
- ^ "ADwin Fast Real-Time Automation System" (PDF). Archived from the original (PDF) on 2012-04-25. Retrieved 2011-11-16.
- ^ Edmunds, Nick (July 1993). "When two worlds collide". Personal Computer World.
- ^ Bangay, Sean (July 1993). Parallel Implementation of a Virtual Reality System on a Transputer Architecture (PDF). Rhodes University. Retrieved 2012-05-06.
- ^ "The Myriade Platform". Retrieved 2011-08-22.
- ^ David Chemouil. "The Design of Space Systems" (PDF). Archived from the original (PDF) on 2012-03-21. Retrieved 2011-08-22.
- ^ T.L. Freeman과 M.K. Bane, "비동기 다항식 영점 찾기 알고리즘"병렬 컴퓨팅 17, 673-681페이지 (1991)
- ^ HETE-2 우주선
외부 링크

- 트랜스푸터에 관한 FAQ
- Ram Meenakshisundaram의 트랜스푸터 홈페이지
- WoTUG 다른 환경에서 트랜스퓨터의 원리를 적용하는 그룹(예를 들어 순차적 프로세스(CSP) 통신).
- 트랜스푸터 에뮬레이터– 1대의 T414 트랜스푸터를 에뮬레이트(FPU, 블리팅 명령 없음)하여 보통 호스트 컴퓨터 시스템에서 제공되던 파일 및 터미널 I/O 서비스를 제공합니다.
- PC 기반의 트랜스푸터 에뮬레이터– 1990년대 중후반 Julian Highfield가 작성한 오리지널 T414 트랜스푸터 에뮬레이터(jserver)의 PC 포트입니다.
- 트랜스푸터는 재미있을 수 있다.
- 트랜스터프리터 가상 머신.– occam-pi 및 트랜스푸터 바이트 코드에 기반한 기타 언어용 휴대용 런타임입니다.
- 켄트 레타러블 occam 컴파일러.– ocam-pi 컴파일러.
- transputer.net 를 참조해 주세요.– 트랜스푸터에 대한 문서 및 기타 정보
- Inmos 졸업생 Inmos 전 직원, 사진 및 일반 정보.켄 헤딩스가 관리.
- Prince Philip Designers Prize 1959 ~2009년 수상자, 디자인 평의회 웹사이트
- HETE-2 우주선 내부 시스템