가장 간단한 컴퓨터를위한 메모리 (Pi0K)


13

가장 간단한 컴퓨터를 만들고 싶습니다. 나는 속도 나 저장에 신경 쓰지 않고, 실제로 느린 속도와 낮은 저장은 트랜지스터 (이상적으로 릴레이!)로 구축하고 각 상태에 대한 LED를 원하기 때문에 큰 이점입니다. Raspberry Pi를 통해 프로그래밍되어 카메라를 호스팅하여 각 클럭 사이클이 실행되는 것을 볼 수 있습니다 (예, GHz가 아닌 Hz에서 실행됩니다). 학교가 부품을 구매하고 설계를 이해하고 개선 할 수 있도록하는 열린 설계가 될 것입니다. 따라서 총 예산은 400 파운드 미만, 바람직하게는 100 파운드 미만이어야합니다.

나는 수년 동안 이것을 연구했으며 CPU (최소 레지스터, DIP 스위치의 마이크로 코드 및 트랜지스터 수를 줄이기위한 비트 직렬 논리 / 산술 연산)에 대한 좋은 아이디어를 가지고 있습니다. 내가 알아낼 수없는 것은 메모리를 얻는 방법입니다 .1024에서 8096 비트를 원합니다.

내가 얻을 수있는 가장 좋은 것은 64 x 64 그리드의 커패시터에 액세스 할 수있는 2 개의 6 비트 1 개의 n 디코더입니다. 그들은 그들에게 책임이 있거나 그렇지 않다. 그리고 독서는 그 상태를 강화시킬 것이다. 이 'DRAM'의 리프레쉬가 수십 분 또는 수 분 내에 있기 때문에 커패시터에 LED가 없을 것이다 (이것은 상태를 나타내지 않는 유일한 부분이므로 부끄러운 일이다).

다른 아이디어로는 테이프 드라이브 (컴팩트 카세트 메커니즘 : 큰 저장 공간, 너무 복잡한, 탐색 없음), 드럼 메모리 (콩 주위의 테이프 : 기계공이 작동하기가 너무 어렵다), 기계적 메모리 (자전거 휠 및 볼 베어링)가 있습니다. 비트 오류가 너무 많음), 코어 메모리 (대형 하드 페라이트 코어 : 여전히 필요한 스케일로 맞추기가 매우 까다 로움), 테이프 / 카드 (테이프 리더를 구입할 수 있습니까), 2 진 순서의 구멍이 뚫린 디스크 회전 및 일부 자석 저장을위한 메모리 (너무 복잡함).

궁극적으로 목표는 CPU 및 메모리의 모든 부분이 '보이는'학년도에 구축 할 수있는 디자인을 게시하는 것이므로 명령어 가져 오기, 마이크로 코드로 디코딩 및 디코딩 / 등록 액세스 / 논리 모두 주소 지정을 볼 수 있습니다. 몇 분 동안 발생합니다.

누구든지 실제로 어떻게 작동하는지 정확히 알 수있는 정말 저렴한 메모리 (<< £ 100)에 대한 아이디어가 있다면 알려주십시오.

토니

PS 현재 플레이 상태는 http://www.blinkingcomputer.org/ 에 있습니다 .


이미 이와 비슷한 일을 한 사람들을 위해 구글을 둘러보십시오. 디자인이 있습니다 .BOM을 만들고 돈과 시간이 조금 더 필요할 것입니다.
PlasmaHH

나는 학교 프로젝트에 트랜지스터 레벨로가는 것이 조금 더 좋습니다. CMOS 소규모 및 중간 규모의 통합이 훨씬 더 가능하고 이해하기 쉬울 것이라고 생각합니다 (게이트, 레지스터, 버퍼, 디코더 등). 트랜지스터로 게이트를 만드는 방법, 게이트로 플립 플롭을 만드는 방법 등을 설명 할 수 있습니다.)
Tut

