คำถามติดแท็ก computer-architecture

7
กองซ้อนเป็นวิธีเดียวที่สมเหตุสมผลในการจัดโครงสร้างโปรแกรมหรือไม่
สถาปัตยกรรมส่วนใหญ่ที่ฉันเคยเห็นต้องใช้ call stack เพื่อบันทึก / เรียกคืนบริบทก่อนการเรียกใช้ฟังก์ชัน มันเป็นกระบวนทัศน์ทั่วไปที่การดำเนินงานแบบพุชและป๊อปถูกติดตั้งไว้ในโปรเซสเซอร์ส่วนใหญ่ มีระบบที่ทำงานโดยไม่มี stack หรือไม่? ถ้าเป็นเช่นนั้นทำงานอย่างไรและใช้ทำอะไร

10
ความแตกต่างระหว่างตัวแปรและตำแหน่งหน่วยความจำคืออะไร? [ปิด]
เมื่อเร็ว ๆ นี้ฉันพยายามอธิบายพอยน์เตอร์ด้วยวิธีภาพเป็นแฟลชการ์ด คำถาม 001:นี่คือภาพวาดของตำแหน่งในหน่วยความจำคอมพิวเตอร์ มันเป็นความจริง0x23452หรือไม่ที่อยู่ของมันคือ ทำไม? คำตอบ:ใช่เพราะ0x23452อธิบายว่าคอมพิวเตอร์สามารถหาตำแหน่งนี้ได้จากที่ใด คำถาม 002:จริงหรือไม่ที่ตัวละครbนั้นถูกเก็บไว้ในตำแหน่งหน่วยความจำ0x23452? ทำไม? คำตอบ:ไม่เพราะตัวละครaจะถูกเก็บไว้ข้างใน คำถามที่ 003:มันคือความจริงที่เป็นตัวชี้ที่เก็บไว้ภายในที่ตั้งหน่วยความจำ0x23452? ทำไม? คำตอบ:ใช่เพราะที่อยู่ของตำแหน่งหน่วยความจำ0x34501ถูกเก็บไว้ข้างใน คำถามที่ 004:มันคือความจริงที่เป็นตัวชี้ที่เก็บไว้ภายในที่ตั้งหน่วยความจำ0x23452? ทำไม? คำตอบ:ใช่เพราะที่อยู่ของตำแหน่งหน่วยความจำอื่นจะถูกเก็บไว้ข้างใน ตอนนี้สำหรับส่วนที่ทำให้ฉันกังวล วิศวกรซอฟต์แวร์อธิบายพอยน์เตอร์ให้ฉันเช่นนี้: ตัวชี้เป็นตัวแปรที่มีค่าเป็นที่อยู่หน่วยความจำของตัวแปรอื่น จาก FlashCards ทั้งสี่ที่ฉันแสดงให้คุณเห็นทั้งหมดฉันจะกำหนดพอยน์เตอร์ด้วยวิธีที่แตกต่างกันเล็กน้อย: ตัวชี้คือตำแหน่งหน่วยความจำที่มีค่าเป็นที่อยู่หน่วยความจำของตำแหน่งหน่วยความจำอื่น มันปลอดภัยหรือไม่ที่จะบอกว่าตัวแปรนั้นเหมือนกับตำแหน่งหน่วยความจำหรือไม่? ถ้าไม่เช่นนั้นใครถูก ความแตกต่างระหว่างตัวแปรและตำแหน่งหน่วยความจำคืออะไร?

