สถาปัตยกรรม ARM แตกต่างจาก x86 อย่างไร [ปิด]


192

สถาปัตยกรรม x86 ได้รับการออกแบบมาเป็นพิเศษเพื่อทำงานกับแป้นพิมพ์ในขณะที่ ARM คาดว่าจะเป็นมือถือ ความแตกต่างที่สำคัญระหว่างสองคืออะไร


37
เว้นแต่ว่า x86 จะมีพอร์ต ps / 2 ที่ฉันไม่รู้จักมันก็ไม่ได้สร้างขึ้นสำหรับคีย์บอร์ดมากกว่าชุดชั้นในสกปรกคู่หนึ่ง :-)
paxdiablo

6
ฉันคิดว่าแป้นพิมพ์อ้างถึงบทบาทพีซีทั่วไปเมื่อเทียบกับอุปกรณ์ทางกายภาพ
เสียงอึกทึกที่

24
x86 ไม่ได้ถูกออกแบบมา มันวิวัฒนาการมาบนเกาะพร้อมกับนกแปลก ๆ ที่กินทุกอย่างที่พยายามสวดอ้อนวอน ตอนนี้ดูเหมือนคนแปลกหน้ากว่าเป็ดตุ่นปากเป็ดที่เรียกเก็บเงินและจะไม่ดีถ้ามีสัตว์ใหม่เต็มไปหมด
ctrl-alt-delor

5
@ Richard - น่าเศร้านี่เป็นคำอธิบายที่ถูกต้องที่สุดในประวัติศาสตร์ของ x86 ที่ฉันเคยเห็นมา มันบอกว่าค่อนข้างมากเกี่ยวกับอุตสาหกรรม
Leeor

6
@Leor ขออภัยฉันทำผิดพลาดเล็กน้อยในความคิดเห็นของฉันฉันบอกว่านกกินนักล่าของ x86 ซึ่งมันไม่ได้กินมันมันนั่งกับพวกเขา นอกจากนี้ยังควรค่าแก่การสังเกตว่าขนนกที่อ่อนนุ่มซึ่งเป็นระเบียบมากมาก
ctrl-alt-delor

คำตอบ:


306

ARMเป็นสถาปัตยกรรม RISC (ลดการเรียนการสอนชุดคำสั่ง) ในขณะที่x86หนึ่งCISC (ซับซ้อนชุดคำสั่งคอมพิวเตอร์)

ความแตกต่างที่สำคัญระหว่างคำแนะนำในส่วนนี้คือคำสั่ง ARM ทำงานเฉพาะในการลงทะเบียนโดยมีคำแนะนำเล็กน้อยสำหรับการโหลดและบันทึกข้อมูลจาก / สู่หน่วยความจำในขณะที่ x86 สามารถทำงานได้โดยตรงบนหน่วยความจำเช่นกัน จนถึง v8 ARM เป็นสถาปัตยกรรมแบบ 32 บิตที่เป็นที่นิยม

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

เกี่ยวกับคำถามเกี่ยวกับ " สถาปัตยกรรม x86 ได้รับการออกแบบมาเป็นพิเศษเพื่อทำงานกับแป้นพิมพ์ในขณะที่ ARM คาดว่าจะเป็นโทรศัพท์มือถือหรือไม่ " x86ไม่ได้ถูกออกแบบมาเป็นพิเศษเพื่อทำงานร่วมกับแป้นพิมพ์ค่าARMสำหรับโทรศัพท์มือถือ อย่างไรก็ตามอีกครั้งเนื่องจากตัวเลือกสถาปัตยกรรมหลักที่จริงแล้ว x86 ยังมีคำแนะนำในการทำงานโดยตรงกับIOในขณะที่ ARM ไม่ได้ อย่างไรก็ตามด้วยรถบัสแบบ IO พิเศษเช่น USB ความต้องการคุณสมบัติดังกล่าวก็หายไปเช่นกัน

