dsPIC สามารถทำอะไรได้ซึ่งไมโครคอนโทรลเลอร์ PIC ที่ต่ำต้อยไม่สามารถทำได้?


10

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

ฉันเห็นได้ว่า Microchip มี dsPIC ซึ่งเป็นสายชิป DSP ของพวกเขา เราไม่สามารถใช้ PIC18 หรือ PIC32 ที่มีตัวคูณในตัวเพื่อทำ DSP ได้หรือไม่ dsPIC แตกต่างจาก PIC ปกติอย่างไร

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

นอกจากนี้ฉันจะรู้ได้อย่างไรว่าฉันต้องใช้ชิป DSP ในโครงการของฉันแทนที่จะเป็นไมโครคอนโทรลเลอร์ปกติ>


1
มีคำตอบที่ดีสำหรับคำถามที่คล้ายกันที่นี่: electronics.stackexchange.com/questions/3067/…
David

คำตอบ:


3

โดยทั่วไป "DSP ... " หมายถึง 'แรงม้าที่เกี่ยวข้องมากขึ้นและ / หรือฮาร์ดแวร์ที่เกี่ยวข้องเพิ่มเติมในเวลาที่มีการนำเสนอผลิตภัณฑ์ '
โปรเซสเซอร์ทั่วไปมีแนวโน้มที่จะติดต่อกับอุปกรณ์ผู้เชี่ยวชาญเก่า
DSPIC เป็น p [robably 10+ ปี - แลงจะรู้

[รายการในวงเล็บเกี่ยวข้องกับตัวอย่าง DSPIC - ไม่ครบถ้วนสมบูรณ์]

ในผลิตภัณฑ์ DSP คาดหวังการผสมผสานบางอย่าง:
คาดหวังสิ่งต่าง ๆ เช่นตัวเปลี่ยนลำกล้อง,
ท่อส่งความเร็วสูงและเวลาดำเนินการรอบเดียวอย่างรวดเร็ว,
คำแนะนำรอบเดียวที่กว้าง,
DMA [6 หรือ 8 ช่องสัญญาณ, บัฟเฟอร์พอร์ตคู่] หน่วยความจำเชิงเส้นขนาดใหญ่ ข้อมูล 64 kB] คุณสมบัติเชิงเลขคณิตของผู้เชี่ยวชาญ
อาจ:
อุปกรณ์ต่อพ่วงแบบผู้เชี่ยวชาญเช่นการควบคุมมอเตอร์
ฮาร์ดแวร์สำหรับมาตรฐาน coms ที่แตกต่างกันหลายตัว [CAN, IIC, UART, IIS, AC97, ... ] ให้ลึกกว่า coms บัฟเฟอร์ [4 ไบต์] เร็วขึ้นและ / หรือกว้างกว่า ADC ปกติ [2 Msps, 10 หรือ 12 บิต]

คุณจะพบสิ่งเหล่านี้ส่วนใหญ่ในตระกูล DSPIC - และเพิ่มมากขึ้นเรื่อย ๆ ในตระกูลโปรเซสเซอร์ gp
ในกรณีที่รุนแรงคุณจะได้รับไมโครโค้ดและอื่น ๆ


1
ถ้าฉันจำได้ถูกต้องฉันได้ยินครั้งแรกเกี่ยวกับความพยายามในการออกแบบ dsPIC ในปี 1999 ตัวอย่างแรกได้รับในช่วงต้นปี 2002 พร้อมชิ้นส่วนการผลิตปลายปี 2002 หรือต้นปี 2003 ฉันยังคงอยู่ที่ไหนสักแห่งมี 30F2010 ถูกติดป้ายโดยไม่ตั้งใจว่าเป็น 30F6010 มันวิ่งที่ความเร็ว 1/3 ในที่สุดเท่านั้นและถูกทำเครื่องหมายด้วยมือว่าเป็น # 55 หรืออะไรบางอย่าง
Olin Lathrop

1
นอกจากนี้ยังสามารถตอกบัตรได้สูงสุด 200 หรือ 260MHz ในขณะที่สาย PIC รองรับเฉพาะสูงสุด 4 ถึง 20MHz การที่เร็วกว่า 10 เท่าเป็นจุดที่ต้องพิจารณาอย่างแน่นอน
Havenard

1
@Havenard - การสังเกตว่านี่เป็นคำถามที่ถามบ่อย 2014: เขาพูดถึง PIC32 ว่าเป็นทางเลือกที่เป็นไปได้ของ DSPIC PIC32MX ปี 2007 มี Cmax (ความถี่สัญญาณนาฬิกาสูงสุด) ที่ 80 MHz PIC32MZ 2013 มี Cmax ที่ 252 MHz || มีประโยชน์แม้ว่าการเปรียบเทียบจะไม่สมบูรณ์ที่นี่ {Wikipedia}
Russell McMahon

11

