คำถามติดแท็ก cpu

CPU เป็นคำย่อของหน่วยประมวลผลกลาง บางครั้งเรียกง่ายๆว่าโปรเซสเซอร์กลาง แต่เรียกกันทั่วไปว่าโปรเซสเซอร์

3
ภาษาการเขียนโปรแกรมใดที่ใช้ในการเขียนโปรแกรม BIOS
ตามที่ฉันเข้าใจรหัส BIOS / บิตสตรีมที่เก็บไว้ใน ROM ควรเป็นแบบทั่วไป (ทำงานร่วมกับหลายประเภท CPU หรือ ISAs) นอกจากนี้ฉันเห็นบนเว็บว่าเป็นไปได้ที่จะทิ้งโค้ดของมัน (และ "แยกส่วน" มัน) ดังนั้นในภาษาชุดคำสั่งหรือรหัสเครื่องที่เขียน? ไม่ต้องการตัวประมวลผลใด ๆ เพื่อดำเนินการหรือไม่ ถ้าเป็นเช่นนั้นฉันเดาว่ามันจะใช้ซีพียูภายนอกแล้วจะรู้ได้อย่างไรว่าชุดคำสั่งเฉพาะของชุดที่ใช้ อาจมีโปรเซสเซอร์ภายในหรือไม่
65 cpu  bios 