หากคุณต้องการเอกสารเพื่ออ้างถึงนี่คือสิ่งที่Cortex-A Series โปรแกรมเมอร์คู่มือ (4.0)บอกเกี่ยวกับความแตกต่างระหว่างสถาปัตยกรรม RISC และ CISC:

ตัวประมวลผล ARM เป็นตัวประมวลผลของคอมพิวเตอร์ลดชุดคำสั่ง (RISC)

ตัวประมวลผลคำสั่งคอมพิวเตอร์ (CISC) ที่ซับซ้อนเช่น x86 มีชุดคำสั่งมากมายที่สามารถทำสิ่งที่ซับซ้อนด้วยคำสั่งเดียว โปรเซสเซอร์ดังกล่าวมักจะมีตรรกะภายในจำนวนมากที่ถอดรหัสคำสั่งเครื่องตามลำดับของการดำเนินการภายใน (ไมโครโค้ด)

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

บริษัท ARM ยังมีบทความเกี่ยวกับสถาปัตยกรรมโปรเซสเซอร์และอุปกรณ์ในการพัฒนาอุปกรณ์ที่อธิบายถึงวิธีใช้ข้อกำหนดเหล่านี้กับธุรกิจของพวกเขา

ตัวอย่างการเปรียบเทียบสถาปัตยกรรมชุดคำสั่ง:

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

repe cmpsb         /* repeat while equal compare string bytewise */

ในขณะที่อยู่ในARMรูปแบบที่สั้นที่สุดอาจดูเหมือน (ไม่มีการตรวจสอบข้อผิดพลาดและอื่น ๆ )