4
Little Endian ชนะแล้วหรือยัง?
เมื่อเร็ว ๆ นี้เมื่อสอนเกี่ยวกับการสู้รบของ Big vs. Little Endian นักเรียนคนหนึ่งถามว่ามันได้รับการตัดสินหรือไม่และฉันรู้ว่าฉันไม่รู้ ดูบทความ Wikipediaดูเหมือนว่าคู่ OS / สถาปัตยกรรมปัจจุบันที่นิยมที่สุดใช้ Little Endian แต่ Internet Protocol ระบุ Big Endian สำหรับการถ่ายโอนค่าตัวเลขในส่วนหัวของแพ็กเก็ต นั่นเป็นบทสรุปที่ดีของสถานะปัจจุบันหรือไม่? การ์ดเครือข่ายหรือซีพียูในปัจจุบันให้การสนับสนุนฮาร์ดแวร์สำหรับการสลับลำดับไบต์หรือไม่

2
ไปป์ไลน์ไมโครโปรเซสเซอร์ที่ทันสมัยทั่วไปใช้เวลานานเท่าใด
ฉันได้เรียนรู้เกี่ยวกับการวางท่อ แต่มี 4 ขั้นตอนและ 5 ขั้นตอนและฉันคิดว่าการวางท่อแบบใหม่นั้นมีความยาวและซับซ้อนกว่าในทางปฏิบัติ ท่อทั่วไปจะใช้เวลานานเท่าไหร่และเราสามารถคาดหวังได้ว่าจะเพิ่มขึ้นเท่าไหร่และจุดที่จะไปถึงจุด diminshing จะได้รับผลตอบแทนจากการทำงานเพิ่มขึ้นสำหรับท่อที่ยาวกว่าอยู่ที่ไหน?

4
การใช้งานที่เพิ่มขึ้นของภาษาการเขียนโปรแกรมที่สูงกว่าและสูงกว่าจะนำไปสู่การขาดของโปรแกรมเมอร์ที่มีความรู้ด้านสถาปัตยกรรมคอมพิวเตอร์หรือไม่?
อ้างอิงจาก Wikipedia ของบทความ "ภาษาการเขียนโปรแกรมระดับสูง": ภาษาโปรแกรมระดับสูงเป็นภาษาโปรแกรมที่มีนามธรรมสูงจากรายละเอียดของคอมพิวเตอร์ เมื่อเปรียบเทียบกับภาษาการเขียนโปรแกรมระดับต่ำมันอาจใช้องค์ประกอบภาษาธรรมชาติใช้งานง่ายกว่าหรือพกพาข้ามแพลตฟอร์มได้มากกว่า ภาษาดังกล่าวซ่อนรายละเอียดของการทำงานของ CPU เช่นรุ่นการเข้าถึงหน่วยความจำและการจัดการขอบเขต เช่นเมื่อระดับของภาษาการเขียนโปรแกรมเพิ่มขึ้นโปรแกรมเมอร์ก็จะออกไปจากฮาร์ดแวร์ที่โปรแกรมรันอยู่ ตอนนี้ฉันไม่ทราบสถิติการใช้ภาษาในระดับต่าง ๆ แต่ฉันสงสัยว่าภาษาระดับสูงจะมีการแทนที่ภาษาระดับต่ำกว่า ถ้าเป็นเช่นนั้นสิ่งนี้จะนำไปสู่การขาดดุลของโปรแกรมเมอร์ที่มีความรู้ด้านสถาปัตยกรรมคอมพิวเตอร์หรือไม่? นี่จะเป็นปัญหาสำหรับอุตสาหกรรมหรือไม่?

8
เรียนรู้สถาปัตยกรรมคอมพิวเตอร์ในฐานะโปรแกรมเมอร์ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันมักจะพบเจอกันที่กูรูที่ SO และสถานที่อื่น ๆ (อาจารย์ผู้สอนผู้เขียนหนังสือ ฯลฯ ) ที่จะพูดอะไรบางอย่างตามเส้น"This will cause alignment issues"หรือเกร็ดเล็กเกร็ดน้อยอื่น ๆ ฉันต้องการเรียนรู้เกี่ยวกับเกร็ดเล็กเกร็ดเหล่านี้ทั้งหมดที่เกี่ยวกับrelevantการเขียนโปรแกรม ตอนนี้โดยปกติแล้วเมื่อฉันเห็นหนังสือระดับต่ำ (เช่นหนังสือสถาปัตยกรรมคอมพิวเตอร์) พวกเขาอยู่ในระดับต่ำเกินไปและเหมาะสำหรับผู้ที่มีความสนใจหลักคือสถาปัตยกรรมคอมพิวเตอร์และไม่ใช่การออกแบบซอฟต์แวร์ คุณมีคำแนะนำสำหรับหนังสือที่อ่านเนื้อหาต่ำที่เกี่ยวข้องกับโปรแกรมเมอร์หรือไม่?