7
การเปรียบเทียบ 1 <10 ราคาถูกกว่า 1 <1000000 หรือไม่
ฉันเพิ่งใช้จำนวนประมาณ 1 พันล้านz-indexใน CSS และคิดเกี่ยวกับการเปรียบเทียบที่ต้องดำเนินต่อไป มีความแตกต่างของประสิทธิภาพในระดับ ALU ในการเปรียบเทียบระหว่างตัวเลขขนาดใหญ่มากและเล็กมากหรือไม่? ตัวอย่างเช่นหนึ่งในสองตัวอย่างนี้จะมีราคาแพงกว่าอีกตัวอย่างหนึ่งหรือไม่ snippet 1 for (int i = 0; i &lt; 10000000; i++){ if (i &lt; 10000000000000) { //do nothing } } snippet 2 for (int i = 0; i &lt; 10000000; i++){ if (i &lt; 1000) { //do nothing } }
65 performance  cpu 

3
เธรดเดี่ยวทำงานบนหลายคอร์ได้อย่างไร
ฉันพยายามที่จะเข้าใจในระดับสูงว่าเธรดเดี่ยวทำงานในหลายคอร์ได้อย่างไร ด้านล่างเป็นความเข้าใจที่ดีที่สุดของฉัน ฉันไม่เชื่อว่ามันถูกต้อง จากการอ่านHyper-threadingของฉันดูเหมือนว่าระบบปฏิบัติการจะจัดการคำแนะนำของเธรดทั้งหมดในลักษณะที่พวกเขาไม่ได้รอซึ่งกันและกัน จากนั้น Front-end ของ CPU จะจัดระเบียบคำแนะนำเหล่านั้นเพิ่มเติมโดยกระจายเธรดหนึ่งเธรดไปยังแต่ละคอร์และกระจายคำสั่งที่เป็นอิสระจากแต่ละเธรดในทุกรอบที่เปิด ดังนั้นหากมีเพียงเธรดเดียวดังนั้นระบบปฏิบัติการจะไม่ทำการเพิ่มประสิทธิภาพใด ๆ อย่างไรก็ตามส่วนหน้าของ CPU จะแจกจ่ายชุดคำสั่งที่เป็นอิสระในแต่ละคอร์ ตามhttps://stackoverflow.com/a/15936270ภาษาการเขียนโปรแกรมเฉพาะอาจสร้างเธรดมากขึ้นหรือน้อยลง แต่ไม่เกี่ยวข้องเมื่อพิจารณาว่าจะทำอย่างไรกับเธรดเหล่านั้น ระบบปฏิบัติการและ CPU จัดการสิ่งนี้ดังนั้นจึงเกิดขึ้นโดยไม่คำนึงถึงภาษาการเขียนโปรแกรมที่ใช้ เพียงเพื่อชี้แจงฉันถามเกี่ยวกับเธรดเดียวที่รันในหลายคอร์ไม่ใช่เกี่ยวกับการรันหลายเธรดบนแกนเดียว เกิดอะไรขึ้นกับบทสรุปของฉัน คำสั่งของเธรดอยู่ที่ไหนและอย่างไรแบ่งออกเป็นหลายแกน ภาษาการเขียนโปรแกรมสำคัญหรือไม่ ฉันรู้ว่านี่เป็นวิชาที่กว้างขวาง ฉันหวังว่าจะเข้าใจมันในระดับสูง

12
เหตุใดโปรแกรมจึงต้องใช้จำนวนแกนประมวลผลขั้นต่ำที่เฉพาะเจาะจง
เป็นไปได้ไหมที่จะเขียนโค้ด (หรือซอฟต์แวร์ที่สมบูรณ์แทนที่จะเป็นส่วนหนึ่งของรหัส) ที่ทำงานไม่ถูกต้องเมื่อทำงานบน CPU ที่มีจำนวนคอร์น้อยกว่า N? โดยไม่ตรวจสอบอย่างชัดเจนและล้มเหลวตามวัตถุประสงค์: หาก (noOfCores &lt;4) จากนั้นทำงานไม่ถูกต้องตามวัตถุประสงค์ ฉันกำลังดูข้อกำหนดขั้นต่ำของเกม ( Dragon Age: Inquisition ) ขั้นต่ำของเกมและระบุขั้นต่ำของซีพียูสี่คอร์ ผู้เล่นหลายคนบอกว่ามันไม่ได้ทำงานบนซีพียูสองคอร์และ EVEN บนIntel Core i3s ที่มีฟิสิคัลคอร์สองตัวและคอร์ตรรกะสองคอร์ และมันก็ไม่ได้เป็นปัญหาของพลังการคำนวณ จากความเข้าใจของฉันเธรดจะถูกแยกออกจาก CPU อย่างสมบูรณ์โดยระบบปฏิบัติการเนื่องจากไม่สามารถทำได้ เพียงเพื่อล้างสิ่งออก: ฉันไม่ได้ถามว่า "ฉันสามารถค้นหาจำนวนแกนประมวลผลของ CPU จากโค้ดและไม่สามารถทำได้ตามวัตถุประสงค์หรือไม่" ... รหัสดังกล่าวจะไม่ได้ตั้งใจ (บังคับให้คุณซื้อ CPU ที่มีราคาแพงกว่าเพื่อรันโปรแกรม - โดยไม่จำเป็นต้องใช้พลังงานในการคำนวณ) ฉันถามว่ารหัสของคุณพูด, มีสี่กระทู้และล้มเหลวเมื่อสองหัวข้อที่มีการทำงานบนแกนเดียวกันทางกายภาพ(ไม่ชัดเจนตรวจสอบข้อมูลของระบบและจงใจล้มเหลว) ในระยะสั้นจะมีซอฟต์แวร์ที่ต้องใช้หลายคอร์โดยไม่จำเป็นต้องใช้พลังการประมวลผลเพิ่มเติมที่มาจากหลายคอร์หรือไม่? มันจะต้องมีแกนร่างกายแยก N

7
ในการเขียนโปรแกรมซอฟต์แวร์เป็นไปได้ไหมที่ทั้ง CPU และ GPU จะโหลด 100%?
นี่เป็นคำถามทั่วไปในเรื่องที่ฉันสนใจในฐานะนักเล่นเกม: คอขวดของ CPU / GPU และการเขียนโปรแกรม ถ้าฉันไม่เข้าใจผิดฉันจะเข้าใจว่าทั้ง CPU และ GPU คำนวณสิ่งของ แต่สิ่งหนึ่งนั้นดีกว่าในการคำนวณบางอย่างมากกว่าอีกอันหนึ่งเนื่องจากความแตกต่างของสถาปัตยกรรม ตัวอย่างเช่นการถอดรหัสแฮชหรือการขุด cryptocurrency ดูเหมือนจะมีประสิทธิภาพมากกว่าใน GPU มากกว่าใน CPU ดังนั้นฉันสงสัย: มี GPU ที่โหลด 100% ในขณะที่ CPU อยู่ที่ 50% (ตัวอย่าง) หลีกเลี่ยงไม่ได้? หรือแม่นยำยิ่งขึ้น: การคำนวณบางอย่างที่โดยปกติ GPU กระทำโดย CPU หากการคำนวณแรกนั้นมีการโหลด 100% ดังนั้นทั้งสองจะถึงการโหลด 100% หรือไม่ ฉันค้นหาเรื่องเล็กน้อย แต่กลับมาค่อนข้างถนัดมือ ฉันคิดและหวังว่าสิ่งนี้จะเกิดขึ้นในส่วนย่อยนี้และเปิดรับเอกสารหรือการบรรยายใด ๆ ที่คุณอาจให้ฉัน!

10
ทำไมรหัสของคุณไม่ควรใช้ CPU 100% [ปิด]
ฉันกำลังพูดโดยเฉพาะเกี่ยวกับโปรแกรม C # .NET 4 ที่ทำงานบน Windows XP หรือสูงกว่า แต่คำตอบทั่วไปก็ยอมรับได้เช่นกัน สมมติว่าโปรแกรมที่ได้รับการปรับให้เหมาะสมและมีประสิทธิภาพนั้น ปัญหานี่คือผลกระทบของการใช้งาน CPU สูงกับฮาร์ดแวร์ทั้งหมดและควรใช้โปรแกรมที่มีการใช้งานสูงเพื่อลดการสึกหรอหรือไม่ไม่ว่าการใช้งานของฉันจะมีประสิทธิภาพหรือไม่ เพื่อนร่วมงานวันนี้แนะนำว่าฉันไม่ควรตั้งเป้าการใช้งาน CPU 100% ในกระบวนการโหลดข้อมูลเพราะ "ซีพียูสมัยใหม่ราคาถูกและจะลดลงอย่างรวดเร็วที่ 100% ซีพียู" มันเป็นเรื่องจริงเหรอ? และถ้าเป็นเช่นนั้นทำไม ก่อนหน้านี้ฉันรู้สึกว่าการใช้ CPU 100% นั้นดีกว่าสำหรับการใช้งานที่หนักหน่วงหรือยาวนานและฉันก็ไม่สามารถหาแหล่งที่มาที่น่านับถือในเรื่องนี้ได้
42 c#  multithreading  cpu  usage 

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

3
ทำไมกองเติบโตขึ้น
ฉันสมมติว่ามีประวัติ แต่ทำไมสแต็คถึงลง? ดูเหมือนว่าฉันชอบบัฟเฟอร์ล้นจะยากมากที่จะใช้ประโยชน์หากกองเติบโตขึ้น ...
31 cpu  stack 

6
ทำไมเราต้องรอ I / O
เป็นที่ทราบกันดีอยู่แล้วว่าการทำงานของดิสก์ช้าและเรารู้สาเหตุที่ทำให้การทำงานช้า ดังนั้นคำถามที่นี่คือเหตุผลที่เราต้องรอ I / O หรือทำไมมีสิ่งเช่น IOWait ฯลฯ ฉันหมายถึงฉันสังเกตเห็นว่าเมื่อคุณทำงาน I / O บางส่วนในพื้นหลังโดยทั่วไปคอมพิวเตอร์ของคุณจะช้าลงมากฉันสังเกตว่าโดยเฉพาะอย่างยิ่งเมื่อใช้ Linux ถ้าคุณทำภารกิจ I / O อีกต่อไป ระบบปฏิบัติการเกือบจะไม่สามารถใช้งานได้จนกว่าจะเสร็จสิ้น ที่จริงฉันยังพบหัวข้อนี้ในบทความมีตัวอย่าง: การรอ I / O คือ 12.1% เซิร์ฟเวอร์นี้มี 8 คอร์ (ผ่าน cat / proc / cpuinfo) สิ่งนี้อยู่ใกล้กับ (1/8 คอร์ = 0.125) โดยพื้นฐานแล้วมันหมายความว่ามันทำให้คอมพิวเตอร์ช้าลงมากทำไมล่ะ? ฉันหมายถึงตกลงตอนนี้คอมพิวเตอร์ทั่วไปมีอย่างน้อย 2 คอร์บางครั้ง 4 หรือบางครั้งพวกเขามีมากขึ้นเพราะการทำไฮเปอร์เธรดหรืออะไรแบบนั้น แต่ตอนนี้คำถามคือทำไม CPU ถึงต้องอยู่ที่นั่นจริง …
28 cpu  io  operations 

4
การลงทะเบียน CPU คืออะไร
คำถามนี้รบกวนฉันมาระยะหนึ่งแล้วและวันนี้ฉันคิดว่าฉันจะทำ Google ฉันได้อ่านสิ่งบางอย่างเกี่ยวกับเรื่องนี้และดูเหมือนว่ามันคล้ายกันมากกับสิ่งที่ฉันได้รู้จักกันเสมอเป็นหน่วยประมวลผลแคช มีความแตกต่างระหว่างฉันสองคนหรือว่าถูกต้องเมื่อฉันคิดว่ามันเหมือนกันหรือไม่? จำเป็นต้องมีการลงทะเบียนเพื่อใช้ภายใน CPU เพื่อให้ทำงานได้หรือไม่? ตามวิกิพีเดียการลงทะเบียนเป็นสถานที่ใน CPU ที่สามารถเข้าถึงและแก้ไขหน่วยความจำได้อย่างรวดเร็วก่อนที่จะถูกส่งกลับไปที่ RAM ฉันเข้าใจผิดหรือแคชและลงทะเบียนเหมือนกันจริงหรือไม่?

2
เหตุใดจึงมีแคช L1 แยกต่างหากสำหรับข้อมูลและคำแนะนำ
เพิ่งผ่านภาพนิ่งบางส่วนและสังเกตว่าแคช L1 (อย่างน้อยใน CPU ของ Intel) แยกความแตกต่างระหว่างข้อมูลและแคชคำสั่งฉันอยากจะรู้ว่าทำไมนี่คือ ..
23 hardware  cpu 

6
CPU ทำข้อผิดพลาดในการคำนวณบ่อยแค่ไหน?
ในหมายเหตุของ Dijkstra เกี่ยวกับการเขียนโปรแกรมแบบโครงสร้างเขาพูดถึงเรื่องการพิสูจน์ได้ของโปรแกรมคอมพิวเตอร์ในฐานะหน่วยงานที่เป็นนามธรรม ในฐานะที่เป็นข้อพิสูจน์เขากล่าวว่าการทดสอบไม่เพียงพอ เช่นเขาชี้ให้เห็นความจริงที่ว่ามันเป็นไปไม่ได้ที่จะทดสอบฟังก์ชั่นการคูณ f (x, y) = x * y สำหรับค่าใด ๆ ของ x และ y ทั่วทั้งช่วงของ x และ y คำถามของฉันเกี่ยวข้องกับคนอื่น ๆ พูดถึง "ฮาร์ดแวร์หมัด" ฉันรู้ว่าเรียงความที่เขียนขึ้นในปี 1970 เมื่อคอมพิวเตอร์ฮาร์ดแวร์ก็มีความน่าเชื่อถือน้อยลง แต่คอมพิวเตอร์ยังคงไม่สมบูรณ์ดังนั้นพวกเขาจะต้องทำผิดพลาดในการคำนวณบางครั้ง ไม่มีใครรู้ว่าสิ่งนี้เกิดขึ้นบ่อยแค่ไหนหรือหากมีสถิติใด ๆ เกี่ยวกับเรื่องนี้?
22 theory  cpu 

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

3
ทำไมไฟล์ที่เรียกใช้งานจึงขึ้นอยู่กับระบบปฏิบัติการ แต่ไม่ได้ใช้กับซีพียู
ถ้าฉันเขียนโปรแกรม C และคอมไพล์มันลงใน.exeไฟล์ไฟล์นั้น.exeจะมีคำสั่งเครื่องดิบไปยัง CPU (ฉันคิด). ถ้าเป็นเช่นนั้นจะเป็นไปได้อย่างไรที่ฉันจะเรียกใช้ไฟล์ที่คอมไพล์ในคอมพิวเตอร์เครื่องใดก็ได้ที่ใช้ Windows รุ่นทันสมัย CPU แต่ละตระกูลมีชุดคำสั่งต่างกัน ดังนั้นคอมพิวเตอร์เครื่องใดที่ใช้ระบบปฏิบัติการที่เหมาะสมสามารถเข้าใจคำแนะนำใน.exeไฟล์ของฉันได้อย่างไรไม่ว่าจะเป็น CPU จริงหรือไม่ นอกจากนี้บ่อยครั้งในเว็บไซต์ในหน้า "ดาวน์โหลด" ของแอพพลิเคชั่นบางตัวคุณมีการดาวน์โหลดสำหรับ Windows สำหรับ Linux และสำหรับ Mac (มักดาวน์โหลดสองครั้งสำหรับแต่ละระบบปฏิบัติการสำหรับคอมพิวเตอร์ 86 และ 64 บิต) เหตุใดจึงไม่มีการดาวน์โหลดเพิ่มเติมจำนวนมากสำหรับซีพียูแต่ละตระกูล

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

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