ทำความรู้จักกับ RISC-V

หากพูดถึงสถาปัตยกรรมคอมพิวเตอร์ที่เป็นที่รู้จักในปัจจุบันหลายๆคนอาจจะนึกถึงสถาปัตยกรรม x86 จาก Intel และ AMD ในอุปกรณ์จำพวก Desktop PC/Server หรือสถาปัตยกรรม ARM ที่ให้ผู้ผลิตต่างๆซื้อ License เพื่อไปผลิตและปรับแต่งเองในอุปกรณ์จำพวก Smart phone หรือ Microcontroller แต่ในตอนนี้กำลังมีอีกสถาปัตยกรรมที่กำลังได้รับความสนใจเพิ่มขึ้นมานั่นก็คือสถาปัตยกรรมที่มีชื่อว่า RISC-V

RISC-V คืออะไร

RISC-V (ออกเสียงว่า risk five) เป็นสถาปัตยกรรมคอมพิวเตอร์แบบ RISC ที่ถูกวิจัยและพัฒนาขึ้นที่ University of California, Berkeley ในปี 2010 โดยชื่อ RISC-V สื่อมาจากว่าเป็นงานวิจัยที่เกี่ยวกับสถาปัตยกรรม RISC รุ่นที่ 5 ของศาสตราจารย์ David Patterson หนึ่งในผู้ร่วมออกแบบ RISC-V  และในปี 2015 ก็ได้จัดตั้ง RISC-V Foundation ขึ้นมาเพื่อดูแล และจัดการแนวทางเกี่ยวกับการพัฒนาตัว RISC-V ต่อไป โดยมีสมาชิคเป็นบริษัทชั้นนำต่าง ๆ มากมาย เช่น Google Alibaba Qualcomm หรือแม้แต่ Intel ที่เป็นเจ้าของสถาปัตยกรรม x86 ก็ยังสนใจมาเข้าร่วมด้วยเช่นกัน

หากถามว่า RISC-V มีเทคโนโลยีสุดล้ำสมัยอะไรหรือเปล่าที่ทำให้น่าสนใจกว่าสถาปัตยกรรมอื่นๆ คำตอบคือไม่มีอะไรล้ำสมัยเลย แต่จุดที่ทำให้ RISC-V แตกต่างและโดดเด่นจากสถาปัตยกรรมคอมพิวเตอร์อื่น ๆ นั่นก็คือ RISC-V เป็น Open source แบบ BSD licenses ที่เปิดให้ใครก็ได้นำไปผลิต แก้ไข และจัดจำหน่ายได้ฟรี โดยที่ไม่ต้องเปิดเผยข้อมูลส่วนที่แก้ไขไปอีกด้วย

อะไรทำให้ RISC-V เป็นที่สนใจ

Cost

จากการที่ RISC-V เปิดให้ใครๆก็สามารถนำตัว CPU core ที่ออกแบบไว้ไปแก้ไขและผลิตได้โดยไม่มีค่าใช้จ่ายใดๆทั้งสิ้น ทำให้สามารถประหยัดค่าใช้จ่ายไปได้หลายส่วน เช่น หากต้องการจะผลิต CPU ที่ใช้สถาปัตยกรรม ARM ทางผู้ผลิตจะต้องจ่ายเงินค่า Licence ของชนิด CPU core ที่ต้องการก่อนเพื่อที่จะนำตัว CPU core มาพัฒนาต่อได้ และหลังจากพัฒนาเสร็จก็จะยังต้องจ่าย Royalty fee ตามจำนวนที่จำหน่ายได้อีกด้วย ทำให้บริษัทเล็กๆไม่สามารถที่จะพัฒนา CPU/MCU ขึ้นมาขายได้ หรือแม้แต่บริษัทใหญ่ๆก็จะสามารถประหยัดค่าใช้จ่ายในส่วนของ Rotalty fee ลงไปได้เช่นกัน 

 

Open source

เนื่องจากเป็น Open source ทำให้ทุกคนสามารถเข้ามาตรวจสอบได้ว่าตัวสถาปัตยกรรมที่ออกแบบไว้มีจุดผิดพลาดอะไรหรือไม่ ช่องโหว่บน CPU สถาปัตยกรรมอื่นๆ เช่น Spectre/Meltdown นักวิจัยความปลอดภัยหลายคนก็ออกมาบอกว่าเกิดจากเป็นสถาปัตยกรรมแบบปิด ทำให้ไม่มีการตรวจสอบอีกชั้น