top:
ldrb r2, [r0, #1]! /* load a byte from address in r0 into r2, increment r0 after */
ldrb r3, [r1, #1]! /* load a byte from address in r1 into r3, increment r1 after */
subs r2, r3, r2    /* subtract r2 from r3 and put result into r2      */
beq  top           /* branch(/jump) if result is zero                 */

ซึ่งควรให้คำแนะนำว่าชุดคำสั่ง RISC และ CISC แตกต่างกันอย่างไรในความซับซ้อน


9
ARMv8-A มีสถาปัตยกรรม 64 บิตชื่อ AArch64
kyrias

9
แม้ว่า x86 จะมีคำแนะนำที่ทรงพลัง แต่แขนก็ยังสามารถเอาชนะได้ในการต่อสู้ (ถ้าทั้งคู่มีความเร็วสัญญาณนาฬิกาเท่ากัน) ส่วนหนึ่งเป็นเพราะแขนมีชุดรีจิสเตอร์ที่ดีโดยที่ x86 ใช้เวลา 1/2 ในการเคลื่อนย้ายข้อมูลเข้าและออกจากเซ็ตรีจิสเตอร์ที่ จำกัด ) และส่วนหนึ่งเป็นเพราะความเรียบง่ายของ Arm ออกจากพื้นที่สำหรับแคชที่ใหญ่กว่าและมีคำแนะนำตามเงื่อนไขทั้งหมด และการเคลื่อนที่ของแขนหลายคำสั่ง (ไม่ใช่คำสั่ง RISC เพียงอย่างเดียว) ทำให้สามารถย้ายข้อมูลได้อย่างรวดเร็ว
ctrl-alt-delor

4
ฉันสามารถเขียนรหัส ARM ได้เร็วขึ้นแม้ว่าจะใหญ่กว่าโดยใช้รีจิสเตอร์มากกว่า ถ้าฉันดูที่การนำไปปฏิบัตินี้ x86 ใช้นาฬิกา 5 + 9 × N ARM จะใช้นาฬิกา 4 × N (ตัวเลขทั้งสองนั้นไม่มีค่าสำหรับแคช) x86 ให้คะแนนดีกว่าสำหรับคำสั่งไบต์ในตัวอย่างนี้: x86 = 2 ไบต์, แขน = 16 ไบต์ คะแนน ARM ดีขึ้นมากในการวัดนี้ในการทดสอบที่สมจริงยิ่งขึ้นเช่นเมื่อออกจากลูป r2 จะมีข้อมูลว่าสตริงมีค่าเท่ากันหรือใหญ่กว่าดังนั้นรหัสเงื่อนไขจะ แขนสามารถเรียกใช้คำแนะนำอื่น ๆ ก่อนที่จะตรวจสอบรหัสเงื่อนไข แขนไม่จำเป็นต้องแยกสาขาเมื่อตรวจสอบรหัสเงื่อนไข
ctrl-alt-delor

2
@JeremyFelix ดูเหมือนว่าstackoverflow.com/questions/13106297/นี้มีท่อที่แตกต่างกันสำหรับคำแนะนำประเภทต่าง ๆ แม้จะมีคำสั่งที่ซ้ำกันอยู่ก็ตาม CPU แบ่งคำสั่งออกเป็นคำสั่งขนาดเล็กและสามารถทำงานแบบขนานระหว่างไปป์ไลน์
auselen

2
คุณพูดว่า "ในขณะที่ x86 สามารถทำงานบนหน่วยความจำโดยตรงเช่นกัน" อย่างไรก็ตามสำหรับ x86 (ก่อน x86-64) มีการลงทะเบียนน้อยมากที่ไม่มี "เช่นกัน" คุณต้องเก็บทุกอย่างไว้ในหน่วยความจำ เกี่ยวกับ instructions คำแนะนำในโปรแกรมที่เพิ่งจะย้ายสิ่งต่าง ๆ ในขณะที่ ARM จำเป็นต้องมีคำแนะนำน้อยมากในการเคลื่อนย้ายข้อมูล
ctrl-alt-delor

94

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

เท่าที่ความแตกต่างที่เกิดขึ้นจริง: ARM มีการลงทะเบียนมากขึ้นรองรับการคาดการณ์ล่วงหน้าสำหรับคำแนะนำส่วนใหญ่ก่อนที่ Intel จะเพิ่มมันและได้รวมเทคนิคทุกประเภทไว้นาน (เรียกว่า "กลอุบาย" หากคุณต้องการ) เพื่อประหยัดพลังงาน

นอกจากนี้ยังมีความแตกต่างอย่างมากในวิธีการเข้ารหัสของทั้งสองวิธี Intel ใช้การเข้ารหัสความยาวตัวแปรที่ซับซ้อนซึ่งการเรียนการสอนสามารถครอบครองได้ทุกที่ตั้งแต่ 1 ถึง 15 ไบต์ สิ่งนี้ทำให้โปรแกรมมีขนาดค่อนข้างเล็ก แต่ทำให้การถอดรหัสคำสั่งค่อนข้างยาก (เช่น: คำแนะนำในการถอดรหัสอย่างรวดเร็วในแบบคู่ขนานเป็นเหมือนฝันร้ายที่สมบูรณ์)

ARM มีโหมดการเข้ารหัสคำสั่งที่แตกต่างกันสองโหมด: ARM และ THUMB ในโหมด ARM คุณจะสามารถเข้าถึงคำแนะนำทั้งหมดและการเข้ารหัสนั้นง่ายและรวดเร็วมากในการถอดรหัส น่าเสียดายที่โค้ดโหมด ARM นั้นมีขนาดใหญ่พอสมควรดังนั้นจึงเป็นเรื่องปกติที่โปรแกรมจะใช้หน่วยความจำประมาณสองเท่าของรหัส Intel โหมด Thumb พยายามลดขนาดนั้น มันยังคงใช้การเข้ารหัสคำสั่งปกติ แต่ลดคำสั่งส่วนใหญ่จาก 32 บิตเป็น 16 บิตเช่นโดยการลดจำนวนของรีจิสเตอร์กำจัดการปล้นสะดมจากคำสั่งส่วนใหญ่และลดช่วงของกิ่ง อย่างน้อยในประสบการณ์ของผมยังไม่ได้มักจะให้ค่อนข้างความหนาแน่นของการเข้ารหัสเป็นรหัส x86 สามารถรับได้ แต่มันค่อนข้างใกล้และการถอดรหัสนั้นยังค่อนข้างง่ายและตรงไปตรงมา ความหนาแน่นของรหัสที่ต่ำกว่าหมายความว่าคุณต้องการหน่วยความจำเพิ่มขึ้นอย่างน้อยและโดยทั่วไปแล้วแคชที่ใหญ่กว่าจะได้ประสิทธิภาพที่เทียบเท่า

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

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

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

โปรเซสเซอร์ของ Intel (โดยเฉพาะโปรเซสเซอร์ Atom ซึ่งมีไว้สำหรับแอพพลิเคชั่นที่ใช้พลังงานต่ำ) มีการแข่งขันสูงมากในแง่ของการใช้พลังงาน ในขณะที่พวกเขากำลังทำงานใกล้กับความเร็วเต็มที่พวกเขาจะใช้พลังงานมากกว่าโปรเซสเซอร์ ARM ส่วนใหญ่ แต่พวกเขาก็ทำงานได้อย่างรวดเร็วดังนั้นพวกเขาจึงสามารถกลับไปนอนได้เร็วกว่า เป็นผลให้พวกเขาสามารถรวมแบตเตอรี่ที่ดีกับประสิทธิภาพที่ดี

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


นั่นคือเหตุผล? RISC ต้องการ RAM เพิ่มขึ้นในขณะที่ CISC ให้ความสำคัญกับขนาดรหัสที่เล็กลงและใช้ RAM โดยรวมน้อยกว่า RISC
Waqar Naeem

โหมด Thumb (ความยาวตัวแปรที่ช่วยให้การเข้ารหัสสั้น) ไม่ได้เป็นความแตกต่าง ; นั่นเป็นวิธีที่ x86 ใช้งานได้เสมอ (แต่ moreso ที่มีความยาวการสอนแตกต่างกันไปตั้งแต่ 1 ถึง 15 ไบต์และถอดรหัสยากกว่า Thumb2) โหมด ARM (การเข้ารหัสความกว้างคงที่พร้อมคำแนะนำแบบไม่ทำลาย 3 ตัว) แตกต่างจาก x86!
Peter Cordes

การมีตัวประมวลผลที่เร็วกว่านั้นไม่ใช่ความช่วยเหลือที่ยิ่งใหญ่ - การประชุมทางวิดีโออาจเป็นตัวอย่างที่ดีกว่า: เวลาหน่วงต่ำหมายความว่าคุณไม่สามารถถอดรหัสการบัฟเฟอร์ขนาดที่เหมาะสมและกลับไปสู่โหมดสลีประดับลึกหรือปานกลาง . "Race to sleep" เป็นแนวคิดหลักในการใช้พลังงานสำหรับการคำนวณจำนวนคงที่เนื่องจากซีพียูสมัยใหม่สามารถประหยัดพลังงานได้อย่างมีนัยสำคัญเมื่อไม่ได้ใช้งานอย่างเต็มที่ (หยุดนาฬิกาหรือแม้กระทั่งลดพลังงานบางส่วนของแกน) หรือในโหมดสลีปลึก หลังจากเขียนกลับมา) ... และนั่นคือจุดที่คุณทำในย่อหน้าถัดไปแน่นอน >. <
Peter Cordes

