Batasan frekuensi untuk CPU homebrew


15

Sambil melihat ke beberapa CPU yang dibuat khusus, saya perhatikan frekuensi di mana mereka beroperasi relatif rendah dibandingkan dengan CPU modern (dalam urutan beberapa MHz). Apakah ada alasan rekayasa elektronik untuk batasan itu, misalnya untuk papan tempat memotong roti? Jika ya, bagaimana cara menentukan frekuensi maks yang mungkin dicapai dengan desain Anda?


Seperti ... keripik VLSI buatan rumah? Saya membayangkan itu adalah batasan biaya. Ketelitian yang diberikan oleh peralatan bernilai jutaan dolar tidak bisa diduplikasi di rumah dan sebagai hasilnya chip harus berjalan lebih lambat.
Nate

4
@Nate, saya membayangkan bahwa dia mengacu pada CPU multi-chip homebrew yang dibangun dari TTL. Misalnya: homebrewcpu.com
Alfred Centauri

@Nate, saya telah memperbarui pertanyaan saya menjadi lebih spesifik.
Eugen

@AlfredCentauri - ya, Anda benar;)
Eugen

Jawaban:


16

Sebagian besar berkaitan dengan lamanya interkoneksi dan keterlambatan propagasi melalui gerbang. Jika kita mengurangi CPU pada esensinya, itu adalah mesin umpan balik. Sekelompok sirkuit logika kombinatorial menghitung beberapa fungsi boolean di atas kondisi mesin saat ini, dan fungsi-fungsi tersebut menentukan status baru, yang terkunci oleh sirkuit sekuensial ketika tepi jam baru tiba. Semua sirkuit kombinatorial memiliki penundaan. Periode jam tidak bisa lebih pendek dari waktu yang diperlukan untuk jalur paling lambat melalui gerbang ini untuk menghasilkan hasil yang stabil karena satu bit yang salah menghentikan pertunjukan.

Selanjutnya, logika sekuensial memiliki persyaratan waktu. Sebelum ujung jam tiba, ada beberapa waktu pengaturan minimum bahwa input harus stabil dan kemudian mereka harus stabil untuk beberapa waktu penahanan. Jika ini dilanggar, negara menjadi sampah.

Penundaan propagasi disebabkan oleh hal-hal seperti seberapa cepat kapasitansi parasit dapat mengisi daya, seberapa cepat arus dapat membangun dalam menghadapi induktansi dan seberapa cepat perangkat silikon dapat beralih. Misalnya, transistor bipolar dengan basis yang lebih kecil dapat beralih lebih cepat dari yang memiliki basis yang lebih besar, sehingga transistor kecil pada sebuah chip akan lebih cepat daripada yang terpisah.

Di jawaban sebelumnya yang saya hapus, saya menulis tentang efek saluran transmisi. Tetapi saya tidak menganggap bahwa efek ini bahkan tidak muncul pada kecepatan yang kita bicarakan karena, katakanlah, pada 10 Mhz, panjang gelombang masih sekitar 30 meter. Jadi pada skala papan sirkuit berukuran biasa, pulsa pada skala waktu beberapa megahertz masih mencapai semua bagian dari jaringan tembaga secara bersamaan.

Jadi, jika Anda membuat CPU dari komponen diskrit, Anda tidak akan mencapai komponen kecil dengan waktu switching yang cepat, dan kedekatan yang sama yang meminimalkan kapasitansi dan induktansi yang menyimpang.

Namun demikian, mesin komponen diskrit kuno pada 1960-an memang berjalan sedikit lebih cepat daripada mesin homebrew ini. Butuh beberapa waktu dan kelicikan untuk sampai ke sana. Sebagai contoh, IBM 360 Model 44 (1964) beroperasi pada 4 Mhz. Itu mungkin masih "kecepatan homebrew", tetapi CDC 7600 dirilis hanya beberapa tahun kemudian pada tahun 1969 melampaui 36 Mhz. Artikel Wikipedia http://en.wikipedia.org/wiki/CDC_7600 memberikan petunjuk tentang beberapa trik yang ditarik, misalnya:

"Seperti biasa, desain Cray juga berfokus pada pengemasan untuk mengurangi ukuran, memperpendek jalur sinyal, dan dengan demikian meningkatkan frekuensi operasi. ... Modul sirkuit sebenarnya terdiri dari hingga enam papan PC, masing-masing diisi dengan resistor subminiature, dioda , dan transistor. Keenam papan ditumpuk dan kemudian saling berhubungan di sepanjang tepinya, membuat modul yang sangat ringkas, tetapi pada dasarnya tidak dapat diperbaiki. "

Jadi CPU homebrew tidak perlu dibangun untuk potensi sebenarnya karena beberapa efek perancu berkaitan dengan kualitas dan tata letak build. Namun, siapa pun yang membangun CPU dari sirkuit terintegrasi individu dan komponen diskrit yang berjalan pada beberapa megahertz harus diberi tepuk tangan.