5
ฉันจะรู้ได้อย่างไรว่าคอมพิวเตอร์ของฉันเป็นสถาปัตยกรรมฮาร์วาร์ดหรือฟอนนอยมันน์
ฉันเข้าใจความแตกต่างระหว่างสถาปัตยกรรมทั้งสองคือการแยกคำสั่งจากข้อมูลในสถาปัตยกรรมฮาร์วาร์ด แต่ฉันจะรู้ได้อย่างไรว่าฉันใช้ระบบประเภทใด เป็นไปได้ไหมที่จะเขียนโปรแกรมเพื่อให้โปรแกรมพิจารณาว่าระบบเป็น von Neumann หรือ Harvard หรือไม่? อาจมีสถาปัตยกรรมอื่นหรือสถาปัตยกรรมเหล่านี้เป็นที่รู้จักกันเท่านั้น?

1
สถาปัตยกรรมคอมพิวเตอร์ไม่ได้ขึ้นอยู่กับอาร์เรย์ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว เอกสารต้นฉบับของ Wadler ใน Monads for Functional Programming (Haskell) เขากล่าว อีกคำถามหนึ่งที่มีประวัติอันยาวนานก็คือมันเป็นที่ต้องการของโปรแกรมพื้นฐานในการอัพเดทอาร์เรย์หรือไม่ เนื่องจากความพยายามอย่างมากในการพัฒนาอัลกอริธึมและสถาปัตยกรรมบนพื้นฐานของอาร์เรย์เราจะหลีกเลี่ยงการอภิปรายนี้และเพียงแค่คิดว่าคำตอบคือใช่ ไม่มีการอ้างอิงหรือคำใบ้สำหรับสถาปัตยกรรมที่เป็นไปได้อื่น ๆ ฉันเคยได้ยินบางสิ่งเกี่ยวกับสถาปัตยกรรมที่เหมาะกับ Lisp ใครช่วยกรุณาแนะนำฉันด้วยคำอธิบายและคำแนะนำเกี่ยวกับที่ไหน / ฉันสามารถเริ่มต้นในหัวข้อนี้ ฉันซาบซึ้งมากที่คุณสามารถอธิบายสถาปัตยกรรมที่แตกต่างกันในเวลาสั้น

2
มีทางเลือกอื่นสำหรับสแต็ก + ฮีป + โมเดลหน่วยความจำสแตติก
โปรแกรมทั้งหมดที่ฉันได้เห็นจัดระเบียบหน่วยความจำข้อมูลลงในสแต็คการโทรหนึ่งครั้งขึ้นไป (ปกติขนาดคงที่ แต่บางครั้งก็ไม่ใช่) ฮีปและหน่วยความจำแบบสแตติก เมื่อเร็ว ๆ นี้ที่จัดเก็บแบบคงที่ของเธรดแบบโลคัลถูกเพิ่มเข้ากับสิ่งนี้เช่นกัน มีความพยายามใด ๆ ในการจัดระเบียบเค้าโครงหน่วยความจำข้อมูลด้วยวิธีที่แตกต่างอย่างสิ้นเชิงเช่นไม่มี call stack หรือไม่? หรือจัดระเบียบหน่วยความจำในวิธีอื่นที่ทำสิ่งเดียวกันสำเร็จ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.