Tag Archives: cortex

ARM เปิดตัวหน่วยประมวลผล Cortex-M7 ในยุคของ Wearable และ Internet of Things

ARM เปิดตัวหน่วยประมวลผล ARM Cortex-M7 ตัวใหม่ในตระกูล M หรือไมโครคอนโทรลเลอร์ 32-bit ของ ARM มาแบบจัดเต็ม ความถี่สัญญาณนาฬิกาสูงถึง 400MHz (เริ่มใกล้เคียงกับพวกหน่วยประมวลผลที่ใช้ใน router ซะแล้ว) ค่า DMIPS/MHz ต่ำสุดอยู่ที่ 2.14 มี pipeline จำนวน 6 ขั้น (อย่าง Cortex-M0+ รุ่นประหยัดไฟ มี DMIPS/MHz  ที่ 0.94 และ pipeline จำนวน 2 ขั้น โดย pipeline) มี FPU ใช้ช่วยประมวลตัวเลขทศนิยม ซึ่งก้ต้องมีชุดคำสั่งใหม่ๆ เพื่อใช้งานมันได้ และมี DSP ที่รองรับชุดคำสั่ง SIMD ซึ่งใช้คำนวณค่าใน register หลายๆ ตัวในคราวเดียว (ชิปบน Raspberry Pi ยังไม่มีชุดคำสั่งแบบ SIMD เลยครับ)

ไมโครคอนโทรลเลอร์ ต่างจากไมโครโปรเซสเซอร์อยู่หลายส่วน ตัวอย่างเช่นมักจะไม่มีส่วนที่ควบคุมหน่วยความจำ (MMU) จึงต้องใช้ระบบปฏิบัติงาน (OS) ที่ใช้งานกับหน่วยประมวลที่ไม่มี MMU ซึ่งส่วนใหญ่มักเป็นแบบ RTOS ที่มักถูกเขียนขึ้นมาให้ใช้กับไมโครคอนโทรลเลอร์อยู่แล้ว หรือไม่ก็ bare-metal ไปเลย อีกจุดหนึ่งคือประหยัดพลังงานไฟฟ้ามากกว่า ขอเดาว่าที่ ARM ออกหน่วยประมวลผลตัวนี้ออกมาเพื่อต้องการหน่วยประมวลผลที่ประหยัดไฟเพื่อใช้กับ wearable หรือ Internet of Things แต่ต้องการพลังการประมวลผลเพิ่มขึ้นกว่าไมโครคอนโทรลเลอร์ เช่น การวิเคราะห์รูปแบบของคลื่น เช่นใช้ FFT กับชีพจร หรือ OpenMV ที่เอาชิป STM32F4xx ARM Cortex-M4 มาวิเคราะห์ใบหน้า งานนี้น่าจะมามองๆ Cortex-M7 บ้างนะครับ

และแน่นอนว่าเมื่อมีชุดคำสั่งใหม่ๆ ก็ต้องปรับปรุง compiler ด้วย ก็มีความเคลื่อนไหวแล้วบ้างครับ ตอนนี้ก็คงรอดูต่อไปว่าจะมีผู้ผลิตชิปรายไหนบ้าง ซื้อทรัพย์สินทางปัญญาตัวนี้จาก ARM ไปผลิตชิป (ARM ขายทรัพย์สินทางปัญญาในการสร้างชิป แต่ไม่ได้ผลิตชิปออกมาขายเอง) และมีบอร์ดทดลองอะไรบ้างที่ใช้ชิปตัวนี้ออกมาอีก ที่มา http://arm.com/products/processors/cortex-m/cortex-m7-processor.php | http://www.anandtech.com/show/8542/cortexm7-launches-embedded-iot-and-wearables updated: ล่าสุด STMicroelectronics รับไปเลี้ยงแล้วครับ โดยจะผลิตออกมาเป็น STM32 F7

Advertisements

ความแตกต่างระหว่าง ARM Cortex A5 A7 A8 A9 A12 A15

เกือบทุกๆ วันศุกร์ ทาง Olimex จะมีคำถามชิงรางวัลทาง Twitter ก็มีคำถามเกี่ยวกับชิปของ ARM แบบที่เป็น Cortex-A7 ที่มีสองคอร์มาเทียบความเร็วกับ Cortex-A8 ที่มีคอร์เดียว สำหรับคำตอบคือ 1.9 เท่า และที่เว็บ SpecPhone.com มีการเขียนถึงเรื่องการอ่านสเปคในห้านาที หนึ่งในเนื้อหานั้นคือการดูสถาปัตยกรรม เรียงจากจำนวนตัวเลข เลยขอหยิบยกกันหน่อย

