ข้อ จำกัด ความถี่สำหรับ homebrew CPUs


15

ในขณะที่มองหาซีพียูในตัวที่กำหนดเองฉันได้สังเกตเห็นความถี่ที่พวกมันทำงานนั้นค่อนข้างต่ำเมื่อเทียบกับซีพียูสมัยใหม่ (ตามลำดับ MHz หลาย ๆ ตัว) มีเหตุผลด้านวิศวกรรมอิเล็กทรอนิกส์สำหรับข้อ จำกัด ดังกล่าวเช่นสำหรับเขียงหั่นขนมหรือไม่? ถ้าใช่จะกำหนดความถี่สูงสุดที่เป็นไปได้ในการออกแบบของคุณอย่างไร?


ชอบ ... ชิป VLSI ที่ทำที่บ้านได้หรือไม่ ฉันคิดว่ามันเป็นการ จำกัด ต้นทุน ความแม่นยำที่อุปกรณ์หลายล้านดอลล่าร์ไม่สามารถทำซ้ำได้ที่บ้านและทำให้ชิปต้องทำงานช้าลง
Nate

4
@ เนทีฉันคิดว่าเขาหมายถึงซีพียูที่ใช้ชิปหลายตัวที่สร้างจาก TTL ตัวอย่างเช่น: homebrewcpu.com
Alfred Centauri

@Nate ฉันได้อัปเดตคำถามของฉันให้เจาะจงยิ่งขึ้น
Eugen

@AlfredCentauri - ใช่คุณพูดถูก)
Eugen

คำตอบ:


16

ส่วนใหญ่เกี่ยวข้องกับความยาวของการเชื่อมโยงระหว่างกันและการขยายพันธุ์ล่าช้าผ่านประตู ถ้าเราลดซีพียูให้เหลือน้อยที่สุดมันเป็นเครื่องป้อนกลับ กลุ่มของวงจรลอจิก combinatorial คำนวณฟังก์ชันบูลีนบางอย่างเหนือสถานะปัจจุบันของเครื่องและฟังก์ชั่นเหล่านั้นจะกำหนดสถานะใหม่ซึ่งเป็นวงจรเรียงลำดับเมื่อขอบนาฬิกาใหม่มาถึง วงจร combinatorial ทั้งหมดมีความล่าช้า ระยะเวลาของนาฬิกาไม่สามารถสั้นกว่าเวลาที่ใช้สำหรับเส้นทางที่ช้าที่สุดผ่านประตูเหล่านี้เพื่อสร้างผลลัพธ์ที่มั่นคงเนื่องจากบิตที่ไม่ถูกต้องเพียงครั้งเดียวหยุดการแสดง

นอกจากนี้ตรรกะตามลำดับมีข้อกำหนดเรื่องเวลา ก่อนที่ขอบนาฬิกาจะมาถึงจะมีเวลาในการตั้งค่าขั้นต่ำที่อินพุตจะต้องมีเสถียรภาพและหลังจากนั้นจะต้องมีเสถียรภาพสำหรับเวลาพัก หากสิ่งเหล่านี้ถูกละเมิดสถานะจะกลายเป็นขยะ

ความล่าช้าในการขยายพันธุ์เกิดจากสิ่งต่าง ๆ เช่นความสามารถในการเก็บประจุของกาฝากเร็วแค่ไหนกระแสที่เร็วสามารถสร้างขึ้นได้เมื่อต้องเผชิญกับการเหนี่ยวนำและอุปกรณ์ซิลิกอนที่สามารถเปลี่ยนได้อย่างรวดเร็ว ตัวอย่างเช่นทรานซิสเตอร์สองขั้วที่มีฐานขนาดเล็กสามารถสลับได้เร็วกว่าหนึ่งที่มีฐานขนาดใหญ่ดังนั้นทรานซิสเตอร์ขนาดเล็กบนชิปจะเร็วกว่าแบบแยก

ในคำตอบก่อนหน้านี้ที่ฉันลบฉันเขียนเกี่ยวกับลักษณะพิเศษของสายส่ง แต่ฉันไม่คิดว่าเอฟเฟ็กต์เหล่านี้จะไม่ได้มาในรูปของความเร็วที่เรากำลังพูดถึงเพราะพูดที่ 10 Mhz ความยาวคลื่นยังคงอยู่ที่ประมาณ 30 เมตร ดังนั้นในระดับของแผงวงจรขนาดปกติพัลส์ในช่วงเวลาของเมกะเฮิรตซ์เพียงไม่กี่แห่งยังคงเข้าถึงทุกส่วนของเครือข่ายทองแดงพร้อมกัน

