bộ nhớ cho máy tính đơn giản nhất có thể (Pi0K)


13

Tôi muốn xây dựng máy tính đơn giản nhất có thể. Tôi không quan tâm đến tốc độ hoặc lưu trữ, thực sự có tốc độ chậm và lưu trữ thấp là một lợi thế rất lớn vì tôi muốn xây dựng nó từ bóng bán dẫn (rơle lý tưởng!) Và tôi muốn có đèn LED cho mỗi trạng thái. Nó sẽ được lập trình thông qua Raspberry Pi sẽ lưu trữ một camera để bạn có thể thấy mỗi chu kỳ đồng hồ thực thi (vâng, nó sẽ chạy ở Hz chứ không phải GHz). Nó sẽ là một thiết kế mở với ý định rằng các trường học có thể mua các bộ phận, hiểu và cải thiện thiết kế. Vì vậy, tổng ngân sách phải dưới 400 bảng, tốt nhất là khoảng 100 bảng.

Tôi đã nghiên cứu điều này trong nhiều năm và có những ý tưởng tốt cho CPU (các thanh ghi tối thiểu, vi mã trong các công tắc DIP và các hoạt động logic / số học nối tiếp bit để giảm số lượng bóng bán dẫn). Những gì tôi không thể tìm ra là làm thế nào để có được bộ nhớ, tôi muốn 1024 đến 8096 bit.

Điều tốt nhất tôi có thể đưa ra là hai bộ giải mã 6 bit một cho phép truy cập vào lưới 64 x 64 của tụ điện. Họ có trách nhiệm trong họ hoặc họ không, và việc đọc sẽ củng cố trạng thái đó. Sẽ không có đèn LED trên các tụ điện vì việc làm mới 'DRAM' này sẽ theo thứ tự hoặc phút (điều này thật đáng tiếc vì đây sẽ là phần duy nhất không hiển thị trạng thái).

Các ý tưởng khác bao gồm một số dạng ổ băng (cơ chế cassette nhỏ gọn: lưu trữ lớn, quá phức tạp, không cần tìm), bộ nhớ trống (băng xung quanh một hạt đậu: quá khó để làm việc cơ học), bộ nhớ cơ (bánh xe đạp và vòng bi: quá nhiều lỗi bit), bộ nhớ lõi (lõi ferrite cứng lớn: vẫn rất khó để lấy đúng tỷ lệ yêu cầu), băng / thẻ (chúng ta vẫn có thể mua đầu đọc băng), đĩa quay có lỗ đục theo thứ tự nhị phân và một số từ tính bộ nhớ để lưu trữ (quá phức tạp để xây dựng).

Cuối cùng, mục đích là xuất bản một thiết kế có thể được xây dựng trong một năm học, nơi tất cả các phần của CPU và bộ nhớ đều 'hiển thị' và do đó bạn có thể xem hướng dẫn tìm nạp, giải mã thành microcode và giải mã địa chỉ / đăng ký truy cập / logic xảy ra trong quá trình vài phút

Nếu bất cứ ai có ý tưởng cho bộ nhớ thực sự rẻ (<< £ 100) trong đó rõ ràng chính xác cách thức hoạt động của nó thì xin vui lòng cho tôi biết.

Tony

Trạng thái hiện tại của PS là tại http://www.blinkingcomputer.org/


Chỉ cần google xung quanh những người đã làm điều này và những thứ tương tự, các thiết kế đã có, bạn có thể tạo BOM và thấy rằng bạn có thể cần thêm một chút tiền và thời gian.
PlasmaHH

Tôi sẽ đề nghị rằng đi đến cấp độ bóng bán dẫn có thể là một chút nhiều cho một dự án trường học. Tôi nghĩ rằng tích hợp quy mô vừa và nhỏ của CMOS sẽ dễ thực hiện hơn và có thể dễ hiểu hơn (cổng, thanh ghi, bộ đệm, bộ giải mã, v.v.). Bạn có thể bao gồm một cái gì đó chứng minh cách các cổng được làm từ bóng bán dẫn, dép xỏ ngón được làm từ cổng, v.v.).
Tut

1
Chỉ là một ý tưởng: Bạn nên làm cho bộ nhớ (chương trình) dễ dàng sửa đổi bằng tay, để mọi người có thể "lập trình" thủ công bằng tay :-).
Oyvind