เท่าที่รวบรวมมา ก็ประมาณนี้ครับ ตกหล่นอย่างไรทวงกันได้นะครับ

เรื่องเกี่ยวกับ A5 A7 A8 A9 A12 A15
หลายคอร์ ได้ ได้ ไม่ได้ ได้ ได้ ได้
pipeline stages 8 8-10 13 8-11 10-12 15-24
DMIPS/MHz 1.5 และ 1.6 1.9 2.0 2.5 รอประกาศ 3.5
VFP vfpv4 vfpv4 vfpv3 vfpv3 ? vfpv4
issue rate (จำนวนชุดคำสั่งที่อาจดึงมาได้สูงสุดในหนึ่ง clock cycle) 2 2 2 2 2 3

สำหรับค่าความถี่สัญญาณนาฬิกา ถ้าข้ามรุ่นแล้วจะเอามาเทียบความเร็วกันตรงๆ ก็คงจะไม่ยุติธรรม คงต้องเอาตัวคูณมาเทียบ เช่นอุปกรณ์ที่ใช้ชิป Cortex-A9 แบบ 2 คอร์ ตัวคูณของรุ่นนี้คือคือ 2.5 DMIPS/MHz ทำงานที่ 1700 MHz จะได้ = 2.5 x 1700 x 2 = 8500 DMIPS แต่สมมติอีกตัวใช้ 4 คอร์ Cortex-A5 ตัวคูณของรุ่นนี้คือคือ 1.6 DMIPS/MHz ทำงานที่ 1200 MHz จะได้ = 1.6 x 1200 x 4 = 7680 DMIPS

เดี๋ยวถ้ามีรายละเอียดอื่นๆ จะมาเขียนเพิ่มที่หลังนะครับ

ที่มา AnanTech (1, 2, 3) ; ARM (PDF) ; Android Authority ; ExtremeTech

Freescale เปิดตัวชิป Kinetis KL02 เป็น ARM Cortex-M0+ ที่ขนาดเล็กที่สุดในโลกเพียง 1.9×2.0 ตารางมิลลิเมตร

เคยเอ่ยถึงไมโครคอนโทรลเลอร์ที่ใช้ชิป LPC800 ของ NXP ซึ่งเป็น Cortex-M0+ มาครั้งหนึ่ง คราวนี้ของอีกผู้ผลิตครับคือ Kinetis จาก Freescale ซึ่งมีหลาย series ผลงานนี้คือ Kinetis KL02 อยู่ในตระกูล Kinetis L Series อันเป็นชิปสถาปัตยกรรม Cortex-M0+ รุ่น 32-bit ถูกออกแบบมาเพื่อเป็นไมโครคอนโทรลเลอร์แบบประหยัดไฟสุดๆ โดย ARM ซึ่งเป็นผู้ออกแบบชิปโดยไม่ได้ผลิตขายเอง แต่จะมีบริษัทอื่นๆ มาซื้อแบบซื้อสิทธิบัตรนั้นไปผลิตจำหน่ายหรือใช้งานชิปนั้น ก็เลยมักพบว่าชิปที่เป็น ARM อาจมีสถาปัตยกรรมเดียวกันแต่มาจากคนละผู้ผลิต