ดังนั้นหากคุณสร้างซีพียูจากองค์ประกอบที่ไม่ต่อเนื่องคุณก็จะไม่ได้รับชิ้นส่วนขนาดเล็กที่มีเวลาในการสลับที่รวดเร็วและระยะทางเดียวกันจะลดความจุและการเหนี่ยวนำที่ผิดเพี้ยน

อย่างไรก็ตามเครื่องจักรที่ไม่ต่อเนื่องแบบโบราณในปี 1960 นั้นทำงานได้เร็วกว่าเครื่องโฮมบรูว์เหล่านี้เล็กน้อย ใช้เวลาพอสมควรแล้วจึงไปถึงที่นั่น ตัวอย่างเช่น IBM 360 Model 44 (1964) ทำงานที่ 4 Mhz นั่นอาจยังคงเป็น "ความเร็วของโฮมบรูว์" แต่ CDC 7600 เปิดตัวเพียงไม่กี่ปีต่อมาในปี 1969 ทะลุ 36 Mhz บทความวิกิพีเดียhttp://en.wikipedia.org/wiki/CDC_7600ให้คำแนะนำเกี่ยวกับเทคนิคบางอย่างที่ถูกดึงตัวอย่างเช่น:

"เช่นเคยการออกแบบของ Cray เพ่งความสนใจไปที่บรรจุภัณฑ์เพื่อลดขนาดลดระยะทางของสัญญาณและเพิ่มความถี่ในการทำงาน ... [E] โมดูลวงจร ach จริง ๆ แล้วประกอบด้วยบอร์ด PC ถึงหกบอร์ดแต่ละอันอัดแน่นไปด้วยตัวต้านทานย่อยไดโอด และทรานซิสเตอร์แผงวงจรทั้งหกถูกวางซ้อนกันและเชื่อมต่อกันตามขอบทำให้โมดูลมีขนาดกะทัดรัด แต่โดยทั่วไปไม่สามารถซ่อมแซมได้ "

ดังนั้นซีพียู homebrew ไม่จำเป็นต้องสร้างขึ้นเพื่อศักยภาพที่แท้จริงของมันเนื่องจากเอฟเฟกต์ที่น่าสับสนบางอย่างที่เกี่ยวข้องกับคุณภาพของการสร้างและเลย์เอาต์ ถึงกระนั้นก็ตามใครก็ตามที่สร้างซีพียูออกจากวงจรรวมแต่ละตัวและส่วนประกอบแยกซึ่งทำงานที่เมกะเฮิรตซ์หลายตัวนั้นควรได้รับการปรบมือ


ขึ้นอยู่กับความซับซ้อนของเส้นทางข้อมูลฉันคิดว่าอุปกรณ์ homebrew ควรจะสามารถทำงานที่ 20Mhz หรือมากกว่านั้นได้โดยไม่ต้องยุ่งยากกับการใช้เทคโนโลยีที่ทันสมัยและเทคนิคดั้งเดิม ไม่ใช่ multi-GHz แต่ไม่ใช่เรื่องเหลวไหลทั้งหมด ฉันสงสัยว่ามันเป็นกรณีส่วนใหญ่ที่ใช้ซีพียู homebrew ความง่ายในการแก้ไขปัญหาสำคัญกว่าความเร็ว อนึ่งนาฬิกาคริสตัลต้นแบบของเครื่องเกมอาเขตแบรนด์ Pong (R) ดั้งเดิมคือ 14.3818Mhz แม้ว่ามันจะถูกแบ่งออกเป็นช่วงต้น ๆ ฉันคิดว่าสิ่งเดียวที่ได้รับความสนใจจากบางสิ่งที่ความเร็วเป็นศูนย์กลางของสนามแข่งขัน
supercat

