จะทราบได้อย่างไรว่าไมโครโปรเซสเซอร์มีพลังเพียงพอหรือไม่


9

ทุกคนรู้ว่ามันง่ายในการพัฒนาหลักฐานของแนวคิดสำหรับอุปกรณ์ฝังตัวบน rasbperry pi หรือแม้กระทั่งพีซีแม้ว่ามันจะลงเอยด้วยการเลือกไมโครโพรเซสเซอร์สำหรับผลิตภัณฑ์ของคุณมันยากที่จะแน่ใจว่าทางเลือกของคุณจะช่วยให้แนวคิดของคุณทำงานได้ ได้อย่างดีที่สุด

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

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

โดยทั่วไปความต้องการของฉันคือ:

  • โฮสต์ USB หรือสแต็ก TCP / IP ในตัวสำหรับการทำงาน WiFi
  • โปรโตคอลสื่อ I2S / PCM
  • I2C สำหรับการกำหนดค่าอุปกรณ์ต่อพ่วง

การค้นหาชิปด้วยคุณสมบัติเหล่านั้นเป็นเรื่องง่ายมาก มันไม่ง่ายเลยจริงๆ ปัญหาสามารถบอกได้ว่าชิปนั้นเร็วพอประมวลผลและใช้งานได้ดีหรือไม่

ฉันดู LPC4337 สักหน่อยและฉันรู้สึกว่ามันจะเหมาะสมแม้ว่าสภาพแวดล้อมการพัฒนาจะทำให้ฉันมีปัญหานิดหน่อยด้วยเหตุนี้ฉันยังคงมองไปรอบ ๆ ซึ่งทำให้ฉันไป CC3200 จาก Texas Instruments แม้ว่าคอนโทรลเลอร์นั้นจะทำงานที่ 80 MHz เท่านั้นและฉันไม่แน่ใจว่ามันจะแข็งแกร่งพอสำหรับการสตรีมสื่อแบบเรียลไทม์

มีขั้นตอนอะไรบ้างที่จะทำให้แน่ใจว่าโปรเซสเซอร์เร็วพอสำหรับแอปพลิเคชันของฉัน เช่นฉันจะรู้ได้อย่างไรว่าโปรเซสเซอร์ 80 MHz จะดีพอหรือฉันต้องการบางสิ่งบางอย่างตามลำดับ 204 MHz หรือสูงกว่า?


1
ฉันคิดว่าคุณจะต้องให้ความต้องการพลังงานเช่นกัน
kolosy

สิ่งนี้ไม่ได้ตอบคำถามของคุณ แต่คุณอาจลองดูไมโครคอนโทรลเลอร์ตระกูล PIC32MZใหม่ซึ่งมี Flash เป็นสองเท่า (2MB) และ RAM มากเป็นสามเท่า (512K) สามเท่าพร้อมกับโฮสต์ USB 2.0, I²Sและห้าI²C โมดูลสำหรับราคาเดียวกันกับ LPC4337 IDE (MPLAB X) และคอมไพเลอร์มีอิสระในการทดลองใช้ แต่หลังจากช่วงเวลาทดลองใช้คุณต้องจ่ายค่าคอมไพเลอร์ที่ได้รับการปรับปรุงหากคุณต้องการหนึ่ง (คอมไพเลอร์ GCC ที่ไม่ได้เพิ่มประสิทธิภาพ) Microchip มีไลบรารี่ที่ปลอดค่าลิขสิทธิ์สำหรับสแต็ค USB และ TCP / IP
tcrosley

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

หากคุณไม่สามารถบอกได้ว่าคุณต้องการอะไรจากสเป็คคุณสามารถสั่งตัวอย่างและต้นแบบได้หรือไม่?
Roger Rowland

@RogerRowland ฉันทำได้แม้ว่าจะเป็นกระบวนการที่ยาวมาก แน่นอนมีวิธีที่จะหารายละเอียดขั้นต่ำสำหรับโปรแกรม
Funkyguy

คำตอบ:


5

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

  • ROM ค่อนข้างง่าย คุณรู้ว่าสแต็ค / ไลบรารี่ / ไดร์เวอร์ใช้เวลาเท่าไรในหน่วยความจำ ROM: โดยผู้แต่งหรือคุณสามารถคอมไพล์ได้โดยไม่ต้องอัปโหลด ตัวเลขนั้นสามารถเปลี่ยนแปลงได้มากทุกครั้งที่คุณเปลี่ยนรหัสของคุณแม้ว่าจะเป็นเพราะการเพิ่มประสิทธิภาพของคอมไพเลอร์
  • แรมค่อนข้างเล่ห์เหลี่ยมมาก เครื่องมือบางอย่างในสภาพแวดล้อมการพัฒนาแบบบูรณาการโดยเฉพาะนั้นให้การประมาณรันไทม์แก่คุณและฉันสามารถดูวิธีการนี้สามารถทำได้ แต่ฉันไม่ทราบว่าเครื่องมือทั่วไปใด ๆ - พูดโดย GCC น่าเศร้าที่ฟังดูเหมือนว่าจะนับองค์ประกอบที่ใหญ่ที่สุดหรือมากที่สุดที่จัดสรรไว้ในโค้ดของคุณ (การบัญชีสำหรับอายุการใช้งานตัวแปร)
  • CPU มีความซับซ้อนมากกว่านั้นขึ้นอยู่กับสถาปัตยกรรม (CISC หรือ RISC) MIPS (คำสั่งหลายล้านต่อวินาทีตามสัดส่วนของความถี่สัญญาณนาฬิกาของ CPU) อาจหรือไม่สามารถเป็นตัวแทนได้ เพราะถ้าคุณมีรหัสอยู่ในมือคุณสามารถแบ่งส่วนที่สำคัญที่สุดออกเป็นคำแนะนำและคำนวณ MIPS ที่ต้องการจากเวลาที่กำหนด การขัดจังหวะที่ไม่ได้ปิดการใช้งานใด ๆ ควรได้รับการพิจารณาเพื่อให้เกิดขึ้น ณ จุดนั้น - กฎหมายของเมอร์ฟีและทุกสิ่ง

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

นี่เป็นเพียงการมีส่วนร่วมของฉัน: แม้ว่าฉันจะออกแบบระบบรวมฉันไม่ได้รับผิดชอบงบประมาณเฉพาะเหล่านั้น (ซึ่งเป็นข้อมูลสำหรับฉัน) และจริง ๆ แล้วฉันสนใจอยากรู้เรื่องราวของผู้เชี่ยวชาญในเรื่องนั้นมาก

ภาคผนวก: ด้วยระบบเรียลไทม์การประเมินความเพียงพอของระบบกับงานผ่านทางเวลาการสุ่มตัวอย่างสูงสุดซึ่งขึ้นอยู่กับเวลาแฝง / ความล่าช้าในการส่งข้อมูลทั่วเวิร์กโฟลว์และเวลาสูงสุดที่แต่ละคนใช้ ตัวอย่างงาน


avrdudeสามารถให้การประมาณจำนวน RAM ที่ใช้โดยตัวแปรทั่วโลก แต่คุณต้องรันด้วยตัวเลือกการรันแบบแห้งเนื่องจากเป็นเครื่องมืออัปโหลดพื้นฐาน
felixphew

1
ส่วนที่ยากที่สุดในการประเมิน IMO คือการใช้สแต็คและฮีป ระบบฝังตัวในปัจจุบันของเรา (ระบบปฏิบัติการที่เป็นกรรมสิทธิ์) ซึ่งทำงานบน PIC32 โดยทั่วไปมีงานมากกว่า 25 งานที่ทำงานส่วนใหญ่ต้องการฮีป K สองตัวหรือมากกว่าเมื่อทำงาน คุณจะได้รับหลายอย่างพร้อมกับการใช้งานสแต็กจำนวนมากและคุณจะใกล้เคียงกับ RAM หมด ฉันเพียงแค่เขียนประจำ recursive สัปดาห์หรือดังนั้นที่ผ่านมาและมีการระมัดระวังเป็นอย่างมากของการใช้งานตัวแปรสแต็คในท้องถิ่น (ไม่อาร์เรย์ ฯลฯ )
tcrosley

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

2

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


0

หากคุณกำลังมองหาการลดค่า BOM บางครั้งผู้ผลิตเซินเจิ้นจะมีข้อเสนอที่น่าแปลกใจ ตัวอย่างหนึ่ง: Allwinner A10 มีพลังในการคำนวณและตัวเลือกการเชื่อมต่อมากกว่า Raspberry Pi แต่อาจจะถูกกว่าหากใช้ในการออกแบบของคุณ หากคุณกำลังมองหาราคาเดียวกันกับ Pi the Allwinner A31s จะมีประสิทธิภาพมากกว่า 6-8 เท่า

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