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

คำถามเกี่ยวกับองค์กรและการออกแบบฮาร์ดแวร์คอมพิวเตอร์

10
สามารถใช้ภาษาแอสเซมบลีสากลสำหรับคอมพิวเตอร์ทุกเครื่องได้หรือไม่
ฉันอยากถามคำถามสองสามข้อเกี่ยวกับภาษาแอสเซมบลี ความเข้าใจของฉันคือว่ามันใกล้เคียงกับภาษาเครื่องทำให้เร็วขึ้นและมีประสิทธิภาพมากขึ้น เนื่องจากเรามีสถาปัตยกรรมคอมพิวเตอร์ที่แตกต่างกันนั่นหมายความว่าฉันต้องเขียนโค้ดที่แตกต่างกันในแอสเซมบลีสำหรับสถาปัตยกรรมที่แตกต่างกันหรือไม่? ถ้าเป็นเช่นนั้นทำไมแอสเซมบลีไม่เขียนหนึ่งครั้ง - เรียกใช้ภาษาทุกที่? จะไม่ง่ายกว่าที่จะทำให้เป็นสากลเพื่อให้คุณเขียนเพียงครั้งเดียวและสามารถเรียกใช้บนเครื่องที่มีการตั้งค่าที่แตกต่างกันได้ (ฉันคิดว่ามันคงเป็นไปไม่ได้ แต่ฉันต้องการคำตอบที่เป็นรูปธรรมและลึกซึ้ง) บางคนอาจบอกว่า C เป็นภาษาที่ฉันต้องการ ฉันไม่เคยใช้ C มาก่อน แต่ฉันคิดว่ามันยังคงเป็นภาษาระดับสูงถึงแม้ว่าอาจจะเร็วกว่า Java เช่นกัน ฉันอาจจะผิดที่นี่

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

5
รหัสเครื่องมีลักษณะอย่างไรในขณะที่ทำงานอยู่
เมื่อรหัสฮาร์ดแวร์ถูกประมวลผลโดยฮาร์ดแวร์และ CPU จริง ๆ แล้วมันมีลักษณะอย่างไร? มันจะมีลักษณะเป็นเลขฐานสองตามคำแนะนำในการเป็นตัวแทนของคนและศูนย์หรือมันจะเป็นสิ่งที่ประกอบด้วยเลขฐานสิบหกหลักที่ opcodes เป็นไบต์นำเสนอเป็นตัวเลขฐานสิบซึ่งสามารถแบ่งกลับลงในเลขฐานสองเช่น bytecode?

4
ความถี่ซีพียูต่อปี
ฉันรู้ว่าตั้งแต่ปี 2004 กฎของมัวร์หยุดทำงานเพื่อความเร็วสัญญาณนาฬิกาของ CPU ฉันกำลังมองหากราฟที่แสดงสิ่งนี้ แต่ไม่สามารถหาได้: แผนภูมิส่วนใหญ่ที่นั่นแสดงจำนวนทรานซิสเตอร์หรือกำลังการผลิตต่อปี ฉันจะหาข้อมูลที่แสดงความถี่ซีพียูของคอมพิวเตอร์ได้ที่ไหน (อะไรก็ได้, คอมพิวเตอร์ส่วนบุคคล, เซิร์ฟเวอร์, แล็ปท็อป, ... ) จากสองสามทศวรรษที่ผ่านมาจนถึงทุกวันนี้? ข้อมูลดิบที่ฉันสามารถพล็อตตัวเองก็น่าจะดีเช่นกัน

3
หน่วยประมวลผลแบบขนานขนาดใหญ่ในปัจจุบันสามารถเรียกใช้ออโตมาตาเซลลูลาร์ได้อย่างมีประสิทธิภาพหรือไม่?
ฉันสงสัยว่าหน่วยการคำนวณแบบขนานขนาดใหญ่ที่มีอยู่ในการ์ดกราฟิกในปัจจุบัน (ตัวอย่างที่ตั้งโปรแกรมได้ในOpenCLเป็นต้น) ดีพอที่จะจำลองออโตเซล 1D เซลลูลาร์ (หรืออาจเป็นออโตเซล 2D)? หากเราเลือกกริดที่ จำกัด ใด ๆ ที่จะพอดีกับหน่วยความจำของชิปเราสามารถคาดหวังการเปลี่ยนแปลงของออโตเมติกเซลลูลาร์ที่กำหนดบนกริดนี้เพื่อคำนวณได้ในเวลาคงที่ (เสมือน) หรือไม่? ฉันคิดว่าออโตมาร์เซลลูลาร์ 2D จะต้องใช้แบนด์วิดท์มากขึ้นสำหรับการสื่อสารระหว่างส่วนต่าง ๆ ของชิปมากกว่าออโตมาตา 1D ฉันสนใจคำถามเดียวกันในกรณีของการเขียนโปรแกรม FPGA หรือชิปที่กำหนดเอง

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

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