1
ซีพียู homebrew จำนวนมากใช้ EPROMs เพื่อจัดเก็บไมโครโค้ด แต่ยังใช้ตรรกะที่ซับซ้อนและ / หรือตารางความจริง (หลายคนยังมี ALU ที่ทำจาก ROM หนึ่งตัวหรือมากกว่า) ความเร็วในการเข้าถึง ROMs สามารถ จำกัด ความเร็วสูงสุดของเครื่องได้อย่างมาก แต่ก็เป็นที่นิยมเพราะทำให้ง่ายต่อการตรวจแก้จุดบกพร่องเปลี่ยนตำแหน่งและปรับแต่งโปรเซสเซอร์โดยไม่ต้องเดินสายใหม่
Alexios

15

ในฐานะที่เคยเป็นนักเรียนมัธยมปลายคนหนึ่งที่สร้างคอมพิวเตอร์วัตถุประสงค์พิเศษด้วย 7400 series TTL ซึ่งได้รับรางวัล kinda ในงาน Science Science ฉันสังเกตเห็นสิ่งต่าง ๆ เหล่านี้ที่ทำให้เครื่องทำงานได้เร็วที่สุด:

  • ความจุหลงทางในเขียงหั่นขนม pF สองสามตัวระหว่างตัวเชื่อมต่อทุกคู่ที่อยู่ติดกัน เวลาในการเพิ่ม / ลดลงของชีพจรที่ จำกัด และในสถานที่เพิ่ม crosstalk นี่อาจเป็นปัจจัยที่ใหญ่ที่สุด

  • รูปแบบของชิปถุงคว้า (ใครก็ตามที่จำโพลี Paks?) 74LSxx, 74Hxx, 74xx ด้วยความล่าช้าในการแพร่กระจายที่แตกต่างกันและลักษณะอื่น ๆ ทำให้เป็นไปไม่ได้ที่สัญญาณจะซิงค์กันที่ความเร็วสัญญาณนาฬิกาที่สูงกว่าสองสาม MHz

  • Cheapo ชิปหน่วยความจำแบบคงที่อีกครั้งจากถุงคว้าหรือแหล่งที่ไม่มีคุณภาพอื่น ๆ พวกเขาไม่สามารถอ่านหรือเขียนได้อย่างน่าเชื่อถือเกินกว่าอัตราที่กำหนด

  • เครื่องมือทดสอบของฉัน จำกัด เฉพาะเครื่องกำเนิดสัญญาณ homebrew, ออสซิลโลสโคปแบนด์วิดท์ 5MHz และวงจรดิจิตอลคณะลูกขุนชั่วคราว ยากที่จะตรวจสอบความสมบูรณ์ของสัญญาณ, เวลา, แอมพลิจูดของสัญญาณดิจิตอลที่ผ่านการกรองความถี่ต่ำลงในข้าวต้มที่สั่นคลอน

วันนี้คงเป็นการยากที่จะหาขอบเขต 5MHz เว้นแต่จะเป็นผู้ซื้อโบราณ ชิปที่ดีกว่าทุกชนิดนั้นง่ายที่จะได้รับแม้จะอยู่ในแพ็คเกจจิ้มจุ่ม 0.1 "เว้นเสียแต่ว่าฉันไม่ได้เห็นอะไรมากในทางของถุงคว้าในระยะเวลานานซ็อกเก็ตบอร์ด แต่ก็ไม่ได้เปลี่ยนแปลงอะไรมาก ความสามารถในการหลงทางยังคงเป็นตัวกำหนดความเร็วสำหรับโปรเจ็กต์ดิจิตอลที่สร้างสรรค์

การหลีกเลี่ยง breadboards โดยใช้ homebrew PCB เป็นวิธีที่ดีที่สุดในการหลีกเลี่ยงความสามารถในการหลงทาง แต่แน่นอนว่าต้องใช้ความพยายามและเวลามากขึ้น


4

ฉันคิดว่าเหตุผลหลักคือเมื่อคุณเพิ่มความถี่ความต้านทานของการเชื่อมต่อของเขียงหั่นขนมของคุณจะเพิ่มขึ้นและ จำกัด ความเร็วสุดท้ายของวงจร

การเชื่อมต่อทุกอย่างในเขียงหั่นขนมของคุณมีการเหนี่ยวนำต่ำ แต่ไม่เป็นศูนย์ เมื่อความถี่ของคุณสูงขึ้นเรื่อย ๆ คุณต้องคำนึงถึงผลกระทบเหล่านี้ด้วย ความต้านทานของสายสามารถพบได้โดย:

สูตรนี้