1
아이디어 : 손으로 (프로그램) 메모리를 쉽게 수정할 수 있도록해야 사람들이 손으로 직접 "프로그램"할 수 있습니다.
oyvind

먼저 컴퓨터가 할 수있는 일을 결정하십시오. 필요한 메모리 양과 명령어 세트를 결정합니다.
Tony Ennis이 (가)

모두 감사합니다. PlasmaHH : 그렇습니다. 돈과 시간의 제약으로 이것을하는 것은 큰 도전입니다. 그래서 아직 아무도 그것을하지 않았습니다. Tut : 각 신호를보고 싶습니다. 그러면 사람들은 로직 게이트가 트랜지스터에서 어떻게 만들어 지는지를 보게 될 것입니다. oywind : 예, 고유 한 코드를 작성하고 웹 캠으로 실행되는 것을 볼 수있는 웹 인터페이스가있는 Raspberry Pi를 통해 프로그래밍 할 수 있습니다. Tony Ennis : 모든 신호를 표시하는 가장 간단한 컴퓨터를 만들고 싶습니다. 모든 측면을 보여주고 비트 직렬 ALU와 같은 비표준 아키텍처가 필요합니다.
Tony Robinson

답변:


9

개별 트랜지스터, IC, 릴레이 및 진공관으로 컴퓨터를 만든 사람들이 많이 있습니다. 4 비트 머신에서 최대 32 비트까지 다양합니다. 물론 4 비트는 가장 간단하게 구축하고 수행 할 수 있습니다. 최초의 마이크로 프로세서는 인텔의 4 비트 4004 였습니다.

먼저 Google에서 " 가제 양조 4 비트 컴퓨터 "(따옴표없이)를 검색합니다.

다음은 트랜지스터 4 비트 컴퓨터의 보드입니다.

여기에 이미지 설명을 입력하십시오

메모리에 관한 한, 이산 트랜지스터를 사용하는 일부 프로젝트는 "치트"하고 SRAM 칩을 사용합니다. 그들은 적당한 양의 메모리를 위해 엄청나게 싸고, 32KB 는 $ 3.28이며 시계와 리프레쉬가 필요하지 않습니다.

컴퓨터의 나머지 부분에서 릴레이를 사용하더라도 메모리에 릴레이를 사용하면 엄청나게 비쌉니다.

1K 비트로 얻을 수 있다면 트랜지스터 플립 플롭으로 비트를 만들 수 있습니다. 2048 2N3904의 가격은 각각 3 ¢ (총 $ 60, 더 저렴한 다른 구성품-1/2 센트의 저항 등)가 소요됩니다. PCB를 한 번에 10 달러에 구입 한 다음 아이를 고용하여 물건을 채울 수 있습니다.

릴레이 컴퓨터는 1930 년대 후반까지 거슬러 올라갑니다. 첫 번째 중 하나는 하버드 마크 1이었습니다 . 하버드 아키텍처 라는 이름 이 유래 된 곳입니다 (두 프로그램 을 결합한 폰 노이만 아키텍처 와 비교하여 별도의 프로그램 공간과 데이터 ).

가장 유명한자가 양조 릴레이 컴퓨터는 Harry Porter가 만든 것입니다.

여기에 이미지 설명을 입력하십시오

실행중인 컴퓨터의 비디오를 확인하십시오. 오래된 전기 기계식 전화 교환을 상기시킵니다.

Zusie 라는 또 다른자가 양조 릴레이 컴퓨터의 일부가 있습니다 .

여기에 이미지 설명을 입력하십시오

깜박이는 불빛이 많습니다.

마지막 으로 24 개의 릴레이로 구성된 4 비트 가산기 비디오에 대한 링크 입니다. 이와 같은 가산기는 컴퓨터에서 ALU (산술 논리 장치)의 핵심입니다.