Đầu tiên quyết định những gì bạn muốn máy tính có thể làm. Điều đó sẽ xác định bạn cần bao nhiêu bộ nhớ và tập lệnh nên là gì.
Tony Enni

Cảm ơn tất cả. PlasmaHH: Vâng, đó là một thách thức lớn để thực hiện điều này trong những hạn chế về tiền bạc và thời gian, đó là lý do tại sao không ai khác đã làm điều đó. Tut: Tôi thực sự muốn có thể nhìn thấy từng tín hiệu. Mọi người sau đó sẽ thấy các cổng logic được xây dựng từ các bóng bán dẫn. oywind: Có, nó sẽ được lập trình thông qua Raspberry Pi với giao diện web mà bạn có thể viết mã của riêng mình và xem nó chạy với một máy quay web. Tony Enni: Tôi muốn xây dựng máy tính đơn giản nhất hiển thị mọi tín hiệu - điều này sẽ thể hiện tất cả các khía cạnh và bắt buộc các kiến ​​trúc không chuẩn, như một ALU nối tiếp bit.
Tony Robinson

Câu trả lời:


9

Có nhiều người đã chế tạo máy tính từ các bóng bán dẫn rời rạc, IC, rơle và thậm chí cả ống chân không. Chúng có phạm vi từ các máy 4 bit cho đến 32 bit. Tất nhiên, 4 bitters sẽ là đơn giản nhất bạn có thể xây dựng và làm bất cứ điều gì. Bộ vi xử lý đầu tiên là 4004 bit của Intel .

Tôi sẽ bắt đầu bằng cách tìm kiếm Google cho " máy tính 4 bit pha tại nhà " (không có dấu ngoặc kép).

Đây là một bảng từ máy tính 4 bit được transitor:

nhập mô tả hình ảnh ở đây

Theo như bộ nhớ, một số dự án trong số này đang sử dụng các bóng bán dẫn rời rạc "gian lận" và sử dụng chip SRAM. Chúng cực kỳ rẻ cho số lượng bộ nhớ vừa phải, 32KB là 3,28 đô la và không yêu cầu đồng hồ và không làm mới.

Ngay cả khi phần còn lại của máy tính của bạn sử dụng rơle, sử dụng chúng cho bộ nhớ sẽ rất tốn kém.

Nếu bạn có thể nhận được bằng các bit 1K, bạn có thể xây dựng một bit với flip-flop; 2048 2N3904 sẽ có giá 3 ¢ mỗi người (60 đô la hoàn toàn, cộng với các thành phần khác thậm chí sẽ rẻ hơn - điện trở cho 1/2 phần trăm, v.v.). Bạn có thể nhận được PCB được tạo ra với giá 10 đô la, sau đó thuê một đứa trẻ để nhét chúng.

Chuyển tiếp máy tính hẹn hò với tất cả các cách trở lại vào cuối năm 1930, và một trong những đầu tiên là Harvard Mark I . Đó là nơi kiến trúc Harvard xuất phát (không gian và dữ liệu chương trình riêng biệt, so với kiến trúc von Neumann kết hợp cả hai).

Máy tính chuyển tiếp pha tại nhà nổi tiếng nhất được chế tạo bởi Harry Porter.

nhập mô tả hình ảnh ở đây

Kiểm tra các video của máy tính đang chạy. Nhắc nhở tôi về một trao đổi điện thoại cơ điện cũ.

Đây là một phần của một máy tính chuyển tiếp pha tại nhà khác có tên là Zusie :

nhập mô tả hình ảnh ở đây

Rất nhiều đèn nhấp nháy.

Và cuối cùng, đây là một liên kết đến video của bộ cộng 4 bit, được tạo thành từ 24 rơle. Các trình bổ sung như thế này là trái tim của ALU (đơn vị logic số học) trong máy tính.


Xin lỗi, "Tôi đã nghiên cứu điều này trong nhiều năm" đã bị chôn vùi trong đoạn thứ hai. Tôi đã chỉnh sửa tiêu đề của bài đăng để nêu rõ đó là bộ nhớ mà tôi quan tâm. Nếu bạn có thể nhận được bằng các bit 1K, bạn có thể tạo một bài với các flip-flop được transitor; 2048 2N3904 sẽ có giá 3 ¢ mỗi người (60 đô la hoàn toàn, cộng với các thành phần khác thậm chí sẽ rẻ hơn - điện trở trong 1/2 phần trăm, v.v.). Bạn có thể nhận được PCB được tạo ra với giá 10 đô la, sau đó thuê một đứa trẻ để nhét chúng.
Tony Robinson