@PeterCordes: การเข้ารหัสโหมด Thumb ไม่เหมือนการเข้ารหัส x86 แม้ว่ามันจะไม่ได้ค่อนข้างเป็นปกติเช่นการเข้ารหัส ARM ก็ยังคงสวยมาก format.Density เพิ่มขึ้นเป็นส่วนใหญ่มาจากการกำจัดบิตที่เป็นเพียงการที่ไม่ค่อยได้ใช้ในการเข้ารหัส ARM ยกตัวอย่างเช่นคำสั่ง ARM ทั้งหมดนั้นมีเงื่อนไข แต่เงื่อนไขนั้นใช้เวลาเพียงเล็กน้อยเท่านั้น (ดังนั้นคำสั่ง THUMB ที่ไม่ใช่สาขาส่วนใหญ่จึงไม่มีเงื่อนไข)
Jerry Coffin

@PeterCordes: ถูกต้อง: การประชุมทางวิดีโอเป็นตัวอย่างที่ดีกว่า - ฉันได้แก้ไขแล้วค่ะขอบคุณ
Jerry Coffin

39

เพิ่มเติมจากวรรคแรกของ Jerry Coffin เช่นการออกแบบ ARM ให้การใช้พลังงานที่ต่ำกว่า

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

  1. ลดค่าใช้จ่ายของบอร์ด
  2. พลังงานต่ำ (หมายเหตุ 1)
  3. ผลิตง่ายขึ้น
  4. ฟอร์มแฟคเตอร์ที่เล็กลง