ข้อได้เปรียบบางประการของ dsPIC สำหรับ PIC ที่เป็นสถาปัตยกรรมก่อนหน้านี้เช่นตระกูล PIC 16 และ 18:

  1. พา ธ ข้อมูลกว้าง 16 บิตและ ALU ตามที่กำหนดเป็น 8

  2. ความสามารถในการระบุที่อยู่โดยตรง (สถาปัตยกรรมทั้งสองรุ่นที่ใหม่กว่าขยายสิ่งนี้ในรูปแบบ kludgy) หน่วยความจำข้อมูลเพิ่มเติม PIC 16 พื้นฐานสามารถระบุ 128 ไบต์ได้โดยตรง 512 กับธนาคาร PIC 16F1xxx ที่ใหม่กว่าได้ขยายการธนาคารเพื่อให้สามารถจัดการกับหน่วยความจำข้อมูลได้มากขึ้น สถาปัตยกรรม PIC 18 ถูก จำกัด ไว้ที่ 4k ไบต์ สถาปัตยกรรม dsPIC สามารถระบุ 64k ไบต์หรือ 32k คำ 16- บิตโดยตรงแม้ว่าด้วยเหตุผลต่าง ๆ เพียงครึ่งเดียวของที่มีอยู่สำหรับ RAM ในสถาปัตยกรรมพื้นฐาน รูปแบบการธนาคารในบางรุ่นภายหลังได้ขยายออกไป

  3. ได้เร็วขึ้น 30F ดั้งเดิมสามารถทำงานที่ 30 MIPs โดย 40 MIPs เป็นส่วนหนึ่งของมาตรฐานตอนนี้ ซีรี่ส์ E ใหม่สามารถรันได้ถึง 70 MIP แม้ว่าจะมีเหตุผลมากกว่านั้นก็อาจจะรอไม่ทันกับรุ่นที่ช้ากว่ารุ่นก่อนหน้า พวกเขายังคงเร็วกว่าโดยเฉลี่ยอย่างมีนัยสำคัญ

  4. ความสามารถในการ DSP เอ็นจิ้น DSP มีตัวสะสม 40 บิตสองตัวและฮาร์ดแวร์ปกติเพื่อดำเนินการลำดับของการทำงานของ MAC ในอาร์เรย์หนึ่ง MAC ต่อวงจรการเรียนการสอน (ดูคำตอบของ Dave Tweed) MAC และคำแนะนำที่เกี่ยวข้องการทำดัชนีอาร์เรย์ที่ทับซ้อนกันและการยกเลิกลูปด้วยการคูณทวีคูณจริง

  5. 15 "การลงทะเบียนการทำงาน" ที่ใช้งานได้กับซอฟต์แวร์ 15 บิตแทนการลงทะเบียน W 8 บิตเดียวของสถาปัตยกรรม PIC 8 บิต

  6. ถังจำแลง

  7. Single-cycle 16x16 -> 32 บิตคูณ

  8. แบ่งฮาร์ดแวร์ การดำเนินการ 32 div 16 -> 16 bit ใช้เวลา 18 รอบ

  9. คำแนะนำ 3 ตัวถูกดำเนินการจำนวนมาก ตัวอย่างเช่นคุณสามารถเพิ่มเนื้อหาของการลงทะเบียนการทำงานสองรายการและใส่ผลลัพธ์ลงในหนึ่งในสามทั้งหมดในรอบเดียว สิ่งนี้ใช้กับการดำเนินการทางคณิตศาสตร์ตรรกะและกะส่วนใหญ่

  10. ชุดคำสั่งปกติและสมมาตรรวมมากขึ้น

  11. การขัดจังหวะแบบ Vectored PIC 16 มีเวกเตอร์อินเตอร์รัปต์เดี่ยวและ PIC 18 มีสองแบบ ในส่วน 16 บิต (PIC 24, dsPIC 30 และ 33) แต่ละแหล่งขัดจังหวะจะมีเวกเตอร์ของตัวเอง สิ่งนี้จะช่วยลดความหน่วงแฝงในรูทีนการขัดจังหวะเนื่องจากไม่จำเป็นต้องใช้รอบในการหาว่าอินเตอร์รัปต์ใดที่จะให้บริการ

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

  12. ข้อดีอื่น ๆ อีกมากมายที่หลุดออกมาจากสถาปัตยกรรมที่กว้างขึ้น


8

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

หนึ่งในการดำเนินการขั้นพื้นฐานที่สุดในอัลกอริทึม DSP ที่สำคัญหลายอย่างคือการดำเนินการ MAC (ทวีคูณ) ซึ่งเป็นขั้นตอนพื้นฐานที่ใช้ในเมทริกซ์ดอทและครอสโปรดักส์ตัวกรอง FIR และ IIR เช่นเดียวกับ FFT โดยทั่วไปแล้ว DSP จะมีองค์กรการลงทะเบียนและ / หรือหน่วยความจำและเส้นทางข้อมูลที่อนุญาตให้ทำอย่างน้อย 64 การดำเนินการ MAC ในคู่ข้อมูลที่ไม่ซ้ำกันในแถวโดยที่นาฬิกาไม่ต้องเสียเวลาในการวนรอบหรือการเคลื่อนไหวข้อมูล โดยทั่วไปแล้วซีพียูที่ใช้งานทั่วไปนั้นไม่มีรีจิสเตอร์เพียงพอที่จะทำสิ่งนี้ให้สำเร็จโดยไม่ต้องใช้คำสั่งเพิ่มเติมเพื่อย้ายข้อมูลระหว่างรีจิสเตอร์และหน่วยความจำ


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