죄송합니다. "수년에 걸쳐 조사한 결과"가 두 번째 단락에 묻혔습니다. 포스트의 제목을 편집하여 내가 관심있는 메모리임을 명확하게 밝혔습니다. 1K 비트로 얻을 수 있다면 트랜지스터 플립 플롭으로 만들 수 있습니다. 2048 2N3904의 가격은 각각 3 ¢ (총 $ 60, 더 저렴한 다른 구성품-1/2 센트의 저항 등)가 소요됩니다. PCB를 한 번에 10 달러에 구입 한 다음 아이를 고용하여 물건을 채울 수 있습니다.
Tony Robinson

ctd ... 이것은 손님보다 더 가깝지만 주소 디코딩이 필요하며 메모리 셀 당 더 많은 트랜지스터를 넣을 것입니다. 아마도 예산 내에서 하나의 트랜지스터 하나의 커패시터 'DRAM'메모리 셀도 가능하다.
Tony Robinson

@TonyRobinson 나는 메모리 사용을 해결하려고 노력했지만 (당신이 인정한대로) 또한 컴퓨터를 이산 트랜지스터 및 / 또는 릴레이로 만들고 싶을 때의 정보를 제공하려고 노력했으며 몇 가지가 이것에 성공했다는 것을 설명하려고했습니다. 당신의 노력에 행운을 빕니다.
tcrosley

6

간단한 메모리 를 원한다면 flip-flop 이상을 보지 마십시오 . 두 개의 트랜지스터와 네 개의 저항을 사용하면 전체 메모리를 가질 수 있습니다. 두 개의 교차 결합 NOR 게이트로 플립 플롭을 만들거나 이미 플립 플롭이 많은 IC를 구입할 수 있습니다.

실제로 매우 빠른 CPU 캐시 는 기본적으로 CPU 에 통합 된 플립 플롭입니다.


2
DRAM은 유휴 상태 일 때 작은 대기 전류 만 사용하는 반면 지속적으로 새로 고쳐야하므로 전력 소비가 더 큽니다. 커패시터를 사용하는 이유는 비트 당 하나의 트랜지스터 만 필요하기 때문에 훨씬 높은 메모리 밀도를 허용하기 때문 입니다.
Tom Carpenter

네 말이 맞아-간단한 RTL 플립 플롭을 생각 했어 명확히하기 위해 편집 할 것입니다.
Phil Frost

1
IC가 나왔습니다. 실제로 무슨 일이 일어나고 있는지 숨 깁니다. 모든 신호가 최대한 노출되기를 원합니다. 나는 정말로 전력에 신경 쓰지 않는다-나는 전력이 문제가되는 것을 볼 수 없으며, 그것은 Raspberry Pi에 연결되어 전력을 사용할 수 있습니다. 이전 게시물에서 제안한 것처럼 하나의 트랜지스터 DRAM이 커패시터 배열 아이디어보다 훨씬 더 좋은 방법 일 수 있습니다. 충전 누설을 충분히 낮게 유지하기 위해 필요한 트랜지스터를 해결해야합니다. 분 순서). 그렇지 않으면 플립 플롭이 다음 최고의 아이디어처럼 보입니다.
Tony Robinson

@TonyRobinson "Raspberry Pi에 연결되어 전원을 사용할 수 있습니다." - ...아마도. Raspberry Pi를 통해 사용 가능한 최대 전력 및 사용할 논리 제품군에 따라 다릅니다. (저는 평균 벤치 PSU가 훨씬 더 많은 전력을 공급할 수있을 것으로 기대합니다)
user253751

2

나는 인간의 눈으로 볼 수있는 모든 상태 의 LED를 갖춘 완전한 컴퓨터 시스템을 갖는 것이 매우 시원 할 것에 동의한다 .

TIM 8 중계 시스템은 8 개 개의 커패시터, 다이오드 (2) 및 메인 메모리 RAM (데이터 기억 부)의 12 바이트의 바이트 당 SPDT 릴레이를 사용한다. (TIM 8에는 레지스터를 포함하면 16 바이트의 가변 메모리가 있습니다).