Bergantung pada kerumitan jalur data, saya akan berpikir bahwa perangkat homebrew harus dapat beroperasi pada 20Mhz atau lebih tanpa kesulitan menggunakan teknologi modern dan teknik konvensional. Bukan multi-GHz, tetapi tidak total bungkuk. Saya menduga, meskipun, bahwa kebanyakan kasus di mana CPU homebrew digunakan, kemudahan pemecahan masalah lebih penting daripada kecepatan. Secara kebetulan, kristal jam utama dari mesin arcade merek Pong (R) yang asli adalah 14,3818Mhz, meskipun itu dibagi cukup awal; Saya pikir satu-satunya hal yang dilindungi oleh sesuatu yang kecepatan adalah garis tengah dari arena permainan.
supercat

1
Banyak CPU homebrew menggunakan EPROM untuk menyimpan mikrokode, tetapi juga untuk mengimplementasikan logika kompleks dan / atau tabel kebenaran (banyak dari mereka bahkan memiliki ALU yang dibuat dari satu atau lebih ROM). Kecepatan akses ROM dapat membatasi kecepatan tertinggi mesin secara signifikan, tetapi mereka populer karena membuatnya mudah untuk men-debug, menggunakan kembali dan men-tweak prosesor tanpa pengerjaan ulang yang signifikan.
Alexios

15

Sebagai seorang mantan siswa sekolah menengah yang membangun komputer untuk keperluan khusus dengan 7400 seri TTL, yang memenangkan beberapa penghargaan di ajang sains, saya mengamati hal-hal ini yang membuatnya tidak berlari secepat mungkin:

  • Kapasitansi liar di papan tempat memotong roti. Beberapa pF antara setiap pasangan konektor yang berdekatan. Batas waktu naik / turun nadi terbatas dan di beberapa tempat ditambahkan crosstalk. Ini mungkin faktor terbesar.

  • Variasi dari chip ambil-tas. (Adakah yang ingat Poly-Paks?) 74LSxx, 74Hxx, 74xx dengan penundaan propagasi yang berbeda dan karakteristik lainnya, membuatnya mustahil untuk membuat sinyal tetap sinkron pada kecepatan clock yang lebih tinggi dari beberapa MHz.

  • Keripik memori statis yang murah, sekali lagi dari tas jinjing atau sumber tidak berkualitas lainnya. Mereka tidak bisa membaca atau menulis dengan andal melebihi tingkat tertentu.

  • Instrumentasi pengujian saya terbatas pada generator sinyal homebrew, osiloskop bandwidth 5MHz, dan sirkuit digital sementara yang dilengkapi juri. Sulit untuk memeriksa integritas sinyal, waktu, amplitudo sinyal digital yang low-pass disaring menjadi bubur yang goyah.

Hari ini, akan sulit untuk menemukan ruang lingkup 5MHz kecuali ada pembeli barang antik. Keripik yang lebih baik dari semua jenis sama mudahnya didapat, bahkan dalam paket DIP spasi 0,1 ", kecuali saya belum melihat banyak cara meraih tas dalam waktu yang lama. Namun, papan tempat memotong roti tidak banyak berubah. Kapasitansi liar masih merupakan pembunuh kecepatan untuk setiap proyek digital kreatif edgy.

Menghindari papan tempat memotong roti dengan menggunakan PCB buatan sendiri adalah cara terbaik untuk menghindari kapasitansi liar, tetapi tentu saja membutuhkan lebih banyak usaha dan waktu.


4

Saya pikir alasan utamanya adalah bahwa ketika Anda meningkatkan frekuensi, impedansi koneksi papan tempat memotong roti Anda akan meningkat dan membatasi kecepatan akhir dari sirkuit Anda.

Setiap koneksi di papan tempat memotong roti Anda memiliki induktansi rendah, tetapi tidak nol. Ketika frekuensi Anda semakin tinggi dan lebih tinggi, Anda perlu mempertimbangkan efek-efek ini. Impedansi kabel dapat ditemukan oleh:

Rumus ini

di mana L adalah induktansi kawat. Akhirnya, Z akan menjadi cukup tinggi sehingga arus tidak mengalir dan sirkuit Anda akan berhenti bekerja. Menemukan nilai numerik yang tepat untuk angka ini akan sangat rumit, terutama karena papan tempat memotong roti memiliki jejak di samping satu sama lain dan itu akan sedikit mengubah impedansi setiap kawat dari rumus ini. Jika Anda benar - benar menginginkan nomor (tidak tepat), Anda dapat mencoba di sini untuk menghitung induktansi (dan karenanya impedansi) dari kabel Anda. Jika Anda tahu arus terendah dari mana suatu bagian dapat beroperasi, Anda dapat menentukan frekuensi maksimum sebelum Anda mencapai batas itu.


Bisakah Anda menjelaskan hubungan antara kemunculan dan kecepatan sirkuit?
Eugen

Jadi bagaimana ini menjelaskan bahwa CPU seperti Intel Core I7 bekerja pada kecepatan clock 2.5GHz dan CPU yang dibangun di atas papan tempat memotong roti tidak dapat mencapai kecepatan ini? Awalnya saya pikir ada koneksi dengan panjang kabel antara CPU dan chip RAM.
Eugen