ARMสนับสนุนผู้ขาย SOC กับAMBAทำให้ผู้วางระบบ SOC สามารถซื้อโมดูลบุคคลที่สามได้ เช่น Ethernet, หน่วยความจำและคอนโทรลเลอร์ขัดจังหวะ แพลตฟอร์มซีพียูอื่น ๆ บางตัวรองรับสิ่งนี้เช่นMIPSแต่ MIPS นั้นไม่คำนึงถึงพลังงาน

ทั้งหมดนี้เป็นประโยชน์ต่อการออกแบบโดยใช้มือถือ / แบตเตอรี่ บางตัวก็ดีไปหมด เช่นกันARMมีประวัติของอุปกรณ์ที่ใช้แบตเตอรี่ แอปเปิ้ลของนิวตัน , Psion จัด ซอฟต์แวร์ PDA โครงสร้างพื้นฐานได้รับการยกระดับโดยบาง บริษัท ในการสร้างมาร์ทโฟนอุปกรณ์ประเภท แม้ว่าจะมีความสำเร็จเพิ่มขึ้นโดยผู้ที่คิดค้น GUI เพื่อใช้กับสมาร์ทโฟนอีกครั้ง

การเพิ่มขึ้นของOpen sourceชุดเครื่องมือและoperating systemsยังอำนวยความสะดวกSOCชิปต่างๆ องค์กรปิดจะมีปัญหาในการพยายามสนับสนุนอุปกรณ์ต่าง ๆ ทั้งหมดสำหรับ ARM สองแพลตฟอร์มมือถือยอดนิยมคือ Andriod และ OSx / IOS นั้นใช้LinuxและFreeBSD, Mach และ NetBSD os Open Sourceช่วยSOCผู้ขายให้การสนับสนุนซอฟต์แวร์สำหรับชุดชิปของพวกเขา

หวังว่าเหตุใดจึงใช้ x86สำหรับแป้นพิมพ์ด้วยตนเอง มันมีซอฟต์แวร์และที่สำคัญกว่านั้นผู้ที่ได้รับการฝึกฝนให้ใช้ซอฟต์แวร์นั้น Netwinderเป็นหนึ่งในARMระบบที่ถูกออกแบบมาสำหรับแป้นพิมพ์ นอกจากนี้ผู้ผลิตกำลังมองหา ARM64 สำหรับตลาดเซิร์ฟเวอร์ พลังงาน / ความร้อนเป็นปัญหาที่ศูนย์ข้อมูล 24/7

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

หมายเหตุ 1: ชิปหลายตัวต้องการไดรเวอร์บัสเพื่อสื่อสารระหว่างแรงดันไฟฟ้าและไดรฟ์ที่รู้จัก นอกจากนี้โดยทั่วไปแล้วชิปแยกต่างหากต้องการตัวเก็บประจุสนับสนุนและส่วนประกอบพลังงานอื่น ๆ ซึ่งสามารถใช้ร่วมกันในระบบSOC


