คุณสามารถใช้คอมพิวเตอร์กับไมโครคอนโทรลเลอร์ขนาด 32 บิตได้หรือไม่?


9

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


ที่เกี่ยวข้อง: chiphacker.com/questions/1092/…
endolith

คำตอบ:


11

ขึ้นอยู่กับว่าคุณนิยาม 'คอมพิวเตอร์' อย่างไร

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

โดย 'การจัดการหน่วยความจำ' ฉันหมายถึงความสามารถในการเรียกใช้โปรแกรมในพื้นที่ที่อยู่เสมือนและแมปสิ่งเหล่านี้กับ RAM จริงที่มีอยู่ในระบบฟังก์ชั่นที่ดำเนินการโดยสิ่งที่เรียกว่าหน่วยจัดการหน่วยความจำ (MMU)

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

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

ตอนนี้ก็เป็นเรื่องดีที่จะทำการคำนวณจุดประสงค์ทั่วไปบนอุปกรณ์ที่ไม่มี MMU และหน่วยความจำไม่มาก RAM 128K ดั้งเดิม, IBM PC ที่ใช้ 8088 (16 บิต) หายไปกับสิ่งนี้ตราบใดที่คุณต้องการเพียงเรียกใช้โปรแกรมหนึ่งครั้ง

ดังนั้นหากคุณต้องการนิยาม 'คอมพิวเตอร์' เหมือนกับเทคโนโลยี 1982 คำตอบคือใช่แน่นอน หรือถ้าคุณมีระบบปิดที่คุณสามารถลดปัญหาการไม่มี MMU และ / หรือ ram มาก (เช่นโทรศัพท์มือถือ) โดยการควบคุมการออกแบบซอฟต์แวร์อย่างระมัดระวังและใช่ หรือถ้าไมโครคอนโทรลเลอร์ของคุณมี MMU ในตัวและ gobs of RAM (หรือสามารถรองรับสิ่งเหล่านี้จากภายนอก) คุณควรจะสามารถสร้างระบบที่คล้ายกับคอมพิวเตอร์ปัจจุบันมากกว่า


การพัฒนาคอมไพเลอร์แบบทันเวลาสำหรับสิ่งต่างๆเช่น Java ทำให้ MMU อาจจำเป็นน้อยกว่าที่เคยเป็นมา ในกรณีที่ไม่มีข้อบกพร่องที่เกี่ยวข้องกับ JIT เราสามารถมีการประมวลผลอิสระหลายตัวที่รันแพลตฟอร์มอิสระบน Java Virtual Machines โดยไม่มี MMU และแยกพวกมันออกจากกันเนื่องจาก JIT จะไม่สร้างคำแนะนำสำหรับโปรแกรมหนึ่งซึ่งจะเข้าถึงหน่วยความจำที่ไม่เหมาะสม ใช้โดยคนอื่น ๆ
supercat

16

แน่นอน! ดูเกือบทุกโทรศัพท์มือถือออกมี ยกตัวอย่างเช่น Motorola Droid ใช้ไมโครคอนโทรลเลอร์ TI OMAP ARM ที่รัน Android บน Linux โดยพื้นฐานแล้วระบบปฏิบัติการของคอมพิวเตอร์ที่ถูกเป่าเต็มแล้วนั้นอยู่ในนั้นและอุปกรณ์อื่น ๆ อีกมากมาย สำหรับผลิตภัณฑ์ที่ลูกค้าของฉันสร้างพวกเขาใช้ตัวประมวลผล / คอนโทรลเลอร์ FreeScale PowerQuicc I & II 32 บิตที่สามารถเรียกใช้ Linux กับพวกเขาได้ โดยทั่วไปแล้ว PowerQuicc มีแกน PowerPC พร้อมกับโปรเซสเซอร์ RISC แยกต่างหากสำหรับการจัดการอุปกรณ์ต่อพ่วงทั้งหมดในวิธีที่กำหนดค่าได้สูง มันเป็นไมโครคอนโทรลเลอร์ที่ได้รับเกียรติ

