Giới hạn tần số cho CPU homebrew


15

Khi xem xét một số CPU được chế tạo tùy chỉnh, tôi nhận thấy tần số mà chúng hoạt động tương đối thấp so với các CPU hiện đại (theo thứ tự vài MHz). Có một lý do kỹ thuật điện tử cho giới hạn đó, ví dụ như cho bánh mì? Nếu có, làm thế nào để xác định tần số tối đa có thể đạt được với thiết kế của bạn?


Giống như ... chip VLSI làm tại nhà? Tôi tưởng tượng đó là một giới hạn chi phí. Độ chính xác mà thiết bị trị giá hàng triệu đô la không thể được nhân đôi tại nhà và kết quả là các con chip phải chạy chậm hơn.
Nate

4
@Nate, tôi tưởng tượng rằng anh ấy đang đề cập đến CPU đa chip homebrew được xây dựng từ TTL. Ví dụ: homebrewcpu.com
Alfred Centauri

@Nate tôi đã cập nhật câu hỏi của tôi để cụ thể hơn.
Eugen

@AlfredCentauri - vâng, bạn đúng;)
Eugen

Câu trả lời:


16

Nó chủ yếu phải làm với độ dài của sự kết nối và sự chậm trễ lan truyền qua các cổng. Nếu chúng ta giảm CPU về bản chất của nó, thì đó là một máy phản hồi. Một loạt các mạch logic tổ hợp tính toán một số chức năng boolean qua trạng thái hiện tại của máy và các chức năng đó xác định trạng thái mới, được chốt bởi mạch tuần tự khi có cạnh đồng hồ mới xuất hiện. Các mạch tổ hợp đều có độ trễ. Thời gian đồng hồ không thể ngắn hơn thời gian để con đường chậm nhất đi qua các cổng này tạo ra kết quả ổn định vì một bit không chính xác dừng chương trình.

Hơn nữa, logic tuần tự có yêu cầu thời gian. Trước khi cạnh đồng hồ đến, có một số thời gian thiết lập tối thiểu mà các đầu vào phải ổn định và sau đó chúng phải ổn định trong một thời gian giữ. Nếu những điều này bị vi phạm, nhà nước trở thành rác.

Sự chậm trễ lan truyền được gây ra bởi những thứ như điện dung ký sinh có thể sạc nhanh như thế nào, dòng điện có thể tạo ra nhanh như thế nào khi đối mặt với điện cảm và tốc độ của các thiết bị silicon có thể chuyển đổi. Ví dụ, một bóng bán dẫn lưỡng cực có đế nhỏ hơn có thể chuyển đổi nhanh hơn một bóng có đế lớn hơn, vì vậy một bóng bán dẫn nhỏ trên chip sẽ nhanh hơn một bóng rời rạc.

Trong một câu trả lời trước đó mà tôi đã xóa, tôi đã viết về hiệu ứng đường truyền. Nhưng tôi đã không nghĩ rằng những hiệu ứng này thậm chí không đi vào bức tranh ở tốc độ mà chúng ta đang nói đến bởi vì, ở tốc độ 10 Mhz, bước sóng vẫn còn khoảng 30 mét. Vì vậy, trên quy mô của một bảng mạch có kích thước thông thường, các xung trên thang thời gian của một vài megahertz vẫn đạt đến tất cả các phần của mạng đồng.

Vì vậy, nếu bạn tạo CPU từ các thành phần riêng biệt, bạn chỉ đơn giản là không đạt được các thành phần nhỏ với thời gian chuyển mạch nhanh và cùng một khoảng cách giúp giảm thiểu điện dung và điện cảm đi lạc.

Tuy nhiên, các máy thành phần rời rạc cổ đại trong những năm 1960 đã chạy khá nhanh hơn các máy homebrew này. Phải mất một thời gian và xảo quyệt để đến đó. Ví dụ, IBM 360 Model 44 (1964) chạy ở tốc độ 4 Mhz. Đó có thể vẫn là "tốc độ homebrew", nhưng CDC 7600 được phát hành chỉ vài năm sau đó vào năm 1969 đã vượt qua 36 Mhz. Ví dụ, bài viết Wikipedia http://en.wikipedia.org/wiki/CDC_7600 đưa ra gợi ý về một số thủ thuật đã được rút ra, ví dụ:

"Như mọi khi, thiết kế của Cray cũng tập trung vào việc đóng gói để giảm kích thước, rút ​​ngắn đường dẫn tín hiệu và do đó tăng tần số hoạt động. ... [E] mô-đun mạch thực sự bao gồm tới sáu bo mạch PC, mỗi bảng được nhồi bằng điện trở cực tiểu, điốt và các bóng bán dẫn. Sáu bảng được xếp chồng lên nhau và sau đó được kết nối với nhau dọc theo các cạnh của chúng, tạo nên một mô-đun rất nhỏ gọn, nhưng về cơ bản không thể sửa chữa được. "

Vì vậy, CPU homebrew không nhất thiết phải được xây dựng theo tiềm năng thực sự của chúng do một số hiệu ứng gây nhiễu phải làm với chất lượng và bố cục của bản dựng. Tuy nhiên, bất cứ ai xây dựng CPU từ các mạch tích hợp riêng lẻ và các thành phần riêng biệt chạy ở tốc độ vài megahertz đều phải được hoan nghênh.


Tùy thuộc vào độ phức tạp của đường dẫn dữ liệu, tôi sẽ nghĩ rằng một thiết bị homebrew có thể có tốc độ xung nhịp ở mức 20Mhz trở lên mà không gặp khó khăn khi sử dụng công nghệ hiện đại và kỹ thuật thông thường. Không phải đa GHz, nhưng không phải là toàn bộ. Tuy nhiên, tôi nghi ngờ rằng hầu hết các trường hợp sử dụng CPU homebrew, việc xử lý sự cố dễ dàng quan trọng hơn tốc độ. Ngẫu nhiên, tinh thể đồng hồ chủ của máy arcade thương hiệu Pong (R) ban đầu là 14.3818Mhz, mặc dù nó được chia ra khá sớm; Tôi nghĩ rằng điều duy nhất bị kiểm soát bởi thứ gì đó có tốc độ là đường giữa của sân chơi.
supercat

1
Rất nhiều CPU homebrew sử dụng EPROM để lưu trữ vi mã, nhưng cũng để thực hiện các bảng logic và / hoặc sự thật phức tạp (nhiều trong số chúng thậm chí có ALU được tạo từ một hoặc nhiều ROM). Tốc độ truy cập của ROM có thể hạn chế đáng kể tốc độ tối đa của máy, nhưng chúng phổ biến vì chúng giúp dễ dàng gỡ lỗi, tái sử dụng và tinh chỉnh bộ xử lý mà không cần tua lại đáng kể.
Alexios

15

Là một cựu học sinh trung học, người đã chế tạo một máy tính chuyên dụng với 7400 sê-ri TTL, đã giành được một số giải thưởng tại hội chợ khoa học, tôi đã quan sát những điều này khiến nó không chạy nhanh nhất có thể:

  • Điện dung đi lạc trong bảng mạch. Một vài pF giữa mỗi cặp kết nối liền kề. Đó là thời gian tăng / giảm cạnh xung hạn chế và ở những nơi được thêm nhiễu xuyên âm. Đây có lẽ là yếu tố lớn nhất.

  • Biến thể của chip lấy túi. (Có ai còn nhớ Poly-Pak không?) 74LSxx, 74Hxx, 74xx với độ trễ lan truyền khác nhau và các đặc điểm khác, khiến tín hiệu không thể đồng bộ ở tốc độ xung nhịp cao hơn vài MHz.

  • Chip bộ nhớ tĩnh giá rẻ, một lần nữa từ túi lấy hoặc nguồn không chất lượng khác. Họ không thể đọc hoặc viết đáng tin cậy vượt quá một tỷ lệ nhất định.

  • Thiết bị thử nghiệm của tôi được giới hạn trong các máy phát tín hiệu homebrew, máy hiện sóng băng thông 5 MHz và mạch kỹ thuật số được bồi thẩm đoàn tạm thời. Khó kiểm tra tính toàn vẹn tín hiệu, thời gian, biên độ của tín hiệu số đã được thông qua thấp được lọc thành bột nhão.