TIM 8 릴레이 컴퓨터는 프로그램 메모리에 펀치 테이프를 사용합니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

이러한 다이오드를 LED로 교체 할 수 있습니까? 따라서 RAM의 바이트로 들어오고 나가는 데이터를 보여주는 짧은 펄스가 있습니까? 아마도 시스템이 DRAM을 충분히 빠르게 새로 고치면 RAM의 모든 바이트를 스캔하지만 모든 비트의 상태가 해당 LED에서 볼 수있는 것처럼 보일 수 있습니다 (기술적으로는 한 바이트의 LED 만 즉시 활성화 될 수 있음). (그러한 커패시터에서 릴레이 기반 레지스터로 데이터를로드하고 저장하려면이 LED는 꽤 고전류 LED 여야합니다).

각 비트 저장 커패시터에 저항과 LED를 배치하여 모든 비트 상태를 동시에 표시 할 수 있습니까? (콘덴서가 합리적인 리프레시 속도를 위해 데이터를 충분히 길게 유지하려면 일부 저 전류 LED와 물리적으로 큰 커패시터 여야 함) 일부 LED는 1mA의 전류로 쉽게 볼 수 있습니다. 커패시터에서 7V의 충전으로 다운 스트림 하드웨어를 충전하기에 충분하더라도 사이클 및 (추정) 커패시터는 처음에 12V로 충전됩니다. 그러면 커패시터에는 C ~ = i * t / V = ​​1mA의 정격이 필요합니다. * 1 초 / (12 V-7 V) = 200 uF.).

물론 이것은 집적 회로 기반의 주 메모리보다 훨씬 더 크고 더 많은 인력이 필요하다.


1

단순한 8 비트 CPU (예 : 6502)와 매우 적은 양의 메모리 (CPU 레지스터, IC RAM 및 매우 적은 양의 외부 저장소 (예 : FD, HD 또는 플래시 디스크)를 사용하는 것이 어떻습니까? )) 다음 슬라이드를 사용하여 설명하십시오.

  1. 하드웨어 구성 요소, 하위 구성 요소 및 해당 기능
  2. 운영 체제, 시스템 프로그램 및 사용자 프로그램
  3. 간단한 프로그램의로드 및 실행으로 2 개의 숫자를 더하고 각 유형의 메모리에 결과를 저장하고 비디오 디스플레이에 표시합니다.

장치를 가능한 한 간단하고 저렴하게 유지하려면 마이크로 컨트롤러 개발 시스템을 기본 시스템으로 사용하거나 Arduino도 간단하고 저렴합니다. 어떤 학생들도 간단한 릴레이 또는 진공관 컴퓨터를 만들지 않을 것입니다. 프로그래밍에 대한 기본적인 이해를 위해 좋은 책과 Arduino로 시작해야합니다. 그런 다음 나중에 외부 장치를 읽거나 제어하려는 경우 특정 프로그래밍 또는 엔지니어링에 대해 자세히 알아볼 수 있습니다.

다음은 아이디어를 고려할 수있는 좋은 프로젝트입니다.
http://www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS


오늘날 우리는 그것을 " W65C02S " 라고 부릅니다
Ignacio Vazquez-Abrams

고마워, 나는 6502 일 (BBC 마이크로뿐만 아니라 ZX80에서 일했다)에서 왔습니다. 나는 그 수준에서 배울 것이 많으며, 실제로 BBC 마이크로 컴퓨터 고급 사용자 안내서를 다시 읽고 있다는 것에 동의합니다 . 나는 정말로 그 아래 레벨이되고 싶습니다 .5 비트 명령이 나오고, 몇 가지 비트 레지스터와 버스 라인을 설정하고 비트 직렬 ALU를 호출하는 작은 마이크로 코드 세트를 뛰어 넘으며 모든 논리를 볼 수 있습니다 조금씩 일어나고 있습니다. 그것이 가장 느린 이유입니다.
Tony Robinson

