ALU ส่วนใหญ่ถูกสร้างขึ้นมาอย่างไรและเป็นไปได้ที่จะ 'สร้างของคุณเอง'?


11

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

อย่างไรก็ตามALUส่วนใหญ่ถูกสร้างขึ้นมาอย่างไร? ฉันรู้ว่านั่นไม่ใช่เพียงส่วนหนึ่งของคอมพิวเตอร์ แต่ก็ยังเป็นส่วนสำคัญ

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


1
คุณอาจจะสนใจในการนี้
คณบดี

6
การพูดจากภายในทีมซีพียูชิปหากคุณสนใจคอมพิวเตอร์และสถาปัตยกรรมซีพียูหนังสือบัญญัติคือ "การจัดระเบียบและการออกแบบคอมพิวเตอร์: อินเตอร์เฟสฮาร์ดแวร์ / ซอฟต์แวร์" ตามด้วย "สถาปัตยกรรมคอมพิวเตอร์: วิธีเชิงปริมาณ" สิ่งเหล่านี้เรียกว่า "Patterson and Hennessy" และ "Hennessy and Patterson" ตามลำดับ
Ross Rogers

@Dean - ใช่สายรหัสสีสำหรับน้องสาว! :-)
stevenvh

โครงการภาคการศึกษาของเราใน EE360M ที่ UT Austin ในปี 1994 เป็น ALU แบบกองซ้อนแบบ 4 บิตที่ใช้บนกระดานสาธิต Xilinx ที่มี XC3000 บางอย่างใช้เป็นกองซ้อน 16 ระดับซึ่งผลักดันมูลค่าสูงสุดไปยังหน้าจอ LED 7-Segment และ XC4000- บางสิ่งนั่นคือ ALU จริง ตั้งค่าอินพุตและการทำงานของคุณบนสวิตช์ DIP กดปุ่มแล้วไปที่นั่น XC4k มีออสซิลเลเตอร์ภายในที่มีความถี่หลายระดับตั้งแต่ 63 kHz ถึง 8 MHz และเกรดของเราส่วนหนึ่งขึ้นอยู่กับความรวดเร็วในการออกแบบของเราที่จะไปและยังคงใช้งานได้
Mike DeSimone

1
@Shubham: เมื่อฉันเห็นว่าฉันรู้ว่าฉันต้องอยู่ห่างจาก Minecraft ... ฉันจะไม่ทำอะไรอย่างอื่นเลย ... O_o
Mike DeSimone

คำตอบ:


15

คุณสามารถสร้างมันได้อย่างสมบูรณ์จากประตูตรรกะพื้นฐานและผลลัพธ์จะเป็นงานศิลปะที่ดี :-)

ชุดลอจิก 74xx ประกอบด้วย74LS181ซึ่งเป็นSlice 4 บิตซึ่งจะทำให้สิ่งต่าง ๆ ลดลงอย่างมาก Bit slice ของ ALU ใช้เพื่อสร้าง ALU ที่ซับซ้อนมากขึ้น (อ่าน: ความยาวของคำที่ยาวขึ้น) แต่เทคโนโลยีที่ใหม่กว่าทำให้ไอซีประเภทนี้ล้าสมัยไปแล้ว
หมายเหตุ: TTL (74xx) เป็นเพียงเทคโนโลยีเดียวที่ใช้สำหรับประตูตรรกะ ไม่ค่อยใช้อีกต่อไป ตามมาด้วย Low-Power Schottky: 74LSxx พูดอย่างเคร่งครัดเช่นเดียวกับรูปแบบของ TTL ทุกวันนี้มีตระกูลลอจิกหลายสิบแบบซึ่งมีพื้นฐานมาจากCMOS ความเร็วสูง (74HCxx, 74HCTxx, 74ACxx, ... )

วันนี้วิธีการที่เหมาะสมในการสร้าง ALU จะทำมันในCPLDหรือFPGA สิ่งนี้จะช่วยให้คุณได้รับจำนวนมากและ HDL (ภาษาคำอธิบายฮาร์ดแวร์) ที่คุณใช้ในการออกแบบ ALU นั้นง่ายกว่ามากและมีข้อผิดพลาดน้อยกว่าการพยายามหาวิธีที่จะทำให้การเชื่อมต่อด้วยตนเองด้วยประตูตรรกะ VHDLและ Verilog เป็น HDLs ของวัน

วิธีอื่นในการสร้าง ALU (ไม่ได้ใช้ประตูตรรกะแม้ว่า) จะเป็นคนเดียวขนาน EEPROM คุณใช้อินพุต A และ B และการดำเนินการเป็นอินพุต (ที่อยู่) และรับผลลัพธ์ของการดำเนินการเป็นเอาต์พุต (ข้อมูล) สิ่งที่คุณต้องทำคือรวบรวมเนื้อหาของ ROM ซึ่งหมายความว่าคุณต้องเขียนทุก ๆ ที่อยู่ว่าผลลัพธ์ของการดำเนินการจะเป็นอย่างไรสำหรับอินพุตที่เกี่ยวข้อง A, B และการดำเนินการ ขนาดของ Word จะถูก จำกัด ด้วยขนาด ROM ที่ใหญ่ที่สุดที่คุณสามารถหาได้