คุณต้องจำไว้ว่าเมื่อหลายปีก่อนคอมพิวเตอร์ไม่ได้ทำงานกับโปรเซสเซอร์ 32 บิต แต่ก็เหมือนกับโปรเซสเซอร์ 8 บิต (เช่น 4 บิตหลังจากนั้น) เช่น Commodore 64 จากนั้นพวกเขาย้ายไปที่ 16 บิต, 32 บิต เป็นต้นมีความแตกต่างไม่มากระหว่างไมโครคอนโทรลเลอร์กับไมโครโปรเซสเซอร์ของสถาปัตยกรรมบิตและความเร็วเทียบเท่า ไมโครคอนโทรลเลอร์มักจะไม่มีหน่วยจุดลอยตัว แต่สามารถใช้กับคณิตศาสตร์จุดคงที่ได้ ตัวอย่างเช่นตัวประมวลผลโมโตโรล่า 68000 ดั้งเดิม (16 บิต) ถูกใช้เพื่อให้พลังงานแก่คอมพิวเตอร์ Macintosh รุ่นเก่าและจากนั้นก็หมุนตัวเป็นไมโครคอนโทรลเลอร์สำหรับแอปพลิเคชันอิเล็กทรอนิกส์แบบฝังตัวหลายปี

คุณต้องดูที่บทบาทของไมโครคอนโทรลเลอร์เพื่อทำความเข้าใจวิธีการใช้งาน โดยปกติเมื่อคุณออกแบบด้วยไมโครคอนโทรลเลอร์คุณมีแอปพลิเคชั่นที่มีความเชี่ยวชาญเป็นพิเศษและคุณกำลังพยายามทำให้มันพอดีกับพื้นที่ขนาดเล็กกว่าพูดกับ PC Tower ในขณะที่คอมพิวเตอร์มีวัตถุประสงค์ทั่วไปมาก: ตัวเลขการกระทืบและอินพุตของผู้ใช้กระบวนการ เมื่อคุณมองหาไมโครคอนโทรลเลอร์คุณกำลังมองหาไมโครคอนโทรลเลอร์ที่รองรับอินเทอร์เฟซที่คุณกำลังสร้างแอปพลิเคชันของคุณ คุณต้องการพอร์ต USB 3 พอร์ต, 2 อีเธอร์เน็ต, 2 UARTs, พอร์ต SPI, ATM และอินเตอร์เฟสได้หรือไม่ อินเทอร์เฟซเหล่านี้บางส่วนไม่ได้มากับคอมพิวเตอร์ทั่วไปเช่น SPI, ATM และ CAN และไมโครคอนโทรลเลอร์ได้ติดตั้งเพื่อลดพื้นที่บอร์ด คุณสามารถดูไมโครคอนโทรลเลอร์เป็นโปรเซสเซอร์ที่ออกแบบมาสำหรับโซลูชันเฉพาะ


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

อาจจะไม่เชิงพาณิชย์ แต่แฮกเกอร์จำนวนมากรวมถึงปู่ของฉันด้วย เขามีคอมพิวเตอร์ 4 บิตทำงานในเวิร์กช็อปของเขาก่อน Commodore 64's และ TRS-80's เป็นที่นิยม มันมี RAM ด้วย (กองของกรมทรัพย์สินทางปัญญา)
Jay Atkinson

คุณมีเอกสารเกี่ยวกับเครื่อง Von-Neumann-architecture 4-bit ที่สร้างขึ้นจริงหรือไม่?
supercat

5

เราทำได้อย่างแน่นอน ยกตัวอย่างเช่น iPad ใช้โปรเซสเซอร์ ARM Cortex A8 สำหรับสมอง


2
นี่คือไมโครโปรเซสเซอร์ไม่ใช่ไมโครคอนโทรลเลอร์ตามที่ JPC จดไว้ด้านล่าง
Kortuk

3

เป็นที่น่าสังเกตว่า ARMs ที่กล่าวถึง (OMAP และ A8) เป็นไมโครโปรเซสเซอร์ที่ไม่มีหน่วยความจำแฟลชและ RAM (ไม่เป็นความจริงทั้งหมดสำหรับ A8) ไมโครคอนโทรลเลอร์ Cortex-M3 มีขนาดเล็กลงมีหน่วยความจำในตัวขนาดเล็กและเข้าถึงอุปกรณ์ต่อพ่วงได้ง่ายขึ้น

มีช่องว่างขนาดใหญ่ (ประสิทธิภาพ - และคุณลักษณะที่ชาญฉลาด) ระหว่างพวกเขา