예, 느려질 것입니다. 이 URL에서 자세한 내용을 살펴 보셨습니까? instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS 실제로 꽤 좋고 시스템에 대한 고유 한 사용자 정의를 허용합니다.
DIYser

0

나는 신비한 블랙 박스 안에 숨겨져 있지 않고 육안으로 볼 수있는 모든 상태의 LED를 갖춘 완전한 컴퓨터 시스템을 갖추는 것이 매우 멋지다는 데 동의한다.

STEbus (IEEE-1000 버스) 와 같은 표준 비트 병렬 메모리 버스 사용을 고려할 수 있습니다 .

74HC273 또는 74LS373 또는 74HC564와 같은 IC를 사용하여 데이터를 저장하면 칩 내부의 데이터의 현재 상태가 항상 병렬 출력 핀에 연결된 LED에서 볼 수 있습니다. 그런 다음 8 진 3 상태 버퍼 (예 : 74HC241 또는 74LS245) 또는 병렬 출력 핀에 연결된 mux를 사용하여 데이터를 버스로 퍼널 링합니다. 결국 N 개의 1 개의 디코더 칩과 8 비트 스토리지 당 2 개의 칩이 생깁니다. "이 기능을 사용하면 RAM의 각 바이트에 실제로 저장된 데이터를 볼 수 있습니다." - 개별 구성 요소의 RAM이 가능한 컴퓨터 등 퐁 가이의 SAP-1 간단한 . Jaromir의 Fourbit CPU 의 레지스터 또는 Kyle의 8 비트 스파게티 CPU의 레지스터에도 동일한 배열이 사용됩니다 .

Mouser.com의 현재 (2016) 가격은 이러한 배열 (8 비트 당 8 진수 스토리지 래치 1 개와 8 비트 3 상태 버퍼 1 개)에 대해 qty 10에서 약 0.11 / 비트이며 qty 500에서 새 LED의 경우 $ 0.05 / 비트입니다. 2 ^ 9 바이트 = 512 바이트 = 2 ^ 12 비트 = 4096 비트, (대략)

  • LED에서 $ 205
  • 스토리지 및 버퍼 칩에서 450 달러
  • $ ??? 적절한 저장 또는 버퍼 칩을 선택하기위한 1-N-N 디코더 칩들; 보드, 와이어, 인건비 등

아마도 당신은 대략 $ 90 ($ 150 ~ = £ 100 예산에 맞을 수도 있음)에 대략 64 바이트의 데이터 메모리 (Atmel ATTINY13 또는 Microchip PIC16F570과 같은 양의 데이터 메모리)를 구축 할 수있을 것입니다.

모든 스토리지 및 버퍼 칩과 대부분의 디코더 칩을 기성품 32Kx8 병렬 SRAM 칩으로 교체하여 10 달러 미만으로 훨씬 더 많은 스토리지를 제공하려는 이유를 알 수 있습니다. (Alliance AS6C1008-55PCN, Cypress CY7C199CN-15PXC 등)

이것이 작은 Nibbler 4 비트 CPU 에서 인상적인 RC-3 릴레이 컴퓨터에 이르기까지 대부분의 가정용 CPUhttp://www.computerculture.org/2012/09/rc-3-relay-computer/ http : / 인 이유입니다 . /www.computerculture.org/projects/rc3/ 은 메인 메모리를위한 블랙 박스 SRAM 칩에 연결되어 있습니다.

표준 메모리 버스와 같은 것으로 여러 개의 다른 메모리 보드를 동시에 CPU에 연결할 수 있습니다.

  • 몇 바이트의 완전히 보이는 가변 저장 장치와 몇 바이트의 완전히 보이는 하드 와이어 프로그램 ROM은 흥미로운 데모 프로그램에 충분합니다.
  • 프로그램이나 데이터를 저장하기 위해 때때로 연결될 수있는 SRAM 칩 또는 아직 완전히 눈에 띄는 메모리를 아직 저장하지 않은 상태에서 저장할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.