제퍼넷 로고

1970년대 컴퓨터: 컴퓨팅의 한 조각

시간

HP-1000과 DEC VAX 11/730은 비디오 게임 Tempest 및 Battlezone과 어떤 공통점이 있습니까? 당신이 생각하는 것보다 더 많은 것입니다. 해당 기간의 다른 많은 시스템과 함께 모든 시스템은 AM2900 제품군 비트 슬라이스 CPU를 사용했습니다.

비트슬라이스 CPU는 1970년대에만 존재할 수 있었던 매우 성공적인 제품이었다. 오늘날 컴퓨터 시스템이 필요한 경우 선택할 수 있는 칩에는 많은 CPU는 물론 전체 시스템도 있습니다. 또한 원하는 모든 작업을 수행할 수 있는 소규모 보드 수준 시스템을 많이 얻을 수도 있습니다. 1960년대에는 선택의 여지가 전혀 없었습니다. 트랜지스터, 튜브, 계전기 또는 소규모 IC 게이트를 사용하여 게이트가 있는 회로 기판을 구축했습니다. 그런 다음 보드를 배선했습니다.

오늘날 얻을 수 있는 것과 같은 CPU 칩을 사람들에게 제공하는 것이 좋을 것이라는 사실을 깨닫는 데는 천재적인 노력이 필요하지 않았습니다. 문제는 오늘날의 반도체 기술이 이를 허용하지 않는다는 것입니다. 적어도 상당한 양의 자원이 있는 경우에는 불가능합니다. 예를 들어, 14500년의 Motorola MC1977B는 XNUMX비트 마이크로프로세서였으며 용도가 있었지만 모든 사람이나 모든 사람을 위한 것은 아닙니다.

답변

대답은 칩에서 가능한 한 많은 CPU를 생산하고 여러 칩을 함께 사용하여 CPU를 구축하는 것이었습니다. 이것이 바로 AMD가 AM2900 제품군으로 한 일입니다. 생각해보면 CPU란 무엇인가? 물론 변형이 있지만 핵심에는 명령을 저장하는 장소, 데이터를 저장하는 장소, 명령을 선택하는 방법, 데이터를 조작하는 방법(예: ALU - 산술 논리 장치)이 있습니다. 명령어는 데이터를 한 곳에서 다른 곳으로 이동하고 I/O 장치, ALU 작업 등과 같은 상태를 설정합니다.

<img decoding="async" data-attachment-id="665623" data-permalink="https://hackaday.com/2024/03/06/the-1970s-computer-a-slice-of-computing/bcpu/" data-orig-file="https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png" data-orig-size="785,551" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="bcpu" data-image-description data-image-caption="

AMD 데이터북의 기본 비트슬라이스 CPU

” 데이터-매체-파일=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?w=400″ 데이터- 대용량 파일=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?w=785″ 클래스=”크기- 썸네일 wp-image-665623″ src=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing.png” alt width=”250″ 높이 =”175″ srcset =”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png 785w, https://zephyrnet .com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?resize=250,175 250w, https://zephyrnet.com/wp-content/uploads/ 2024/03/the-1970s-computer-a-slice-of-computing-2.png?resize=400,281 400w” 크기 =”(최대 너비: 250px) 100vw, 250px”>

AMD 데이터북의 기본 비트슬라이스 CPU

물론, 이는 지나치게 단순화된 것이지만 대부분의 기존 CPU를 설명하기 위해 확장될 수 있습니다. AMD 칩은 서로 연결될 수 있는 4비트 데이터 경로를 제공했습니다. 제품군의 다른 칩은 메모리(선택적으로 DMA 포함)를 관리하고 슬라이스 간 장부를 관리할 수 있습니다. 두 개의 슬라이스로 구성된 8비트 머신, 세 개의 슬라이스로 구성된 24비트 머신 등을 구축할 수 있습니다.

이는 기존 칩을 사용하는 것보다 더 적은 수의 IC를 허용했을 뿐만 아니라 특히 당시에는 더 빠르지만 NMOS 또는 CMOS만큼 밀도가 낮았던 양극 논리를 허용했습니다. AM2900 제품군과 같은 칩을 사용하면 유연한 CPU를 만들 수 있습니다. 이는 귀하의 애플리케이션에 적합하고 다른 방법을 사용하여 수행할 수 있는 작업에 비해 빠르게 실행되었습니다.

마이크로코딩