Bukan untuk menyangkal hukum fisika, tetapi saya tidak berpikir bahwa induktansi adalah pembatas utama kecepatan. Setelah itu, kabel serupa dengan rentang panjang yang sama digunakan dalam radio homebrew dan proyek lainnya, pada frekuensi yang jauh lebih tinggi. Kita hanya harus berhati-hati tentang pencocokan impedansi, panjang, tata letak, hindari kopling yang tidak disengaja, dll.
DarenW

1
@ DarenW: Induktansi dan kapasitansi liar memang masalah. Dalam sistem radio, Anda biasanya hanya memiliki satu kabel dengan panjang non-sepele. Dalam implementasi prosesor, Anda memiliki ratusan, dengan induktansi bersama tergantung pada jarak. Interaksi yang bergantung pada frekuensi tidak dapat dikelola karena kerumitannya. Impedansi karakteristik sangat bergantung pada hal-hal seperti jarak dari jejak tanah ... yang tidak dikontrol dengan baik pada papan tempat memotong roti.
Ben Voigt

1
Saya pikir Anda benar, saya kira itu mungkin hanya reaktansi secara umum. Kapasitansi akan menghasilkan masalah yang serupa, tetapi untuk hal-hal seperti naik turun tajam dan perubahan negara. Persamaan untuk menemukan impedansi serupa, dan jika dia menginginkan jawaban numerik mereka mungkin bisa diterapkan dengan cara yang sama.
Nate

3

Yang lain telah menjawab "mengapa". Berikut cara menentukan kecepatan maksimum.

  1. Untuk setiap flip-flop, lihat jamnya ke Q.
  2. Jumlahkan panjang kawat semua kabel dari flip-flop ke flip flop berikutnya. Ubah panjang ini menjadi waktu. Kawat ~ 2/3 kecepatan cahaya
  3. Total keterlambatan gerbang apa pun, termasuk melalui RAM yang tidak sinkron.
  4. Luangkan waktu setup di flip-flop berikutnya.
  5. Tambahkan 1-4. Ini adalah periode jam minimum Anda. Balikkan untuk mendapatkan frekuensi.
  6. Pertimbangkan kemiringan jam. Jika jam sampai ke ff kedua sebelum yang pertama, tambahkan miring dengan 1-4.
  7. Jika jam sampai ke ff kedua sebelum yang pertama, hitung minimum 1-3. Pastikan bahwa mereka kurang dari waktu penahanan yang diperlukan oleh ff kedua ditambah kemiringan jam.

Panjang kabel mana yang Anda bicarakan: panjang dari catu daya ke pin keluar CPU, pin keluar CPU ke chip RAM ...? Juga saya tidak begitu jelas apa yang Anda maksud pada langkah pertama.
Eugen

2
@Eugen - Saya pikir (tapi bukan bidang keahlian saya) dia mengacu pada penundaan propagasi internal - waktu mulai dari jam hingga memiliki output yang stabil.
UnconditionalReinstateMonica

1

Terlepas dari semua alasan kelistrikan yang membatasi kecepatan, ada juga satu alasan logis:

Anda tidak dapat membuang banyak sumber daya untuk membuat berbagai hal berjalan lebih cepat, seperti operasi pipelined dengan prediksi cabang, aritmatika lebih cepat dan yang lainnya. Cache juga tidak masuk akal jika tidak lebih cepat dari memori utama Anda.


1

Untuk mesin homebrew, ada dua faktor. Delay propagasi untuk chip yang Anda gunakan dan jumlah chip yang perlu Anda gunakan pada jalur terpanjang melalui desain CPU Anda.

Misalnya, 74HC574 (register 8 bit) memiliki penundaan propagasi maksimum sekitar 41ns (diambil dari datasheet-nya). Sekarang katakanlah jalur terpanjang melalui desain CPU Anda mengharuskannya melewati 8 chip yang berbeda. Tambahkan penundaan propagasi untuk masing-masing 8 dan mari kita bayangkan sampai 333ns. Dengan 1000ns sama dengan 1Mhz yang akan memberi Anda kecepatan maksimum 3Mhz.

Dalam praktiknya, Anda mungkin ingin membatasi diri pada sesuatu yang lebih lambat seperti 2MHz, untuk memastikan desain yang stabil. Bahkan jika Anda berpikir Anda hanya akan melewatkan waktu sekali per miliar siklus, maka Anda masih dalam kesulitan. 10 miliar dibagi 3 juta berarti Anda salah mengeksekusi sekali setiap 3.333 detik, yaitu sekitar sekali per jam. Merusak mesin Anda setiap jam tidak baik!

Untuk membuatnya lebih cepat, Anda dapat menggunakan chip lebih cepat dan / atau mengubah desain untuk mengurangi jumlah chip di jalur paling lambat. Tentang kecepatan homebrew tercepat yang Anda lihat adalah sekitar 4Mhz yang memberi Anda 250ns untuk menyelesaikan setiap siklus.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.