이종 요소 프로세서

Heterogeneous Element Processor

HEP(Hetheric Element Processor)는 1982년 Denelcor, Inc.에 의해 도입되었습니다.HEP의 설계자는 Burton Smith였습니다.이 기계는 탄도 [1]연구소의 유체 역학 문제를 해결하기 위해 설계되었다.이름에서 알 수 있듯이 HEP 시스템은 프로세서, 데이터 메모리 모듈 및 I/O 모듈 등 많은 이기종 컴포넌트에서 결합되었습니다.컴포넌트는 스위치드 네트워크를 통해 접속되어 있었다.

HEP 시스템에서 PEM이라고 불리는 단일 프로세서(최대 16개의 PEM을 연결할 수 있음)는 상당히 이례적이었습니다. "프로그램 상태 워드(PSW)" 큐를 통해 한 번에 최대 50개의 프로세스를 하드웨어로 유지할 수 있었습니다.지금까지 납품된 시스템 중 가장 큰 것은 4개의 PEM이었습니다.8단계 명령 파이프라인은 8개의 다른 프로세스에서 명령을 한 번에 진행할 수 있도록 했습니다.실제로 파이프라인에는 특정 프로세스의 명령어가 1개만 존재할 수 있었습니다.따라서 10 MIPS의 프로세서스루풋은 8개 이상의 프로세스가 활성화 되어 있을 때만 실행할 수 있습니다.단일 프로세스에서는 1.25 MIPS를 넘는 throughput을 달성할 수 없습니다.이런 유형의 멀티스레딩 처리에서는 HEP가 배럴 프로세서로 분류됩니다.HEP PEM의 하드웨어 실장은 이미터 결합 로직이었습니다.

프로세스는 사용자 수준 또는 슈퍼바이저 수준으로 분류되었습니다.사용자 레벨의 프로세스에서는 슈퍼바이저 레벨의 프로세스를 작성할 수 있습니다.이 프로세스를 사용하여 사용자 레벨의 프로세스를 관리하고 I/O를 실행할 수 있습니다.같은 클래스의 프로세스를 7개의 사용자 태스크와 7개의 슈퍼바이저 태스크 중 하나로 그룹화할 필요가 있었습니다.

각 프로세서는 PSW 큐 및 명령 파이프라인 외에 명령 메모리, 2,048 64비트 범용 레지스터 및 4,096개의 고정 레지스터를 포함하고 있다.상수 레지스터는 슈퍼바이저 프로세스만이 내용을 변경할 수 있다는 점에서 차별화되었습니다.프로세서 자체에는 데이터 메모리가 포함되어 있지 않았습니다.대신 데이터 메모리 모듈을 스위치드 네트워크에 개별적으로 접속할 수 있었습니다.

HEP 메모리는 완전히 다른 명령 메모리(최대 128 MB)와 데이터 메모리(최대 1 GB)로 구성되어 있습니다.64비트 워드는 표시되지만 실제로는 데이터 메모리 워드는 72비트이며 상태에는 추가 비트가 사용되었습니다. 다음 단락, 패리티, 태그 부착 및 기타 용도를 참조하십시오.

HEP는 데이터 메모리의 모든 레지스터와 위치가 "빈" 상태와 "풀" 상태를 관련짓는 일종의 상호 제외를 구현했습니다.로케이션에서 읽으면 상태가 「empty」로 설정되어 기입하면 상태가 「full」로 설정됩니다.프로그래머는, 빈 로케이션에서 읽거나 풀 로케이션에 쓰려고 하면 프로세스가 정지해, 중요한 섹션이 강제됩니다.

요소 간의 교환 네트워크는 여러 면에서 현대 컴퓨터 네트워크와 유사했습니다.네트워크상의 노드 세트는 각각 3개의 링크를 가지고 있었습니다.패킷이 노드에 도착하면 라우팅 테이블을 참조하여 패킷의 수신처에 근접 전송을 시도했습니다.노드가 congestion가 되었을 경우, 착신 패킷은 라우팅 없이 건네집니다.이와 같이 처리되는 패킷은 priority 레벨이 높아집니다.여러 패킷이 단일 노드에 대해 경쟁할 경우 priority 레벨이 낮은 패킷보다 높은 패킷이 라우팅 됩니다.

스위치드 네트워크의 또 다른 컴포넌트는 sO 시스템으로, 자체 메모리와 디스크 및 기타 주변기기를 위한 많은 개별 DEC 유니버스 버스가 연결되어 있습니다.시스템은 일반적으로 직접 볼 수 없는 전체/빈 비트를 저장할 수도 있습니다.I/O 작업을 시작할 때 지연 시간이 길기 때문에 초기 I/O 시스템 성능이 매우 미흡한 것으로 나타났습니다.Ron Natalie(BRL의)와 Burton Smith는 지역 스테이크 하우스에서 냅킨의 예비 부품으로 새로운 시스템을 설계하여 다음 주부터 가동하기 시작했습니다.

HEP의 주요 애플리케이션 프로그래밍 언어는 독특한 Fortran 변종이었습니다.시간 C, PascalSISAL이 추가되었습니다.이름 앞에 '

가 붙는 완전 빈 비트를 사용하는 데이터 변수 구문입니다.따라서 'A'는 로컬 변수의 이름을 지정하지만 $A는 잠금용 완전 빈 변수입니다.따라서 애플리케이션 데드록이 가능했습니다.문제는, '