22

ARM เปรียบเสมือนรถสปอร์ตอิตาลี:

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

x86 เป็นเหมือนรถกล้ามเนื้ออเมริกัน:

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

โดยสรุป: x86 นั้นมีพื้นฐานมาจากการออกแบบตั้งแต่ปี 1974 และดีในแนวเส้นตรง (แต่ใช้เชื้อเพลิงจำนวนมาก) แขนใช้เชื้อเพลิงเล็กน้อยไม่ชะลอตัวสำหรับมุม (สาขา)


อุปมาที่นี่มีความแตกต่างที่แท้จริง

  • แขนมีการลงทะเบียนมากขึ้น
  • Arm มีการลงทะเบียนเพื่อวัตถุประสงค์พิเศษเพียงเล็กน้อย x86 เป็นการลงทะเบียนเพื่อวัตถุประสงค์พิเศษทั้งหมด
  • แขนมีคำสั่งการเข้าถึงหน่วยความจำเพียงไม่กี่โหลด / เก็บลงทะเบียนเท่านั้น
  • Arm เป็นสถาปัตยกรรมภายในของ Harvard ที่ฉันออกแบบ
  • แขนง่ายและรวดเร็ว
  • คำแนะนำแขนเป็นรอบเดียวสถาปัตยกรรม (ยกเว้นโหลด / เก็บหลายรายการ)
  • คำแนะนำอาร์มมักจะทำมากกว่าหนึ่งสิ่ง (ในรอบเดียว)
  • ในกรณีที่จำเป็นต้องมีคำสั่ง Arm หนึ่งเช่นการวนลูปของ x86 & การเพิ่มขึ้นอัตโนมัติ Arm ยังคงทำงานในรอบสัญญาณนาฬิกาน้อยลง
  • แขนมีคำแนะนำตามเงื่อนไขเพิ่มเติม
  • การคาดคะเนสาขาของ Arm นั้นเรียบง่ายเล็กน้อย (ถ้าไม่มีเงื่อนไขหรือย้อนกลับจากนั้นให้สันนิษฐานสาขาอื่นถือว่าไม่ใช่สาขา) และทำงานได้ดีกว่าอันที่ซับซ้อนมากมากใน x86 (มีพื้นที่ไม่เพียงพอที่จะอธิบายได้ไม่ใช่ว่าฉันจะทำได้ )
  • Arm มีชุดคำสั่งที่สอดคล้องกันง่าย ๆ (คุณสามารถรวบรวมด้วยมือและเรียนรู้ชุดคำสั่งได้อย่างรวดเร็ว)

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

1
ประสิทธิภาพการทำงานที่ชาญฉลาดมันแข่งขันโดยตรงกับโปรเซสเซอร์ Xeon ที่ใหญ่ที่สุด / เร็วกว่า (เช่น E5-2690 v3) แต่ใช้พลังงานต่ำกว่าราคา quora.com/…
ctrl-alt-delor

1
สำหรับปริมาณงานแบบขนานอย่างหนาแน่นเช่นฐานข้อมูลและเซิร์ฟเวอร์ I / O เพื่อประสิทธิภาพแบบเธรดเดียวไม่มีใครออกแบบ ARM core ทุกที่ใกล้กับ x86 ไม่มีเหตุผลที่พวกเขาทำไม่ได้ไม่มีใครมี "ภาษี x86" ในพื้นที่ไฟฟ้าและแม่พิมพ์นั้นไม่ใหญ่มากเมื่อเทียบกับปริมาณของซิลิกอนที่ใช้สำหรับเครื่องจักรที่ล้าสมัยในคอร์ซีพียูกำลังสูง มีหูดที่ x86 แต่ RISC มีข้อเสียเปรียบเกี่ยวกับความหนาแน่นของรหัส (ซึ่งมักจะไม่สำคัญมากนัก แต่ก็ยังสำคัญอยู่) สิ่งนี้ได้รับการโต้เถียงซ้ำ ๆ บนฟอรัมrealworldtech.com
Peter Cordes