5
จะคำนวณจำนวนของแท็กดัชนีและออฟเซ็ตบิตของแคชที่ต่างกันได้อย่างไร
โดยเฉพาะ: 1) แคชที่แมปโดยตรงด้วย 4096 บล็อก / บรรทัดซึ่งแต่ละบล็อกมี 8 คำ 32- บิต จำเป็นต้องมีบิตจำนวนเท่าใดสำหรับฟิลด์แท็กและดัชนีโดยสมมติว่ามีที่อยู่แบบ 32 บิต 2) คำถามเช่นเดียวกับ 1) แต่สำหรับแคชเชื่อมโยงอย่างเต็มที่ ? แก้ไขฉันถ้าฉันผิดมันคือ: บิตแท็ก = ความยาวบิตที่อยู่ - เลขชี้กำลังของดัชนี - เลขชี้กำลังของออฟเซ็ต? [ออฟเซ็ต = 3 เนื่องจาก 2 ^ 3 = 8 หรือเป็น 5 จาก 2 ^ 5 = 32 หรือไม่]

1
Memory Consistency vs Cache Coherence
ความจริงที่ว่า Sequential Consistency เป็นคุณสมบัติที่แข็งแกร่งกว่า Cache Coherence หรือไม่? ตามที่ โซรินดาเนียลเจ; Hill, Mark D; Wood, David A: ไพรเมอร์ที่สอดคล้องกับความจำและความสอดคล้องกันของแคช , Morgan & Claypool, 2011 ความต่อเนื่องตามลำดับสามารถอธิบายได้เป็น (ไม่เป็นทางการ): แบบจำลองหน่วยความจำความสอดคล้องตามลำดับระบุว่าระบบต้องปรากฏขึ้นเพื่อดำเนินการโหลดเธรดทั้งหมดและเก็บไปยังตำแหน่งหน่วยความจำทั้งหมดในลำดับทั้งหมดที่เป็นไปตามลำดับโปรแกรมของแต่ละเธรด การโหลดแต่ละครั้งจะได้รับมูลค่าของร้านค้าล่าสุดตามลำดับทั้งหมด ในคำอื่น ๆ ระบบมีความสอดคล้องตามลำดับหากได้รับเหตุการณ์หน่วยความจำ (โหลดและร้านค้า) ของแต่ละหัวข้อเราสามารถสั่งซื้อเหตุการณ์เหล่านี้ทั้งหมดที่: 1) สำหรับแต่ละกระทู้ลำดับของกิจกรรมของมันจะถูกเก็บไว้และ 2) คำสั่งทั่วโลกคือ อนุกรม (โหลดใด ๆ ส่งคืนค่าล่าสุดที่เก็บไว้) ตอนนี้พวกเขาดำเนินการต่อและอธิบายการเชื่อมโยงกัน: คำนิยามของการเชื่อมโยงกันที่คล้ายคลึงกับคำจำกัดความของความสอดคล้องตามลำดับคือระบบที่เชื่อมโยงกันจะต้องปรากฏขึ้นเพื่อดำเนินการโหลดกระทู้และเก็บทั้งหมดไปยังตำแหน่งหน่วยความจำเดียวในลำดับทั้งหมดที่เคารพคำสั่งโปรแกรมของแต่ละกระทู้ กล่าวอีกนัยหนึ่งระบบจะเชื่อมโยงกันหากได้รับเหตุการณ์ความจำของแต่ละเธรดสำหรับแต่ละตำแหน่งเราสามารถจัดลำดับเหตุการณ์สำหรับตำแหน่งนั้นเช่น: 1) สำหรับแต่ละเธรดลำดับของเหตุการณ์ในตำแหน่งนั้นจะถูกเก็บไว้และ 2) สำหรับแต่ละ สถานที่การสั่งซื้อเป็นแบบอนุกรม ในที่สุดพวกเขาชี้ให้เห็นความแตกต่าง: คำจำกัดความนี้เน้นความแตกต่างที่สำคัญระหว่างการเชื่อมโยงและความสอดคล้องกัน: การเชื่อมโยงกันจะถูกระบุบนพื้นฐานที่ตั้งของหน่วยความจำต่อหน่วยความจำในขณะที่มีการระบุความสอดคล้องกับสถานที่หน่วยความจำทั้งหมด ดังนั้นดูเหมือนว่าความแตกต่างคือสำหรับระบบที่เชื่อมโยงกันเราจำเป็นต้องมีคำสั่งทั้งหมดในทุกเหตุการณ์สำหรับแต่ละสถานที่ …

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

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

4
เหตุใดสถาปัตยกรรม CPU ใช้การตั้งค่าสถานะ (ข้อดี)
CPU บางตัวมีค่าสถานะการลงทะเบียน (ARM, x86, ... ), ตัวอื่น ๆ ไม่ (MIPS, ... ) อะไรคือข้อดีของการมีคำสั่ง CMP เพื่ออัปเดตค่าสถานะการลงทะเบียนตามด้วยคำสั่งสาขาแทนที่จะใช้การลงทะเบียนเป็นศูนย์และสาขาที่มีเงื่อนไขเพื่อตรวจสอบเครื่องหมายล้น ฯลฯ