ctd ... cái này gần hơn so với tôi đã được đánh giá cao, nhưng bạn cần giải mã địa chỉ và tôi sẽ đặt nhiều bóng bán dẫn hơn cho mỗi ô nhớ. Có thể một bóng bán dẫn một tụ điện 'DRAM' tế bào bộ nhớ cũng có thể có trong ngân sách.
Tony Robinson

@TonyRobinson Tôi đã cố gắng giải quyết vấn đề về bộ nhớ (như bạn thừa nhận) nhưng tôi cũng đang cố gắng cung cấp thông tin cho mong muốn của bạn để tạo ra một máy tính từ các bóng bán dẫn và / hoặc rơle rời rạc, và để minh họa rằng một số đã thành công trong việc này. Chúc may mắn trong nỗ lực của bạn.
tcrosley

6

Nếu bạn muốn bộ nhớ đơn giản , sau đó nhìn không xa hơn một flip-flop . Với hai bóng bán dẫn và bốn điện trở, bạn có thể có một chút bộ nhớ. Bạn cũng có thể tạo một flip-flop với hai cổng NOR được ghép chéo, hoặc chỉ cần mua một IC với một loạt các flip-flop trong đó.

Trên thực tế, bộ đệm CPU rất nhanh về cơ bản là một loạt các flip-flop, được tích hợp vào CPU.


2
DRAM tiêu thụ nhiều năng lượng hơn vì nó cần phải được làm mới liên tục trong khi SRAM chỉ sử dụng một dòng điện nhỏ khi không hoạt động. Lý do sử dụng tụ điện là vì nó chỉ yêu cầu một bóng bán dẫn trên mỗi bit, do đó cho phép mật độ bộ nhớ cao hơn nhiều .
Tom Carpenter

Bạn nói đúng - Tôi đã nghĩ đến dép xỏ ngón RTL đơn giản. Tôi sẽ chỉnh sửa để làm rõ.
Phil Frost

1
IC bị loại - họ che giấu những gì thực sự xảy ra. Tôi muốn mọi tín hiệu được phơi bày càng xa càng tốt. Tôi thực sự không quan tâm đến sức mạnh - Tôi không thể thấy sức mạnh là một vấn đề, nó sẽ được kết nối với Raspberry Pi để có nguồn điện. Một DRAM bóng bán dẫn có thể là một cách tốt hơn nhiều so với các ý tưởng về tụ điện của tôi như bài viết trước đã đề xuất - Tôi sẽ phải tìm ra những bóng bán dẫn nào cần thiết cho điều đó để giữ cho sự rò rỉ điện tích đủ thấp (tôi cần thời gian làm mới trong thứ tự phút). Khác, vâng, dép xỏ ngón trông giống như ý tưởng tốt nhất tiếp theo.
Tony Robinson

@TonyRobinson "Nó sẽ được nối với Raspberry Pi để có nguồn điện." - ...có lẽ. Phụ thuộc vào công suất tối đa có sẵn thông qua Raspberry Pi và họ logic mà bạn dự định sử dụng. (Tôi hy vọng rằng một PSU băng ghế trung bình sẽ có thể cung cấp năng lượng nhiều hơn một chút, mặc dù vậy)
user253751

2

Tôi đồng ý rằng sẽ rất tuyệt nếu có một hệ thống máy tính hoàn chỉnh với đèn LED cho mọi trạng thái, có thể nhìn thấy bằng mắt người.

Máy tính chuyển tiếp TIM 8 sử dụng 8 tụ điện, 2 điốt và một rơle SPDT mỗi byte trong bộ nhớ chính 12 byte RAM (bộ nhớ dữ liệu). (TIM 8 có 16 byte bộ nhớ biến nếu bạn bao gồm các thanh ghi).