นอกจากนั้นด้วยความที่เป็น Open source และตัว RISC-V Foundation เองก็ตั้งอยู่ในประเทศสวิสเซอร์แลนด์ ทำให้การใช้งาน RISC-V ไม่สามารถโดนจำกัดโดยรัฐบาลสหรัฐอเมริกาได้ ทำให้ในช่วง Trade-war ที่มีการจำกัดการส่งออกด้านเทคโนโลยี ตัว RISC-V ได้รับความสนใจมากขึ้นจากหลายๆประเทศ เช่น จีน รัสเซีย และอินเดีย โดยหากดูรายชื่อสมาชิคของ RISC-V Foundation จะพบว่ามีบริษัทจีนเข้าร่วมเยอะมาก

ความยืดหยุ่นในการออกแบบ

การออกแบบของ RISC-V เลือกที่จะพัฒนาตัวสถาปัตยกรรมแบบแยกส่วน(Modular) แทนที่จะเป็นการเพิ่มความสามารถให้รุ่นที่สูงขึ้น ทำให้ทางนักพัฒนาหรือผู้ผลิตสามารถเลือกแค่ฟีเจอร์ที่ต้องงานใช้งานลงมาใน CPU ที่จะออกแบบได้ โดยการตัดฟีเจอร์ที่ไม่จำเป็นออกไปทำให้สามารถช่วยลดทั้งขนาดและการใช้พลังงานลงได้

โดย RISC-V จะแยกฟีเจอร์ออกเป็น 2 ส่วนคือส่วนแกนหลัก(Base) และส่วนฟีเจอร์เสริม (Extension) โดยนักพัฒนาสามารถเลือก Base และ Extension ที่ต้องการมารวมเป็น CPU ที่ต้องการได้

หากนักพัฒนาต้องการสร้าง CPU 32bit สำหรับใช้กับงาน MCU ทั่วไป ก็สามารถเลือก Base เป็น RV32I หรือ RV32E จากนั้นเลือก Extension ตามที่ต้องการ เช่น ให้รองรับการคูณและหาร(M) รองรับ Atomic instruction(A) และ Compressed instruction(C) จะได้เป็น Core RV32IMAC  โดยหากต้องการให้รองรับ Floating point ก็สามารถเพิ่ม Extension FD เข้ามาได้เช่นกัน สำหรับ Core ที่ต้องการนำไปใช้กับระบบปฎิบัติการต่างๆ สามารถใช้ Extension G ที่เป็นการรวม Extension ต่างๆที่จำเป็นสำหรับงานที่ต้องใช้ระบบปฎิบัติการไว้แล้วได้เลย

Ecosystem

เครื่องมือในการพัฒนา Software สำหรับ RISC-V ในปัจจุบันมีหลายตัวเช่น GCC และ LLVM ที่เป็น C Compiler, Platform.io ที่เป็น SDK ช่วยในการพัฒนางาน Microcontroller, QEMU ที่เป็นโปรแกรม Emulator สำหรับ CPU ต่างๆก็รองรับแล้ว, ภาษาโปรแกรมมิ่งอื่นๆนอกจาก C เช่น ภาษา Rust และ Java ก็มี Compiler/Runtime รองรับ RISC-V แล้วเช่นกัน

ในปัจจุบัน RISC-V ได้ถูกบรรจุเข้าไปยัง Linux kernel แล้ว และระบบปฎิบัติการตระกูล BSD ก็รองรับสถาปัตยกรรม RISC-V โดย Alibaba ได้ใช้ CPU RISC-V กับ Server ของตัวเองแล้วบางส่วน ในส่วนของงาน Microcontroller ตอนนี้ RTOS OS หลายตัวเช่น freeRTOS หรือZephyr ก็รองรับ RISC-V CPU แล้ว ทำให้ในตอนนี้เรียกได้ว่า RISC-V มี Ecosystem พร้อมที่จะทำงานได้ทุกประเภทตั้งแต่ Microcontroller ไปจนถึงระดับ Server ได้เลย