5

คุณสามารถสร้าง ALU ของคุณเองได้แม้กระทั่งคอมพิวเตอร์เก่าที่มีชิป TTL แยกซึ่งใช้การรวมบางอย่างเข้าด้วยกัน ตัวอย่างเช่นดูที่ชิป 74x181 นั่นคือชิ้นส่วน 4 บิตของ ALU และใช้ในคอมพิวเตอร์ TTL บางเครื่องเพื่อใช้งาน ALU แบบเต็มโดยใช้หนึ่งในชิปเหล่านี้สำหรับแต่ละ 4 บิต


ขออภัยที่ไม่รู้เสียง แต่ชิป TTL แตกต่างจากประตูตรรกะอย่างไร และใช้ TTL ก่อนหรือหลังตรรกะประตูหรือไม่ หรือพวกเขาทำจากประตูตรรกะ: สับสน:

@ เซารอน - ฉันได้เพิ่มบันทึกเกี่ยวกับครอบครัวตรรกะในคำตอบของฉัน
stevenvh

5

ฉันจะเริ่มต้นในโลก HDL ก่อน เขียน verilog ใช้ verilator หรือ icarus verilog เพื่อจำลอง เขียนรหัสเพื่อให้มีลักษณะคล้ายกับแยกและหรือและไม่ใช่ประตูแล้วหากมีแนวโน้มที่จะหาชิ้นส่วนซีรีส์ 74xx (รีไซเคิล?) และเขียงหั่นขนม หรือมีจำนวน $ 50 บวกหรือลบบอร์ด CPLD และ FPGA ที่สามารถมีได้และคุณสามารถใส่ alu ในหนึ่งในนั้นที่มากับอินเทอร์เฟซบางชนิดด้านนอกเพื่อดูว่ามันทำงาน ฉันจะยืนยันว่าการศึกษา HDL นั้นเหมือนกันกับที่คุณเรียนรู้พื้นฐานของแอดเดอร์และอื่น ๆ และทำการผสมอินพุตและเอาต์พุตและการดำเนินการ แต่คุณสามารถทำได้โดยใช้งานง่ายและดูสภาพแวดล้อมก่อนนำไปใช้กับฮาร์ดแวร์ คล้ายกับที่คนทั่วไปทำกันในวันนี้ออกแบบและจำลองแล้วนำไปใช้งาน


1
อย่างแน่นอน จำลองก่อน ถ้าคุณต้องมีฮาร์ดแวร์ FPGA ก็ใช้งานได้จริง เดินสาย 74xx TTL สำหรับบางสิ่งบางอย่างที่ซับซ้อนนี้จะเป็นโครงการขนาดใหญ่ที่ไม่ควรจัดการจนกว่าการออกแบบจะคิดออกจริง ๆ
Chris Stratton

5

สำหรับหนังสือฉันขอสองหนังสือ "Patterson and Hennessy" (IIRC มี 3 ฉบับโดยปลอมเป็น 3 ฉบับ แต่ในความเป็นจริงแล้วหนังสือที่แตกต่างกันโดยสิ้นเชิงหากคุณจริงจัง: ให้พวกเขาทั้งหมด)