เมื่อ L เป็นตัวเหนี่ยวนำของเส้นลวด ในที่สุด Z จะสูงพอที่กระแสไม่ไหลและวงจรของคุณจะหยุดทำงาน การค้นหาค่าตัวเลขที่แน่นอนสำหรับหมายเลขนี้จะซับซ้อนมากโดยเฉพาะอย่างยิ่งเนื่องจาก breadboards มีร่องรอยติดกันและจะเปลี่ยนอิมพีแดนซ์ของลวดแต่ละเส้นจากสูตรนี้เล็กน้อย หากคุณจริงๆต้องการจำนวน (ไม่แน่ชัด) คุณสามารถลองที่นี่ในการคำนวณการเหนี่ยวนำ (และความต้านทาน) ของสายของคุณ หากคุณทราบกระแสต่ำสุดที่ชิ้นส่วนสามารถใช้งานได้คุณสามารถกำหนดความถี่สูงสุดก่อนที่จะถึงขีด จำกัด นั้น


คุณสามารถอธิบายความสัมพันธ์ระหว่างความต้านทานกับความเร็วของวงจรได้หรือไม่?
Eugen

ดังนั้นสิ่งนี้จะอธิบายได้อย่างไรว่า CPU เช่น Intel Core I7 ทำงานที่ความเร็วสัญญาณนาฬิกา 2.5GHz และ CPU ที่สร้างบนแผงควบคุมไม่สามารถทำความเร็วนี้ได้ ฉันคิดในตอนแรกว่ามีการเชื่อมต่อกับความยาวของสายระหว่าง CPU และ RAM ชิป
Eugen

ไม่ปฏิเสธกฎของฟิสิกส์ แต่ฉันไม่คิดว่าการเหนี่ยวนำเป็นตัว จำกัด ความเร็วหลัก หลังจากนั้นจะใช้สายที่คล้ายกันซึ่งมีช่วงความยาวใกล้เคียงกันในวิทยุ homebrew และโครงการอื่น ๆ ที่มีความถี่สูงกว่ามาก หนึ่งก็จะต้องมีความระมัดระวังเกี่ยวกับความต้านทานการจับคู่ความยาวรูปแบบหลีกเลี่ยงข้อต่ออุบัติเหตุ ฯลฯ
DarenW

1
@ DarenW: การเหนี่ยวนำและความจุจรจัดเป็นปัญหาแน่นอน ในระบบวิทยุคุณมักจะมีสายยาวเพียงเส้นเดียว ในการใช้งานตัวประมวลผลคุณมีหลายร้อยด้วยการเหนี่ยวนำร่วมกันขึ้นอยู่กับระยะห่าง ปฏิสัมพันธ์ขึ้นอยู่กับความถี่จะไม่สามารถจัดการได้เนื่องจากความซับซ้อน ลักษณะความต้านทานขึ้นอยู่กับสิ่งต่าง ๆ เช่นระยะห่างจากร่องรอยพื้น ... ซึ่งไม่สามารถควบคุมได้อย่างดีบนเขียงหั่นขนม
Ben Voigt

1
ฉันคิดว่าคุณพูดถูกฉันคิดว่ามันน่าจะเป็นแค่ปฏิกิริยาทั่วไป ความจุจะส่งผลให้เกิดปัญหาที่คล้ายกัน แต่สำหรับสิ่งต่าง ๆ เช่นขอบเพิ่มขึ้น / ลดลงยากและการเปลี่ยนแปลงสถานะ สมการสำหรับการค้นหาอิมพีแดนซ์นั้นคล้ายกันและถ้าเขาต้องการคำตอบเชิงตัวเลขพวกนั้นก็อาจนำไปใช้ในแบบเดียวกันได้
เนท

3