Máy tính chuyển tiếp TIM 8 sử dụng băng đục lỗ cho bộ nhớ chương trình của nó.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Có thể thay thế các điốt đó bằng đèn LED, vì vậy có một xung ngắn cho thấy dữ liệu đi vào hoặc ra khỏi một byte RAM? Có lẽ nếu hệ thống làm DRAM đủ nhanh, quét qua từng byte RAM, thì mọi bit trạng thái sẽ xuất hiện ở các đèn LED đó (mặc dù về mặt kỹ thuật chỉ một byte đèn LED sẽ được kích hoạt bất kỳ lúc nào). (Chúng phải là đèn LED hiện tại khá cao nếu chúng ta muốn LOAD và STORE dữ liệu từ các tụ điện đó sang các thanh ghi dựa trên rơle).

Có thể đặt một điện trở và đèn LED trên mỗi tụ lưu trữ bit, thực sự đồng thời hiển thị từng bit trạng thái? (Chúng phải là đèn LED dòng điện khá thấp và tụ điện vật lý lớn nếu chúng ta muốn tụ giữ dữ liệu đủ lâu để có tốc độ làm mới hợp lý. Một số đèn LED có thể dễ dàng nhìn thấy chỉ với 1 mA dòng điện. chu kỳ và tụ điện (guesstimating) ban đầu được sạc tới 12 V mặc dù (guesstimating) một điện tích 7 V trên tụ điện đủ để sạc phần cứng hạ lưu, sau đó tụ điện cần định mức C ~ = i * t / V = ​​1 mA * 1 s / (12 V - 7 V) = 200 uF.).

Tất nhiên, điều này sẽ lớn hơn rất nhiều và tốn nhiều công sức của con người để lắp ráp hơn hầu hết mọi bộ nhớ chính dựa trên mạch tích hợp.


1