2
เหตุใด MIPS จึงรวม shamt และแยกความแตกต่างหน้าที่ / opcode
ฉันสับสนว่าทำไมนักออกแบบ MIPS จึงรวม 5 บิตไว้สำหรับการเลื่อนและมี opcode และบิตการทำงานแยกต่างหาก เพราะ MIPS นั้น RISC ฉันคิดว่าการขยับจะทำได้ในไม่กี่คำสั่งดังนั้น 5 บิตเหล่านั้นจึงดูเหมือนว่าพวกเขากำลังสูญเสียพื้นที่เมื่อพวกเขาสามารถวางในทันที ฉันคิดว่า opcodes และฟังก์ชั่นนั้นแยกต่างหากสำหรับการแยกคำสั่ง R- และ I- ชนิด แต่สามารถทำได้โดยขยาย opcode ด้วย 1 บิต ด้วยคำแนะนำ R-type ทั้งสองนี้อาจมีความยาว 22 บิต สิ่งนี้จะไม่ทำงานหากคำแนะนำประเภท I และ J-type ต้องการเก็บไว้ทันทีและที่อยู่ แต่ทั้งคู่ก็ไม่จำเป็น

1
TLB และแคชข้อมูลทำงานอย่างไร
ฉันพยายามศึกษาเพื่อสอบและฉันก็รู้ว่าฉันสับสนเกี่ยวกับการทำงานของ TLB และแคชข้อมูล ฉันเข้าใจว่า TLB นั้นเป็นแคชที่อยู่ทางกายภาพที่ใช้งานล่าสุด อย่างไรก็ตามฉันกำลังดูแผนภาพในตำราเรียนของฉัน (แสดงด้านล่าง) และฉันไม่เข้าใจว่าเกิดอะไรขึ้น ฉันก็แยกที่อยู่ทางกายภาพขึ้นมาและใช้เป็นดัชนีของแคชฉันเดา แต่ทำไมมันถึงแสดงแคชและข้อมูลแยกกัน และทำไมไบต์ออฟเซ็ตเหลือแค่การลอย? ฉันค่อนข้างมั่นใจว่าแคชควรจะเก็บข้อมูลด้วย ฉันไม่คิดว่าจุดประสงค์เพียงอย่างเดียวของมันคือการพิจารณาว่ามีการตีหรือพลาดอยู่ข้างในหรือไม่ ฉันขอโทษสำหรับความไม่รู้ของฉันล่วงหน้า แต่หนังสือเล่มนี้ครอบคลุม TLB's (มันเหมือนกับหน้ามากกว่าหนึ่งหน้า) และมันก็ทำงานได้ไม่ดีนักในการอธิบายความสัมพันธ์ระหว่าง TLB และแคช

3
ประตูลอจิกจากวัสดุในชีวิตประจำวัน
ประตูลอจิกเป็นอุปกรณ์ที่เป็นนามธรรมซึ่งสามารถนำไปใช้กับรีเลย์แม่เหล็กไฟฟ้าหลอดสุญญากาศหรือทรานซิสเตอร์ การดำเนินการเหล่านี้ประสบความสำเร็จในการคำนวณในส่วนหนึ่งเนื่องจากคุณสมบัติต่างๆของความสามารถในการเชื่อมโยงความทนทานและขนาดที่เกินความเสถียรพื้นฐาน พวกเขายังทำงานได้ดีเพราะไฟฟ้าเป็นแหล่งพลังงานที่สามารถจัดส่งได้ง่าย ผมเคยเห็นงูที่สร้างขึ้นจากไม้หินอ่อนและแรงโน้มถ่วง ผมเคยเห็น"ห้องปฏิบัติการบนชิป" ต้นแบบ ฉันเคยเห็นเครื่องคิดเลขเชิงกลพิเศษทุกชนิด ( Curta , สไลด์กฎ) ฉันเคยเห็นโดมิโนเส้นทางเป็นประตูตรรกะแบบใช้ครั้งเดียว ฉันสนใจในอุปกรณ์การคำนวณเชิงประกอบอื่น ๆ ที่ไม่จำเป็นต้องสะดวกทนทานหรือเร็ว แต่ใช้ประโยชน์จากคุณสมบัติของวัสดุในชีวิตประจำวันเพื่อทำการคำนวณและมองเห็นได้โดยตรง เส้นทางโดมิโนนั้นอยู่ใกล้ แต่ก็ซับซ้อนเกินกว่าจะรีเซ็ตได้ การเตรียมแม๊ก - กล? น้ำในท่อ / ราง การคุมกำเนิดหินอ่อนทั่วไปมากขึ้น? PS นี่คือใหม่ นาฬิกา CPU เครื่องกล

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