마이크로코드는 많은 CPU에서 일반적이며 비트슬라이스 CPU도 예외는 아닙니다. 예를 들어, 각 레지스터에 별도의 읽기 및 쓰기 라인이 있는 매우 긴 마이크로코드 명령이 있을 수 있습니다. 16개의 레지스터가 있다면 해당 컨트롤에만 4비트가 있습니다. 그런 다음 기능 코드(21비트)와 조건 코드가 업데이트되어야 하는지를 나타내는 비트도 있을 수 있습니다. 이제 각 "명령어"는 8비트입니다. 이는 XNUMX비트 시스템에서 원하는 것보다 길기 때문에 마이크로코드를 실행하는 명령을 정의합니다.

<img decoding="async" data-attachment-id="665630" data-permalink="https://hackaday.com/2024/03/06/the-1970s-computer-a-slice-of-computing/pin2901/" data-orig-file="https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png" data-orig-size="317,460" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="pin2901" data-image-description data-image-caption="

AM2901의 핀아웃

” data-medium-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?w=276″ data-large-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?w=317″ class=”size-thumbnail wp-image-665630″ src=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-1.png” alt width=”172″ height=”250″ srcset=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png 317w, https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?resize=172,250 172w, https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?resize=276,400 276w” sizes=”(max-width: 172px) 100vw, 172px”>

AM2901의 핀아웃

예를 들어, 레지스터 A를 레지스터 B에 추가하고 결과를 B에 두는 명령에는 세 개의 마이크로코드 단계가 있을 수 있습니다. 첫 번째는 레지스터 A와 B를 데이터 버스에 게이트하고 ALU를 추가하는 코드를 지정합니다. 그런 다음 두 번째 명령어는 결과를 데이터버스에 저장하고 B 레지스터에 데이터버스를 읽도록 명령합니다. 최종 마이크로코드 명령어는 다음 명령어를 읽고 프로그램을 계속하는 마이크로코드의 주요 부분으로 점프합니다.

이것이 일반적으로 비트슬라이스 CPU를 설계하는 방법입니다. AM2909, AM2910 또는 AM2911(마이크로프로그램 시퀀서)은 AM2901 칩 어레이에 명령을 공급하는 마이크로프로그램 저장소 ROM의 주소를 지정합니다. 40핀 AM2901은 더 작고 빠르게 만드는 기술 개선을 통해 여러 변형(예: AM2901B)으로 출시되었습니다.

그런 다음 마이크로프로그램 저장소는 명령어 가져오기 및 실행을 조율합니다. 아마도 마이크로프로그램은 실제 소프트웨어에 비해 상대적으로 작았기 때문에 마이크로코드가 포함된 ROM은 실제 애플리케이션이 포함된 ROM보다 작을 수 있습니다.

협력

물론, 칩을 하나 더 추가하는 것만으로는 모든 것을 할 수는 없습니다. 그들은 협력해야 합니다. 예를 들어, 오픈 컬렉터인 각 칩에는 F 출력이 있습니다. 모든 F 출력을 풀업 저항으로 연결합니다. CPU 슬라이스의 결과가 0이 아닌 경우 F 출력을 풀다운합니다. 따라서 F 출력이 높으면 전체 결과(비트 수에 관계없이)는 0이어야 합니다.

캐리를 다루는 것도 문제다. 첫 번째 슬라이스에 1111+0001을 추가하면 답은 실제로 0000이 아닙니다. 0000 + 캐리입니다. 리플 캐리를 얻기 위해 각 Cn+4 출력을 다음 칩의 Cn 입력에 간단히 연결할 수 있지만 이렇게 하면 슬라이스를 추가할 때 속도가 더 나빠지는 단점이 발생합니다. 더 나은 성능을 위해 AM2902를 사용하여 "미래를 예측"할 수도 있습니다. 각 2902는 16개의 슬라이스 또는 2902비트를 처리할 수 있습니다. 그 이상을 원한다면 하나의 AM2902를 사용하여 각각 64개의 CPU 슬라이스를 처리하는 최대 1975개의 AMXNUMX를 예상할 수 있습니다. 아마도 XNUMX비트를 넘어서고 싶다면 이 계획을 더 확장하는 것이 가능할 것입니다. 하지만 XNUMX년에는 그렇게 큰 기계를 만드는 데 그것이 가장 큰 문제가 아니었을 수도 있습니다.

이동과 곱셈에도 협력이 필요했습니다. 이동 시 새 비트의 소스를 결정하기 위해 체인의 각 끝에서 멀티플렉서를 사용하는 것이 일반적이었습니다. 그것은 단지 당신이 필요한 것에 달려 있습니다.

맞춤설정으로 들어간다

비트 슬라이스 사용에 대한 흥미로운 점 중 하나입니다. 필요한 것만 디자인할 수 있습니다. 당면한 작업에 32비트가 필요한데 왜 24비트 시스템을 구축합니까? 결코 사용하지 않을 회전 명령을 활성화하기 위해 멀티플렉서를 사용하는 이유는 무엇입니까?