หากคุณต้องการทดสอบวิธีการของคุณในการออกแบบ ALU ขั้นพื้นฐานหรือแม้แต่ CPU: เริ่มต้นการทดสอบด้วยเครื่องจำลองตรรกะ เราใช้ DigitalWorks สำหรับชั้นเรียนของเรา แต่ฉันจะไม่แนะนำ Logisim ( http://sourceforge.net/projects/circuit/ ) ดูมีแนวโน้ม สิ่งที่คุณต้องมีคือเลเยอร์: สร้างบล็อกพื้นฐานเช่น full-adder, selector, และ flip-flop ที่ถูกทริกเกอร์จากเกตจากนั้นสร้าง register, ALU, ตรรกะการเรียงลำดับจากบล็อคเหล่านั้นไปจนถึงซีพียู กับหน่วยความจำ จริงๆแล้วมันไม่ยากที่จะสร้างสมมติว่าเทียบเท่ากับซีพียู PIC (14 บิตคอร์) ติดไฟ LED จำนวนมากแล้วตั้งโปรแกรมให้แสดง Kitt

หลังจากนั้นจะสนุกกับการทำ core 32 บิตให้พอร์ต GCC เข้ากับมันรู้ใน FPGA และรัน Linux บนมัน แต่คุณจะไม่เป็นคนแรก ...


4

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

แผ่นข้อมูลสำหรับเท็กซัส 74181 4 BitSlice ALU มีวงจรระดับประตูนี้ยัง


4

เรื่องราวของซีพียูเป็นหนึ่งในจำนวนที่เพิ่มขึ้นของสิ่งต่อแพคเกจ

ซีพียูรุ่นแรก ๆ มักใช้ ALU แบบอนุกรมที่สร้างจากรีเลย์หรือหลอดสูญญากาศไม่กี่ตัว คนแรกที่เลี้ยงเจ้าขนบธรรมเนียมนี้คือ 1947 ลมกรด

ซีพียู transistorized ที่เก่าที่สุดสร้างทุกอย่างจากทรานซิสเตอร์แต่ละตัว

Apollo Guidance Computer (AGM) อาจเป็นคอมพิวเตอร์เครื่องแรกที่สร้างขึ้นจากวงจรรวมใช้ IC เพียงชนิดเดียวนอกหน่วยความจำ: ประตู NOR อินพุต 3 ช่อง ALU และส่วนอื่น ๆ ทั้งหมดของ CPU นั้นสร้างขึ้นจากไอซีเกท NOR จำนวนมาก Cray 1 (เร็วกว่ามาก) ใช้ IC ชนิดเดียวเท่านั้นนอกหน่วยความจำนั่นคือเกท NOR ชนิดอื่น

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

ALU สามารถสร้างได้ทั้งหมดจากมัลติเพล็กเซอร์ ( "มัลติเพล็กเซอร์: ยุทธวิธีของการออกแบบลอจิก" ) โดยใช้ชิปจำนวนน้อยกว่าการนำ NOR ไปใช้งาน

Dieter Mueller โพสต์การออกแบบ ALU 8 บิตที่มีฟังก์ชั่นมากกว่าสองชิป 74181 74181 ไม่สามารถเปลี่ยนได้ - สร้างจากชิปที่น้อยลง: 14 ชิป TTL ที่ซับซ้อน: 74283 4 บิตบิตเพิ่มเติม 2 ตัวบาง 4: 1 mux และ 2: 1 mux บางส่วน

เช่นเดียวกับคอมพิวเตอร์เชิงพาณิชย์ที่มีความสำคัญทางประวัติศาสตร์ซีพียูที่ใช้ในบ้านจำนวนมากใช้ 74181 บางรุ่น ALU "สมบูรณ์" ตัวแรกบนชิปตัวเดียว

ซีพียูเหล่านี้หลายตัวสร้าง ALU 8 บิตหรือ 16 บิต (หรือทั้งสองอย่าง) จากชิป 74181 สองสามตัวและชิป 74182 สองสามตัว - แต่ละ 74181 นั้นรองรับการทำงานแบบ 4 บิตเท่านั้น โดยทั่วไปแล้วเครื่อง Homebrew จะใช้สิ่งที่ง่ายที่สุดเท่าที่จะเป็นไปได้นั่นคือการเคลื่อนย้ายจาก 74181 ที่ป้อนเข้าสู่เครื่องถัดไป เครื่องจักรเชิงพาณิชย์ที่ใช้ชิป 74181 โดยทั่วไปจะใช้ตัวกำเนิดการถือล่วงหน้า 74182 เพื่อทำการเพิ่มและการลบได้เร็วขึ้นอย่างมีนัยสำคัญ

วันนี้ ALUs ส่วนใหญ่ถูกซ่อนอยู่ในชิปบางตัว - ส่วนเล็ก ๆ ของ CPU, ASIC ชนิดอื่น, หรือ CPLD หรือ FPGA

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

ผู้คนได้ทำมันดังนั้นมันจะต้องเป็นไปได้

คำแนะนำทีละขั้นตอนอธิบายการออกแบบและการใช้งาน ALU ดูเหมือนความคิดที่ดีจริงๆ โปรดช่วยเราเขียนหนึ่งที่ Wikibook Microprocess ออกแบบอาจจะเป็น"ALU"หรือ"Wire Wrap"ส่วน



2

ในอดีตงาน ALU บางชิ้นทำด้วย discretes (ใช่ทรานซิสเตอร์และอื่น ๆ ) และบางชิ้นมีประตูและอีกมากมายที่มีชิป 'slice' 4 บิต (SN74181 ของ TI เป็นรุ่นแรกและ Fairchild 29F01 มีวัน)
แต่วันนี้มันเป็นเรื่องของการสร้างสมการตรรกะในภาษาคำอธิบายแบบลอจิกเกตหรือ PLA มีโมดูลที่สร้างไว้ล่วงหน้าที่มีวางจำหน่ายทั่วไปซึ่งจะนำหน่วยลอจิกขนาดเล็กที่เลือกไว้ในการออกแบบของคุณสิ่งที่ต้องทำคือเงินที่จะอนุญาตให้ใช้สิทธิ์ 'IP' (ทรัพย์สินทางปัญญา)


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