1
@ Richard: มีหลายสิ่งที่คุณไม่ต้องการ "" แต่นั่นเป็นการเพิ่มความหนาแน่นของรหัส เคล็ดลับคือการปรับสมดุลความซับซ้อนของการถอดรหัสกับขนาดรหัส / จำนวนคำสั่ง การเพิ่มความกว้างของแกนกลางที่ล้าสมัยนั้นมีราคาแพงมากในการใช้พลังงานดังนั้นการบรรจุงานให้มากขึ้นในแต่ละคำสั่งนั้นมีค่า ความซับซ้อนของการถอดรหัสที่เพิ่มขึ้นเล็กน้อยนั้นถูกกว่า ซีพียู x86 รุ่นใหม่จัดการถอดรหัส x86 ได้อย่างรวดเร็ว (ไม่เร็วพอที่จะเก็บ OOO core 4 หน้ากว้างที่ป้อนจากตัวถอดรหัสแทน uop-cache หรือ loop buffer และแน่นอนในราคาพลังงานสูง)
Peter Cordes

3
@ Evi1M4chine มันก็แตกที่ความจริงที่ว่ารถสปอร์ตอิตาลีมีราคาแพงมากในขณะที่รถกล้ามเนื้ออเมริกานั้นค่อนข้างถูก และรถกล้ามเป็นสิ่งที่เป็นเพราะมันเรียบง่ายในขณะที่บางสิ่งบางอย่างเช่น Ferrari นั้นซับซ้อนมาก ตรงกันข้ามกับ CISC กับ RISC
Lorenzo Dematté

15

สถาปัตยกรรม ARM ได้รับการออกแบบมาสำหรับคอมพิวเตอร์ส่วนบุคคลของ Acorn (ดูที่Acorn Archimedes , ประมาณปี 1987 และRiscPC ) ซึ่งเป็นคอมพิวเตอร์ส่วนบุคคลแบบแป้นพิมพ์ การใช้งาน ARM ในภายหลังนั้นมีเป้าหมายหลักที่ตลาดมือถือและตลาดฝังตัว

เดิมที RISC CPUs ธรรมดาที่มีประสิทธิภาพเทียบเท่าสามารถออกแบบโดยทีมวิศวกรรมขนาดเล็ก (ดูBerkeley RISC ) กว่าผู้ที่ทำงานกับการพัฒนา x86 ที่ Intel

แต่ทุกวันนี้ชิป ARM ที่เร็วที่สุดมีหน่วยการเรียนการสอนที่ซับซ้อนซึ่งออกแบบโดยทีมงานด้านวิศวกรรมขนาดใหญ่และ x86 คอร์อาจมีสิ่งที่คล้ายกับแกน RISC ที่ป้อนโดยหน่วยการแปลคำสั่ง

ดังนั้นความแตกต่างใด ๆ ในปัจจุบันระหว่างสถาปัตยกรรมทั้งสองจึงเกี่ยวข้องกับความต้องการของตลาดเฉพาะของผลิตภัณฑ์ที่ทีมพัฒนากำลังกำหนดเป้าหมาย (ความเห็นแบบสุ่ม: ARM อาจทำค่าธรรมเนียมใบอนุญาตเพิ่มขึ้นจากแอพพลิเคชั่นที่ฝังตัวซึ่งมีแนวโน้มว่าจะมีข้อ จำกัด ด้านพลังงานและค่าใช้จ่ายมากกว่าและ Intel จำเป็นต้องรักษาประสิทธิภาพในพีซีและเซิร์ฟเวอร์เพื่อให้ได้ผลกำไร


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