Ngày nay, thật khó để tìm thấy một phạm vi 5 MHz trừ khi một người là người mua đồ cổ. Tất cả các loại chip tốt hơn đều dễ dàng có được, ngay cả trong các gói DIP cách nhau 0,1 ", ngoại trừ tôi đã không thấy nhiều về cách lấy túi trong một thời gian dài. Tuy nhiên, ổ cắm bánh mì vẫn không thay đổi nhiều. Stray điện dung vẫn là một kẻ giết người tốc độ cho bất kỳ dự án kỹ thuật số sáng tạo sắc sảo.

Tránh các bảng mạch bằng cách sử dụng PCB homebrew là cách tốt nhất để tránh điện dung đi lạc, nhưng tất nhiên đòi hỏi nhiều nỗ lực và thời gian hơn.


4

Tôi nghĩ lý do chính là khi bạn tăng tần số, trở kháng của các kết nối trên bảng mạch của bạn sẽ tăng và hạn chế tốc độ cuối cùng của mạch.

Mỗi kết nối trong bảng mạch của bạn có độ tự cảm thấp, nhưng khác không. Khi tần số của bạn ngày càng cao hơn, bạn cần tính đến các hiệu ứng này. Trở kháng của dây có thể được tìm thấy bởi:

Công thức này

Trong đó L là độ tự cảm của dây. Cuối cùng, Z sẽ trở nên đủ cao để dòng điện không chảy và mạch của bạn sẽ ngừng hoạt động. Việc tìm giá trị số chính xác cho số này sẽ rất phức tạp, đặc biệt là vì các bảng mạch có các dấu vết cạnh nhau và điều đó sẽ thay đổi trở kháng của mỗi dây một chút so với công thức này. Nếu bạn thực sự muốn một số (không chính xác), bạn có thể thử ở đây để tính toán độ tự cảm (và do đó trở kháng) của dây của bạn. Nếu bạn biết dòng điện thấp nhất mà một bộ phận có thể hoạt động, bạn có thể xác định tần số tối đa trước khi bạn đạt đến giới hạn đó.


Bạn có thể giải thích mối quan hệ giữa sự phụ thuộc và tốc độ của mạch?
Eugen

Vậy làm thế nào để giải thích rằng các CPU như Intel Core I7 hoạt động ở tốc độ xung nhịp 2,5 GHz và CPU được xây dựng trên bảng mạch có thể đạt được tốc độ này? Ban đầu tôi nghĩ rằng có một kết nối với chiều dài của dây giữa các chip CPU và RAM.
Eugen

Không phủ nhận các định luật vật lý, nhưng tôi không nghĩ rằng độ tự cảm thực sự là giới hạn chính của tốc độ. Sau đó, các dây tương tự có phạm vi độ dài tương tự được sử dụng trong radio homebrew và các dự án khác, với tần số cao hơn nhiều. Người ta chỉ cần cẩn thận về các trở kháng phù hợp, độ dài, bố cục, tránh các khớp nối ngẫu nhiên, v.v.
DarenW

1
@DarenW: Điện cảm và điện dung đi lạc thực sự là vấn đề. Trong một hệ thống radio, bạn thường chỉ có một dây có chiều dài không tầm thường. Trong một triển khai bộ xử lý, bạn có hàng trăm, với độ tự cảm lẫn nhau tùy thuộc vào khoảng cách. Các tương tác phụ thuộc tần số là không thể quản lý do sự phức tạp. Trở kháng đặc trưng phụ thuộc mạnh mẽ vào những thứ như khoảng cách từ dấu vết mặt đất ... không được kiểm soát tốt trên bảng điều khiển.
Ben Voigt

1
Tôi nghĩ bạn đã đúng, tôi đoán có lẽ nó chỉ nên là phản ứng nói chung. Điện dung sẽ dẫn đến các vấn đề tương tự, nhưng đối với những thứ như cạnh tăng / giảm cứng và thay đổi trạng thái. Các phương trình để tìm trở kháng là tương tự, và nếu anh ta muốn có một câu trả lời bằng số thì có thể được áp dụng theo cách tương tự.
Nate

