สถาปัตยกรรม x86 ได้รับการออกแบบมาเป็นพิเศษเพื่อทำงานกับแป้นพิมพ์ในขณะที่ ARM คาดว่าจะเป็นมือถือ ความแตกต่างที่สำคัญระหว่างสองคืออะไร
สถาปัตยกรรม x86 ได้รับการออกแบบมาเป็นพิเศษเพื่อทำงานกับแป้นพิมพ์ในขณะที่ ARM คาดว่าจะเป็นมือถือ ความแตกต่างที่สำคัญระหว่างสองคืออะไร
คำตอบ:
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 แตกต่างกันอย่างไรในความซับซ้อน
ไม่มีอะไรเฉพาะกับแป้นพิมพ์หรือมือถือนอกเหนือจากข้อเท็จจริงที่ว่า 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 ทำได้ดีในเรื่องการใช้พลังงาน แต่ขึ้นอยู่กับสถานการณ์ที่คุณอาจสนใจเกี่ยวกับการใช้พลังงานมากกว่าการใช้พลังงานแบบทันที
เพิ่มเติมจากวรรคแรกของ Jerry Coffin เช่นการออกแบบ ARM ให้การใช้พลังงานที่ต่ำกว่า
บริษัทARM
ให้สิทธิ์ใช้งานเทคโนโลยี CPU เท่านั้น พวกเขาไม่ได้ทำชิปทางกายภาพ สิ่งนี้ทำให้ บริษัท อื่น ๆ สามารถเพิ่มเทคโนโลยีอุปกรณ์ต่อพ่วงต่าง ๆ ซึ่งโดยทั่วไปเรียกว่าSOCหรือระบบบนชิป ไม่ว่าจะเป็นอุปกรณ์แท็บเล็ตโทรศัพท์มือถือหรือระบบความบันเทิงในรถยนต์ วิธีนี้ช่วยให้ผู้จำหน่ายชิปสามารถปรับแต่งชิปที่เหลือไปยังแอปพลิเคชันเฉพาะ สิ่งนี้มีประโยชน์เพิ่มเติม
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
ARM เปรียบเสมือนรถสปอร์ตอิตาลี:
x86 เป็นเหมือนรถกล้ามเนื้ออเมริกัน:
โดยสรุป: x86 นั้นมีพื้นฐานมาจากการออกแบบตั้งแต่ปี 1974 และดีในแนวเส้นตรง (แต่ใช้เชื้อเพลิงจำนวนมาก) แขนใช้เชื้อเพลิงเล็กน้อยไม่ชะลอตัวสำหรับมุม (สาขา)
อุปมาที่นี่มีความแตกต่างที่แท้จริง
สถาปัตยกรรม ARM ได้รับการออกแบบมาสำหรับคอมพิวเตอร์ส่วนบุคคลของ Acorn (ดูที่Acorn Archimedes , ประมาณปี 1987 และRiscPC ) ซึ่งเป็นคอมพิวเตอร์ส่วนบุคคลแบบแป้นพิมพ์ การใช้งาน ARM ในภายหลังนั้นมีเป้าหมายหลักที่ตลาดมือถือและตลาดฝังตัว
เดิมที RISC CPUs ธรรมดาที่มีประสิทธิภาพเทียบเท่าสามารถออกแบบโดยทีมวิศวกรรมขนาดเล็ก (ดูBerkeley RISC ) กว่าผู้ที่ทำงานกับการพัฒนา x86 ที่ Intel
แต่ทุกวันนี้ชิป ARM ที่เร็วที่สุดมีหน่วยการเรียนการสอนที่ซับซ้อนซึ่งออกแบบโดยทีมงานด้านวิศวกรรมขนาดใหญ่และ x86 คอร์อาจมีสิ่งที่คล้ายกับแกน RISC ที่ป้อนโดยหน่วยการแปลคำสั่ง
ดังนั้นความแตกต่างใด ๆ ในปัจจุบันระหว่างสถาปัตยกรรมทั้งสองจึงเกี่ยวข้องกับความต้องการของตลาดเฉพาะของผลิตภัณฑ์ที่ทีมพัฒนากำลังกำหนดเป้าหมาย (ความเห็นแบบสุ่ม: ARM อาจทำค่าธรรมเนียมใบอนุญาตเพิ่มขึ้นจากแอพพลิเคชั่นที่ฝังตัวซึ่งมีแนวโน้มว่าจะมีข้อ จำกัด ด้านพลังงานและค่าใช้จ่ายมากกว่าและ Intel จำเป็นต้องรักษาประสิทธิภาพในพีซีและเซิร์ฟเวอร์เพื่อให้ได้ผลกำไร