Kinetis KL02 ตามแหล่งข่าวอ้างว่าเป็นชิปไมโครคอนโทรลเลอร์แบบ ARM ที่มีขนาดเล็กที่สุดในโลกด้วยขนาด 1.9×2 ตารางมิลลิเมตร มันมี 20 ขา (จริงๆ น่าจะเรียกว่า ball มากกว่าเพราะขามันกลมๆ) ทำงานที่ความถี่สัญญาณนาฬิกาได้สูงสุด 48MHz หน่วยความจำแรม 4kB และหน่วยความจำ flash 32 kB มี UART (serial port) แบบพลังงานต่ำ พอร์ต SPI พอร์ต I2C สองพอร์ต มีตัวแปลง ADC (ตัวแปลงสัญญาณอนาล็อก เช่นระดับสัญญาณเสียง ให้ไปเป็นดิจิทัล) ขนาด 12-bit ตัว PWM ไว้ควบคุมความเร็วมอเตอร์ไฟฟ้า ใช้งานได้ตั้งแต่อุณหภูมิ -40 ถึง 85 องศาเซลเซียส สำหรับไมโครคอนโทรลเลอร์แล้ว มักไม่มีหน่วยควบคุมหน่วยความจำ (memory management unit: MMU) ทำให้ไม่สามารถใช้หน่วยความจำที่เป็น DRAM (dynamic RAM ซึ่งอาจแยกย่อยได้หลายแบบ เช่น double data rate synchronous dynamic RAM: DDRRAM) ซึ่งกินพื้นที่น้อยและราคาต่อหน่วยความจำถูกกว่า SRAM (static RAM) เพราะการใช้งาน DRAM ต้องการชิป MMU มาช่วยควบคุม ไม่ว่าจะเป็นการเข้าถึงหน่วยความจำแบบ paging จากหน่วยประมวลผล หรือการ refresh หน่วยความจำ DRAM ซึ่งเก็บข้อมูลด้วยตัวเก็บประจุซึ่งประจุไฟฟ้าของมันอาจรั่วได้ถ้าปล่อยทิ้งไว้เฉยๆ โดยไม่ไป “ย้ำเตือน” ความจำมันก็จะ “ลืม” ทำให้ไมโครคอนโทรลเลอร์ใช้ได้แค่ SRAM ซึ่งมักใช้ทำหน้าที่เป็น cache ให้กับ DRAM การใช้งานไมโครคอนโทรลเลอร์กับงานที่ต้องประมวลผลข้อมูลเยอะๆ เช่น image processing คงเป็นไปได้ยากแต่ถ้างานควบคุมซึ่งใช้หน่วยความจำไม่มากก็มักไม่มีปัญหา สำหรับขนาดที่เล็กของ Kinetis KL02 อาจใช้ในงานที่เดิมทีมีข้อจำกัดว่าชิ้นงานมีขนาดเล็กมากจนใส่ไมโครคอนโทรลเลอร์เข้าไปไม่ได้ เช่น อุปกรณ์ทางการแพทย์ที่คนไข้ต้องกลืนลงไป หรือการที่มันประหยัดไฟมากๆ ก็น่าจะเหมาะสำหรับงาน Internet of Things (IoT) อันที่จริงชิปไมโครคอนโทรลเลอร์ตัวอื่นๆ ถ้าวัดขนาดเฉพาะที่ตัว die ของชิปโดยไม่ไปวัดขนาดทั้งตัวถังไอซีแล้วขนาดมันก็เล็กมากอยู่แล้วนะครับ เช่น ATtiny13A มีขนาด 1.620×1.640 ตารางมิลลิเมตร ผลิตด้วยเทคโนโลยี 500 นาโนเมตร แต่มันเป็นชิปแบบ AVR รุ่น 8-bit ไม่ใช่ ARM ครับ หน่วยความจำแรมมีแค่ 32 ไบต์ และ flash ก็ขนาดแค่ 1kB เริ่มจำหน่ายให้ลูกค้ารายใหญ่ในเดือนมีนาคมนี้ครับ สำหรับการวางขายในตลาดทั่วไปจะเริ่มในเดือนกรกฎาคม 2013 ถ้าอยากลองตอนนี้ก็มีบอร์ด FRDM-KL05Z จาก Freescale ที่ใช้ชิปแบบ Kinetis KL05 ซึ่งเป็นรุ่นใหญ่กว่าแต่ก็เป็น Cortex-M0+ เหมือนกัน มี 32 ขา ความถี่สัญญาณนาฬิกาใช้ไม่เต็มที่แค่ 32.768MHz เดาว่าเพื่อเอาความถี่นี้ไปหารด้วย 32,768 (2 ยกกำลัง 15) เพื่อเป็นสัญญาณนาฬิกาของงานอื่นๆ เช่น RTC ตัวบอร์ดยังมีเซนเซอร์วัดความเร่งแบบสามแกน และ LED สามสี และยังมีวงจรที่ใช้กับ OpenSDA เพื่อที่จะเขียนโปรแกรมลงชิปผ่านทาง USB ได้โดยง่าย สะดวกแก่การพัฒนา นอกจากนี้ยังมีข่าวว่า ARM ได้ออก SDK ของชิป Cortex-M แบบ open source ด้วยครับ

ก่อนหน้านี้ก็เคยมีการแนะนำตัว Kinetis L Series มาตั้งแต่ปีที่แล้วแล้วครับ ประหยัดไฟถึงขนาดที่ว่ามีการสาธิตโดยการใช้ที่ปั่นไฟแบบมือหมุนแล้วเก็บพลังงานไฟฟ้านั้นโดยใช้แค่เก็บประจุเท่านั้นก็ยังทำงานต่อได้

Broadcom ได้สิทธิ์ผลิตชิปสถาปัตยกรรม ARMv7 และ ARMv8

Broadcom ผู้ผลิตชิปที่เน้นทางด้านการสื่อสารไร้สาย เจ้าเดียวกับที่ผลิตชิป BCM2835 ที่ใช้ในเครื่องเล่นสื่อบันเทิง Roku และคอมพิวเตอร์จิ๋ว Raspberry Pi ได้รับสิทธิจาก ARM ในการผลิตหน่วยประมวลผลที่เป็นสถาปัตยกรรม ARMv7 และ ARMv8 (ชิป BCM2835 เป็น ARMv6)