+1 สำหรับการชี้ให้เห็นความแตกต่างระหว่าง Cortex-A และ Cortex-M ชุดที่ ...
โจฮาน

1
ไมโครคอนโทรลเลอร์มีแฟลชและ RAM ในตัว ไมโครโปรเซสเซอร์มีหน่วยความจำภายนอก
Kortuk


2

ไม่ได้พยายามที่จะคืนค่าเธรดเก่าอีกครั้ง แต่ Zaurus SL5500 ของฉันรัน linux แบบฝังในโปรเซสเซอร์ ARM ด้วย gobs of RAM และ gobs ของการจัดเก็บเพิ่มเติมผ่าน CF และช่องเสียบ SD เท่าที่ฉันรู้ MMU ถูกนำไปใช้เป็นส่วนใหญ่ในซอฟต์แวร์ (เหมาะสมสำหรับระบบ linux อยู่แล้ว) การคำนวณเพื่อวัตถุประสงค์ทั่วไปไม่เพียงเป็นไปได้ แต่ยังมีให้อย่างทั่วถึงผ่านซอฟต์แวร์บุคคลที่สามคอมไพเลอร์และเชลล์คำสั่งที่มีความยืดหยุ่นซึ่งให้ยูทิลิตี้และฟีเจอร์มาตรฐาน * nix ส่วนใหญ่

ไม่ใช่คอมพิวเตอร์ GP ที่เร็วที่สุดในโลก แต่แน่นอนว่าทำให้ ARM (และ / หรือเทียบเท่า Samsung - ฉันไม่แน่ใจ 100% ว่าบรรจุอยู่) ดูมีความสามารถอย่างมาก ฟีเจอร์และประสิทธิภาพนั้นเทียบได้กับ WinMobile Ipaq ของวินเทจรุ่นล่าสุด (ซัมซุง StrongArm ที่แน่นอน) เครื่องทั้งสองมี RAM จำนวนมากและที่เก็บข้อมูลมากมายดังนั้นจึงมีหน่วยความจำมากมายที่จัดการ - ฉันคิดว่าเราต้องเบลอเล็กน้อยระหว่างไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์เมื่อเราไปถึงระดับประสิทธิภาพนี้


2

คุณพูดถึง "microprocessors" และ "microcontrollers" แต่ยิ่งมีอุปกรณ์ประเภทที่สามที่เรียกว่า "SOCs" (ซึ่งหมายถึง "system-on-chip" คำที่ฉันพบค่อนข้างทำให้เข้าใจผิด)

ไมโครคอนโทรลเลอร์มี ram จำนวนน้อยมากและโดยทั่วไปไม่มีการแมปหน่วยความจำและการป้องกันหน่วยความจำที่ จำกัด มาก สิ่งนี้ทำให้พวกเขาไม่เหมาะสมที่จะใช้เป็นคอมพิวเตอร์เอนกประสงค์

SOCs สามารถมองเห็นได้ว่าเป็นจุดศูนย์กลางระหว่างไมโครคอนโทรลเลอร์ธรรมดาที่มีทุกอย่างรวมอยู่ในชิปตัวเดียวและไมโครโปรเซสเซอร์ทั่วไปซึ่งต้องการวงจรรองรับจำนวนมาก SOCs มีตัวประมวลผลหลักและ perhipherals ที่รวมเข้ากับชิปตัวเดียว แต่ต่างจากไมโครคอนโทรลเลอร์ที่ใช้หน่วยความจำภายนอก โดยทั่วไปแล้ว SOCs เหล่านี้มี MMU เต็มรูปแบบที่สามารถสร้างพื้นที่ที่อยู่เสมือนสำหรับแอปพลิเคชันต่างๆ SoCs จำนวนมากยังมีบล็อกฟังก์ชั่นพิเศษสำหรับกราฟิก 3D, DSP, การเข้ารหัสวิดีโอ / ถอดรหัส ฯลฯ

SOC นั้นไม่ได้ทรงพลังเท่ากับพีซีตั้งโต๊ะที่ทันสมัย ​​แต่เมื่อรวมเข้ากับสภาพแวดล้อมของซอฟต์แวร์ที่ไม่ได้เป็นสมาชิกพวกเขาจะมีประสิทธิภาพและใช้งานได้ดีพอที่จะนับว่าเป็น "คอมพิวเตอร์เอนกประสงค์"

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