Tại sao bạn không sử dụng CPU 8 bit đơn giản (ví dụ 6502) và một lượng bộ nhớ rất nhỏ (thanh ghi CPU, RAM RAM và một lượng lưu trữ ngoài rất nhỏ (ví dụ: FD, HD hoặc đĩa flash, v.v. .) & sau đó chỉ cần giải thích với các slide như sau:

  1. Các thành phần phần cứng, thành phần phụ và chức năng của chúng
  2. Hệ điều hành, chương trình hệ thống và chương trình người dùng
  3. Tải và thực hiện một chương trình đơn giản để cộng 2 số lại với nhau, lưu kết quả vào từng loại bộ nhớ và hiển thị trên màn hình video.

Nếu bạn muốn giữ cho thiết bị đơn giản và rẻ tiền nhất có thể, hãy sử dụng hệ thống phát triển bộ điều khiển vi mô làm hệ thống cơ sở của bạn hoặc thậm chí một Arduino là đủ đơn giản và không tốn kém. Không ai trong số các sinh viên sẽ chế tạo một máy tính chuyển tiếp hoặc ống chân không đơn giản - cũng không ai thực sự muốn họ làm như vậy. Họ nên bắt đầu với một cuốn sách hay & Arduino để hiểu cơ bản về lập trình. Sau đó, nếu họ muốn đọc / điều khiển các thiết bị bên ngoài, họ có thể đi sâu vào lập trình cụ thể hoặc vào kỹ thuật.

Đây là một dự án tốt để bạn xem xét cho các ý tưởng:
http://www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS


Mặc dù ngày nay chúng ta gọi nó là " W65C02S "
Ignacio Vazquez-Abrams

Cảm ơn, tôi đến từ 6502 ngày (BBC micro nhưng tôi cũng đã làm việc trên ZX80). Tôi đồng ý rằng có rất nhiều thứ để học ở cấp độ đó, thực sự tôi chỉ đang đọc lại Hướng dẫn sử dụng nâng cao của Micro Microuter . Tôi thực sự muốn ở một mức dưới mức đó, bạn thấy một lệnh 5 bit xuất hiện, nó nhảy qua một bộ vi mã nhỏ đặt một vài thanh ghi bit và các đường bus và gọi ALU nối tiếp một chút để bạn có thể thấy tất cả logic xảy ra từng chút một. Đó là lý do tại sao nó sẽ chậm nhất từ ​​trước đến nay.
Tony Robinson

Vâng - điều đó sẽ chậm hơn. Bạn đã xem xét thông qua các chi tiết tại url này: instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS Nó thực sự khá tốt & cho phép đối với một số tùy biến duy nhất cho hệ thống của bạn.
DIYser

0

Tôi đồng ý rằng sẽ rất tuyệt nếu có một hệ thống máy tính hoàn chỉnh với đèn LED cho mọi trạng thái, có thể nhìn thấy bằng mắt người, thay vì ẩn bên trong một hộp đen bí ẩn.

Bạn có thể cân nhắc sử dụng bus bộ nhớ song song bit tiêu chuẩn ít nhiều - có lẽ giống như STEbus (bus IEEE-1000) .

Bạn có thể cân nhắc sử dụng một loạt các IC như 74HC273 hoặc 74LS373 hoặc 74HC564 để lưu trữ dữ liệu để trạng thái hiện tại của dữ liệu bên trong chip luôn hiển thị trên các đèn LED được kết nối với các chân đầu ra song song. Sau đó, sử dụng bộ đệm 3 trạng thái bát phân (chẳng hạn như 74HC241 hoặc 74LS245) hoặc mux, cũng được kết nối với các chân đầu ra song song đó, để đưa dữ liệu vào bus. Bạn kết thúc với một vài chip giải mã một trong N và 2 chip trên 8 bit lưu trữ. "Điều này cho phép bạn ... xem dữ liệu nào thực sự được lưu trữ trong mỗi byte RAM." - Máy tính đơn giản có thể là máy tính đơn giản có thể có của RAM Guy với bộ nhớ RAM thành phần rời rạc . Cách sắp xếp tương tự được sử dụng cho các thanh ghi trong CPU Fourbit của Jaromir hoặc các thanh ghi trong CPU spaghetti 8 bit của Kyle .

Giá hiện tại (2016) từ Mouser.com là khoảng 0,11 đô la / bit trong qty 10 cho sự sắp xếp như vậy (một chốt lưu trữ bát phân cộng với một bộ đệm 3 trạng thái bát phân trên 8 bit) và 0,05 đô la / bit cho đèn LED mới trong qty 500. 2 ^ 9 byte = 512 byte = 2 ^ 12 bit = 4096 bit, nghĩa là (rất đại khái)

  • $ 205 trong đèn LED
  • $ 450 trong bộ nhớ lưu trữ và chip đệm
  • $ ??? các chip giải mã 1-N để chọn chip lưu trữ hoặc chip đệm phù hợp; chi phí của bảng, dây, nhân công, vv

Có lẽ bạn có thể xây dựng (rất gần) 64 byte bộ nhớ dữ liệu (cùng dung lượng bộ nhớ dữ liệu với Atmel ATTINY13 hoặc Microchip PIC16F570) với giá khoảng 90 đô la (có thể phù hợp với ngân sách $ 150 ~ = £ 100 của bạn).

Bạn có thể thấy lý do tại sao việc thay thế tất cả các chip lưu trữ và bộ đệm và hầu hết các chip giải mã bằng một chip SRAM song song 32Kx8 sẵn có cho bạn dung lượng lưu trữ thấp hơn với giá dưới 10 đô la. (Liên minh AS6C1008-55PCN, Cypress CY7C199CN-15PXC, v.v.)

Đây có thể là lý do tại sao hầu hết các CPU sản xuất tại nhà, từ CPU 4 bit Nibbler nhỏ bé đến Máy tính Rơle RC-3 ấn tượng http://www.computercARM.org/2012/09/rc-3-relay-computer/ http: / /www.computercARM.org/projects/rc3/ , được nối với chip SRAM hộp đen cho bộ nhớ chính.

Với một cái gì đó giống như một bus bộ nhớ tiêu chuẩn, có lẽ bạn có thể có một vài bảng nhớ khác nhau được kết nối với CPU cùng một lúc:

  • Một vài byte lưu trữ biến hoàn toàn có thể nhìn thấy và một vài byte ROM chương trình cứng có thể nhìn thấy hoàn toàn, đủ cho một số chương trình demo thú vị.
  • Một chip SRAM đôi khi có thể được cắm vào để chứa các chương trình hoặc dữ liệu hoặc cả hai khi bạn chưa xây dựng đủ bộ nhớ hiển thị hoàn toàn để lưu trữ chúng.

0

Đây là một gợi ý khác cho một dự án tương tự có thể đáng giá - xây dựng Turing Machine . Đó là về máy tính đơn giản nhất có thể

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.