요즘 우리는 빌딩 블록을 가져와서 문제에 맞게 만듭니다. Bitslice를 사용하면 필요한 것에 딱 맞는 CPU를 만들 수 있습니다. 명령어 가져오기, 곱하기, 바이트 교환과 같은 다양한 작업을 수행하는 방법에 대한 많은 이야기가 있었습니다. AM2900 데이터북.

해당 데이터 북에는 AM2902 또는 확장 가능한 레지스터, 곱셈기, 나눗셈 및 기타 특수 회로가 내장된 48핀 AM2903 "Superslice"와 같이 필요한 칩도 나와 있습니다.

진화

AM2900 제품군은 매우 성공적이었습니다. 원래 AM2901은 저전력 쇼트키를 사용하는 매우 큰 다이에서 시작되었으며 80나노초에서 작동할 수 있었습니다. 1978년 후인 2901년에 AM50B 다이는 크기가 절반도 채 되지 않았고 1981나노초를 처리할 수 있었습니다. 2901년까지 AM37C는 내부적으로 ECL을 사용했으며 동일한 다이에서 1979나노초를 수행할 수 있었습니다. 9511년에는 부동 소수점 보조 프로세서(AMDXNUMX)도 얻을 수 있었습니다.

이를 지원하려면 여러 개의 칩이 필요했고 2901비트보다 큰 작업을 수행하려면 여러 개의 AM2901이 필요했기 때문에 이는 단순한 장치였습니다. 예를 들어 원래 AM540에는 게이트가 XNUMX개만 탑재되어 있었습니다. 그러나 그들은 워크스테이션과 음악 신디사이저부터 비디오 게임에 이르기까지 모든 분야에 진출했습니다. 인기로 인해 장치에 대한 XNUMX차 소스 공급업체가 많았으며 여전히 새로운 오래된 재고를 찾는 것이 가능합니다. 소련 사본도 생산되었습니다.

더 많은 비트슬라이스

AM2900으로 만들어진 CPU 중 다수는 독점 또는 군용 CPU였습니다. 하지만 좋은 문서가 포함된 문서를 보고 싶다면 여기를 참조하세요. Nova 1980 호환 CPU 구현에 관한 1200년 석사 논문 기술을 사용하는 것 — 음, 어쨌든 그 중 일부입니다.

AM2900이 마을의 유일한 게임은 아니었습니다. 1974년에는 National Semiconductor의 IMP와 Intel의 3000 시리즈가 출시되었습니다. 또한 Motorola, Texas Instruments, Fairchild, Raytheon 등도 유사한 장치를 만들었습니다. 그러나 여러 가지 이유로 인해 대부분의 사람들은 비트슬라이스 CPU를 기억할 때 AM2900을 생각합니다. 실제로 Nova CPU에 대한 석사 논문에는 다른 비트슬라이스 기술에 대한 표와 다른 비트슬라이스 기술을 사용하지 않은 이유도 나와 있습니다. 예를 들어 일부 장치는 PMOS를 사용했는데 속도가 느렸습니다. 다른 사람들은 사용하기 어렵다는 평판을 받는 빠른 기술인 ECL을 사용했습니다. 또 다른 명제 1976년부터 AM2900을 선택하는 것과 유사한 논리가 있습니다.

더 원해?

[켄 쉬리프] AM2901의 ECL 변형을 분해했습니다.. 또한있다. 1980년에 나온 책 당신은 읽을 수있다. 도 있습니다 Gopher 서버에 있는 수많은 문서 (농담 아니야). 귀하의 브라우저가 Gopher를 처리하지 못하는 경우 – 이는 놀라운 일이 아닙니다 – 다음 중 하나를 시도해 보십시오. 고퍼 프록시. 16비트 컴퓨터 설계 예 특히 볼만한 가치가 있습니다. 더 복잡한 예를 원하시나요? 여기 비트슬라이스로 구축된 초고속 8080 CPU가 있습니다. 이상 해커데이.io, [zpekic]은 최근에 이 8080을 만들고 거기에 아주 작은 Basic을 실행했습니다(믿을 수 없다면 비디오를 보세요).

[포함 된 콘텐츠]

제록스 스타 8010은 2900년 AM1981. 가격은 17,000원 ​​미만! 다행히도 할 수 있습니다 원한다면 하나를 에뮬레이트해 보세요. 그 문제에 대해서는 다음과 같이 할 수 있습니다. AM2900을 에뮬레이트 가능한 모든 디자인에 작동하지 않을 수도 있지만 Java를 사용합니다(팁: 릴리스에서 다운로드).

spot_img

최신 인텔리전스

spot_img