คนอื่น ๆ ตอบว่า "ทำไม" ต่อไปนี้เป็นวิธีกำหนดความเร็วสูงสุด

  1. สำหรับแต่ละ flip-flop ให้ค้นหานาฬิกาของมันเพื่อถาม
  2. รวมความยาวสายไฟของสายไฟทั้งหมดตั้งแต่ฟลิปฟล็อปถึงฟลิปฟล็อปถัดไป เปลี่ยนความยาวเป็นครั้งคราว ลวดคือ ~ 2/3 ความเร็วของแสง
  3. รวมเกตล่าช้าใด ๆ รวมถึง RAM แบบอะซิงโครนัส
  4. ใช้เวลาตั้งค่าที่ flip-flop ถัดไป
  5. เพิ่ม 1-4 นี่คือช่วงเวลาของนาฬิกาขั้นต่ำของคุณ สลับกลับเพื่อรับความถี่
  6. พิจารณานาฬิกาเอียง หากนาฬิกามาถึง ff ตัวที่สองก่อนหน้าแรกเพิ่มความเบ้ด้วย 1-4
  7. ถ้านาฬิกามาถึง ff ตัวที่สองก่อนหน้าแรกให้คำนวณอย่างน้อย 1-3 ตรวจสอบให้แน่ใจว่าใช้เวลาน้อยกว่าเวลาพักที่กำหนดโดย ff ตัวที่สองพร้อมกับนาฬิกาเอียง

ความยาวสายใดที่คุณกำลังพูดถึง: ความยาวจากแหล่งพลังงานถึงซีพียูพิน, ซีพียูพินไปยังชิปแรม ... นอกจากนี้ฉันยังไม่ชัดเจนว่าคุณหมายถึงอะไรในขั้นตอนแรก
Eugen

2
@Eugen - ฉันคิดว่า (แต่ไม่ใช่ความเชี่ยวชาญของฉัน) เขาอ้างถึงความล่าช้าในการแพร่กระจายภายใน - เวลาจากการถูกตอกบัตรไปจนถึงการมีเอาต์พุตที่เสถียร
โดยไม่มีเงื่อนไข ReinstateMonica

1

นอกจากเหตุผลทางไฟฟ้าทั้งหมดที่ จำกัด ความเร็วแล้วยังมีอีกหนึ่งเหตุผลในระดับตรรกะ:

คุณไม่สามารถโยนทรัพยากรได้มากเท่าที่ทำให้สิ่งต่าง ๆ ทำงานได้เร็วขึ้นเช่นการดำเนินการไปป์ไลน์พร้อมการคาดคะเนสาขาการคำนวณทางคณิตศาสตร์ที่เร็วขึ้นและอะไรก็ตาม แคชไม่เข้าท่าถ้าไม่เร็วกว่าความจำหลักของคุณ


1

สำหรับเครื่องโฮมบรูมันมีสองปัจจัย ความล่าช้าในการเผยแพร่ชิปที่คุณใช้และจำนวนชิปที่คุณต้องใช้ในเส้นทางที่ยาวที่สุดผ่านการออกแบบซีพียูของคุณ

ตัวอย่างเช่น 74HC574 (การลงทะเบียน 8 บิต) มีความล่าช้าในการเผยแพร่สูงสุดประมาณ 41ns (นำมาจากแผ่นข้อมูล) ทีนี้มาพูดถึงเส้นทางที่ยาวที่สุดในการออกแบบ CPU ของคุณต้องผ่านชิป 8 ตัว เพิ่มการขยายพันธุ์ล่าช้าสำหรับแต่ละ 8 และให้จินตนาการถึง 333ns ด้วย 1000ns เท่ากับ 1Mhz ที่จะให้ความเร็วสูงสุดที่ 3Mhz

ในทางปฏิบัติคุณอาจต้องการ จำกัด ตัวเองกับสิ่งที่ช้ากว่าเช่น 2Mhz เพื่อให้แน่ใจว่าการออกแบบมีเสถียรภาพ แม้ว่าคุณคิดว่าคุณจะพลาดช่วงเวลาหนึ่งครั้งต่อพันล้านรอบเท่านั้น แต่คุณก็ยังมีปัญหาอยู่ 10 พันล้านหารด้วย 3 ล้านหมายความว่าคุณพลาดไม่ได้รับทุกๆ 3,333 วินาทีซึ่งประมาณหนึ่งครั้งต่อชั่วโมง การกระแทกเครื่องของคุณทุกชั่วโมงนั้นไม่ดี!

เพื่อให้เร็วขึ้นคุณสามารถใช้ชิปที่เร็วขึ้นและ / หรือเปลี่ยนการออกแบบเพื่อลดจำนวนชิปในเส้นทางที่ช้าที่สุด เกี่ยวกับความเร็ว homebrew ที่เร็วที่สุดที่คุณเห็นอยู่ที่ประมาณ 4Mhz ซึ่งจะช่วยให้คุณ 250ns ในการทำแต่ละรอบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.