สำหรับ ARM เป็นบริษัทออกแบบหน่วยประมวลผลแต่ไม่ได้ผลิต (fabrication) ขึ้นมาเองแต่ให้สิทธิบัตรบริษัทอื่นๆ ไปผลิต สำหรับ ARMv7 เป็นหน่วยประมวลผลแบบ 32-bit เช่นในรุ่น Cortex-A15 (และคู่ของมัน Cortex-A7), Cortext-A8 และ Cortext-A9 ในส่วนของ ARMv8 เป็นหน่วยประมวลผลแบบ 64-bit

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

ที่มาเรื่องราว ARM ผ่านทางทวิตเตอร์

Allwinner A31 มันคือ Cortex-A7 Quad-Core จะมาจริง

เคยแนะนำเกี่ยวกับ A4X Cortex-A7 ที่กำลังจะมาแบบ 4 คอร์ (quad-core) ตอนนี้ link นั้น http://linux-sunxi.org/Sun6i ได้ redirect ไปยัง http://linux-sunxi.org/A31 (หน้าเก่าอยู่นี้ครับ) แล้วครับและมีรายละเอียดจาก Allwinner ด้วยแบบนี้คงไม่ใช่ข่าวลือแล้ว โดยได้ชื่อเป็น Allwinner A31 ไม่ใช่ A40 หรือ A4x ตามที่ลือกัน ข้างในเป็น Cortex-A7 จำนวน 4 คอร์ ซึ่ง Cortex-A7 ก็คือคู่แฝดของ Cortex-A15 ต่างกันที่ความเร็วและการใช้พลังงาน เพื่อผลัดกันทำงานกันในรูปแบบ big.LITTLE (ในชิปตัวอื่นนะครับ) โดยที่ช่วงเวลาที่ไม่ต้องการการประมวลผลงานจำนวนมากก็ใช้ Cortex-A7 แต่ถ้าต้องทำงานหนักขึ้นก็ใช้ Cortex-A15

รองรับจอละเอียดสูงมากๆ UHD 4K (3840 x 2160) แบบนี้เอาไปใช้เป็นหน่วยประมวลผลของ Smart TV ได้ด้วยนะครับ แล้วในเรื่องของเสียงยังมี HI-FI 100dB audio codec ของเสียงมาให้ด้วย (A10 ไม่มี sound codec) จะต่อ LCD ผ่านทาง LVDS ก็ได้ละเอียดถึง 1920 x 1080 หรือต่อกล้องก็ได้ถึง CMOS Sensor 12M แน่นอนว่าภาพใหญ่ๆ ก็ต้องการหน่วยความจำเยอะๆ แต่ดูเหมือนรายละเอียดไม่มีบอกไว้บอกไว้ว่า Dual-Channel LPDDR2/DDR3/DDR3L Controller

แต่คู่แข่งก็จัดหนักเอาเรื่องอยู่เหมือนกัน (แต่ก็ชิป ARM เหมือนกัน) เช่น Mediatek มีชิป MT6599 เป็น Cortex-A7 ขนาด 8 คอร์ ใช้ในมือถือ

และยังเห็นลางๆ อีกชิปคือ Allwinner A20 เป็น Cortex-A7 แบบ 2 คอร์ รายละเอียดจากเว็บของ Allwinner เองยังไม่เห็นนะครับ แต่มีปรากฏในตารางเปรียบเทียบชิปในรุ่น A

Boston ออก Viridis server ใช้ ARM Cortex-A9 จาก Calxeda

บริษัท Boston ได้ออก Viridis ซึ่งเป็น server ที่ใช้ CPU จาก Calxeda ซึ่งเป็นชิปแบบ System-on-Chips (SoC) หนึ่งชิปมี ARM Cortex-A9 มี 4 คอร์ ถูกใช้ในบอร์ดที่เรียกว่า POCket board

โดยหนึ่ง POCket board ประกอบด้วย SoC 4 ตัว และ miniDIMM จำนวน 4 ช่อง ใส่ DDR3 ได้สุงสุด 4 GiB ต่อ SoC (ตามข้อจำกัดของ 32-bit) และ SATA port 4 ช่อง (1 ช่อง ต่อ 1 SoC) และ 10 Gbps Ethernet
โดย server ขนาด 2U นี้ ใส่ POCket board ได้สูงสุด 12 แผ่น ถ้าใส่เต็ม rack ขนาด 42U ก็จะมีคอร์มากถึง 4,032 คอร์เลยที่เดียว

RAM ที่จำกัดที่ 4 GiB ไม่รู้จะมีพวก NUMA มาช่วยได้หรือเปล่า

ที่มา CNXSoftAnandTech