3

Những người khác đã trả lời "tại sao". Đây là cách xác định tốc độ tối đa.

  1. Đối với mỗi lần lật, hãy tìm đồng hồ đến Q.
  2. Tổng chiều dài dây của tất cả các dây từ flip-flop đến flip flop tiếp theo. Biến độ dài này thành thời gian. Dây có tốc độ ánh sáng ~ 2/3
  3. Tổng số bất kỳ độ trễ cổng, bao gồm cả thông qua RAM không đồng bộ.
  4. Dành thời gian thiết lập ở lần lật tiếp theo.
  5. Thêm 1-4. Đây là thời gian tối thiểu của bạn. Đảo ngược để có được tần số.
  6. Hãy xem xét đồng hồ lệch. Nếu đồng hồ đến ff thứ hai trước ff thứ nhất, hãy thêm độ lệch với 1-4.
  7. Nếu đồng hồ đến ff thứ hai trước ff thứ nhất, hãy tính tối thiểu 1-3. Đảm bảo rằng chúng nhỏ hơn thời gian giữ theo yêu cầu của ff thứ hai cộng với độ lệch của đồng hồ.

Bạn đang nói về độ dài dây nào: chiều dài từ nguồn điện đến chân ra CPU, chân ra CPU đến chip RAM ...? Ngoài ra tôi không thực sự rõ ràng những gì bạn có ý nghĩa trong bước đầu tiên.
Eugen

2
@Eugen - Tôi nghĩ (nhưng không phải lĩnh vực chuyên môn của tôi) anh ấy đang đề cập đến độ trễ lan truyền nội bộ của nó - thời gian từ khi được đồng hồ để có đầu ra ổn định.
mickeyf_supports_Monica

1

Ngoài tất cả các lý do điện làm hạn chế tốc độ, còn có một lý do ở mức logic:

Bạn không thể ném nhiều tài nguyên để làm cho mọi thứ chạy nhanh hơn, chẳng hạn như hoạt động theo đường ống với dự đoán nhánh, số học nhanh hơn và không có gì. Bộ nhớ cache không có ý nghĩa nhiều nếu chúng không nhanh hơn bộ nhớ chính của bạn.


1

Đối với máy homebrew, nó có hai yếu tố. Độ trễ lan truyền cho các chip bạn đang sử dụng và số lượng chip bạn cần sử dụng trên con đường dài nhất thông qua thiết kế CPU của bạn.

Ví dụ, 74HC574 (thanh ghi 8 bit) có độ trễ lan truyền tối đa khoảng 41ns (được lấy từ biểu dữ liệu của nó). Bây giờ hãy nói rằng con đường dài nhất thông qua thiết kế CPU của bạn yêu cầu nó phải đi qua 8 chip khác nhau. Thêm các độ trễ lan truyền cho mỗi trong số 8 và cho phép tưởng tượng nó đến 333ns. Với 1000ns tương đương với 1Mhz sẽ cung cấp cho bạn tốc độ tối đa 3Mhz.

Trong thực tế, bạn có thể muốn giới hạn bản thân ở một cái gì đó chậm hơn như 2Mhz, để đảm bảo thiết kế ổn định. Ngay cả khi bạn nghĩ rằng bạn sẽ chỉ bỏ lỡ thời gian một lần trên một tỷ chu kỳ, thì bạn vẫn gặp rắc rối. 10 tỷ chia cho 3 triệu đồng nghĩa với việc bạn bỏ lỡ thực hiện cứ sau 3.333 giây, tức là khoảng một lần mỗi giờ. Đâm máy của bạn mỗi giờ là không tốt!

Để làm cho nó đi nhanh hơn, bạn có thể sử dụng chip nhanh hơn và / hoặc thay đổi thiết kế để giảm số lượng chip trong đường dẫn chậm nhất. Về tốc độ homebrew nhanh nhất bạn thấy là khoảng 4Mhz, cung cấp cho bạn 250ns để hoàn thành mỗi chu kỳ.

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.