Search this site

Wednesday, 13 June 2018

รู้จักหรือยัง? Windows 10 on ARM

สวัสดีครับ บทความนี้ผมเขียนขึ้นเพื่อแนะนำเพื่อนๆ ให้รู้จักกับ Windows เวอร์ชั่นใหม่ ที่ Microsoft ได้เข็นออกมา และมี 2-in-1 products ออกมาขายแล้วในต่างประเทศ (ณ วันที่เขียนบทความผมยังไม่เห็นในไทยนะครับ ถ้ามีขออภัยด้วย) ที่ชื่อว่า Windows 10 on ARM นั่นเอง ตอนเริ่มเขียนนี่ก็ไม่รู้ว่าจะเขียนยาวแค่ไหนเหมือนกันนะครับ แต่จะพยายามคง concept เดิมๆ ไว้ คือ เขียนให้เข้าใจง่าย และไม่ลงลึกมาก สำหรับเพื่อนๆ ที่ไม่ได้อยู่ในแวดวงคอมพิวเตอร์ เพราะเพื่อนๆ ที่ต้องการข้อมูลเชิงลึก มักจะรู้จัก Windows 10 on ARM อยู่ก่อนแล้ว หรือไม่ก็มีความสามารถในการหาข้อมูลเพิ่มเติมได้แน่นอน (หรือ comment ไว้ได้ครับ ถ้าตอบได้ผมจะตอบให้)

หมายเหตุ บทความนี้ไม่ได้เขียนถึง Pro/ Home, OEM/ FPP นะครับ หากต้องการอ่านเรื่องความแตกต่างของ Windows Pro/ Home, OEM/ FPP สามารถอ่านที่ผมเคยเขียนไว้ได้ที่นี่นะครับ

Windows 10 on ARM คืออะไร และทำไมมันถึงสำคัญ
ขึ้นชื่อว่า Windows นั้น จะรันอยู่บน PC ที่มี processor ที่ใช้สถาปัตยกรรม x86 หรือ x64 (นึกถึงพวก Intel, AMD เอาไว้ครับ) (เป็นหลัก เว้นแต่เวอร์ชั่นที่ทำออกมาเฉพาะ เช่น Mobile, IOT, Hololens เป็นต้น) ซึ่งสาเหตุหนึ่งที่ทำให้มันมีแค่ Intel และ AMD ก็เพราะว่า Intel เองเป็นเจ้าของลิขสิทธิ์ชุดคำสั่ง x86 นั่นเอง ไม่มีใครสามารถเอาไปใช้โดยไม่ได้รับอนุญาตจาก Intel ได้ - ผมเข้าใจว่า Intel อนุญาตให้ AMD ใช้ (แบบจ่ายค่าลิขสิทธิ์) เพื่อป้องกันการโดนกล่าวหาเรื่องการครองตลาดอย่างไม่เป็นธรรม

แต่ในปัจจุบัน มี processor อีกสถาปัตยกรรมหนึ่ง ที่มาแรง นั่นคือ processor ที่ใช้สถาปัตยกรรมแบบ ARM64 หรืออธิบายให้ชัดอีกหน่อยก็คือ พวก processor ใช้กับ smartphone ของพวกเรานั่นเอง

สำหรับ Microsoft นั้น แม้ว่าจะทำ Windows Phone, Moible, RT ออกมาหลายรุ่น หลายชื่อ เพื่อใช้ใน ARM64 แต่ก็ไม่ประสบความสำเร็จนัก โดยเหตุผลหนึ่งที่ทุกคนมองว่าทำให้ไม่ประสบความสำเร็จก็คือ การที่มันเป็น Windows แต่ดันไม่สามารถทำงานได้แบบที่ผู้ใช้งาน Windows ต้องการ นั่นคือการที่เป็น Open system ที่เราจะ download program อะไรจากไหนมา install ก็ได้หมดนั่นเอง เหมือนกับทำ Windows ตัวใหม่ขึ้นมาแล้วตัดจุดแข็งของตนออกไป มันก็เลยไปไม่รอดนั่นแหละครับ

แต่ในปัจจุบัน สถานการณ์เปลี่ยนไป ARM Chipset นั้น เริ่มมีประสิทธิภาพที่สูงขึ้นแบบก้าวกระโดด ในขณะที่ประหยัดพลังงานอีกด้วย ทำให้ Qualcomm กับ Microsoft ได้ร่วมมือกันในการทำให้ Windows สามารถรันบน ARM processor ได้โดยที่ยังคงจุดเด่นของ Windows ในการที่เราจะลงโปรแกรมจากที่ไหนก็ได้เอาไว้เหมือนเดิม และยังรองรับโปรแกรมหรือแอพที่พัฒนาสำหรับ Windows แบบ x86 เดิมๆ ก็ได้อีกด้วย โปรแกรม x86 นี้นั้น ถ้าจะพูดง่ายๆ ก็คือพวกโปรแกรมหรือแอพทั้งหมดที่เราโหลดหรือซื้อมาลงในคอมของเรานั่นเอง ไม่ว่าจะเป็น Chrome, Office, Steam, Photoshop, iTunes, Adobe Reader เป็นต้น


Windows 10 ถูกพัฒนาขึ้นสำหรับ ARM โดยเฉพาะ
ไม่ว่าจะเป็น ตัว Windows 10 เอง, Edge, Cortana, Start menu หรือ Explorer นั้นถูกพัฒนาขึ้นเฉพาะสำหรับ ARM (ARM64 และ ARM32) ทำให้สามารถรันได้ในแบบ native บน ARM รวมถึงพวก graphics, networking, hard disk drivers ต่างๆ ก็เป็น ARM based เช่นกัน ซึ่งจะช่วยให้ประสบการณ์ของผู้ใช้งานดีที่สุด เนื่องจากสามารถใช้ความเร็วของ ARM processor ได้เต็มประสิทธิภาพ รวมถึงแบตเตอรี่ก็ใช้ได้นานอีกด้วยครับ

Version เริ่มต้นของ Windows 10 on ARM คือ Fall Creators Update หรือ v1709 แล้วแต่ใครจะรู้จักมันในชื่อไหนนะครับ

Windows 10 on ARM สามารถใช้โปรแกรม/ แอพอะไรได้บ้าง

Universal Windows Platform (UWP)
UWP apps จาก Microsoft Store นั้นสามารถรันได้แบบ native บน ARM ได้เลยหาก developer ได้ upload ARM package ไว้บน store

ส่วน x86 apps จาก Microsoft Store นั้นจะรันบน emulation เช่นเดียวกับ Win32 apps

Win32 apps
Win32 apps นั้น สามารถรันบน Windows 10 on ARM ได้โดยผ่าน Emulation ได้โดยตรง

เราสามารถโหลดแอพมาลงได้เลยตามปรกติ แต่ให้เลือก version 32 bit เพราะ Windows 10 on ARM จะไม่รองรับ x64 app

สำหรับ x64 app นั้น จะต้องมีการ recompile for ARM โดย developer เสียก่อน จากนั้นก็จะสามารถรันได้แบบ native on ARM ครับ

Emulation บน Windows 10 on ARM คืออะไร ทำงานอย่างไร

การจะทำให้สามารถรัน x86 apps บน Windows 10 on ARM ได้นั้น จำเป็นจะต้องมี Emulator layer มาครอบทับ ซึ่ง Microsoft เรียกมันว่า WOW64 (Windows on Windows) ซึ่งเจ้า WOW64 นี้จะมี code ที่จะช่วยเปลี่ยนชุดคำสั่งที่ x86 apps สั่งออกมาให้กลายเป็น ARM64 เพื่อให้เข้าใจกันได้ และเมื่อรันไปแล้ว 1 ครั้ง จะ WOW64 เก็บชุดคำสั่งนั้นไว้ใน cache เพื่อให้การสั่งงานครั้งถัดไป ทำได้รวดเร็วขึ้น เสมือนไม่ต้องผ่าน Emulation ซึ่ง cahce นี้ สามารถแชร์กันกับ apps อื่นๆ ได้ด้วย ทำให้สามารถทำงานได้รวดเร็วตั้งแต่ครั้งแรก

WOW64 นี้ไม่ใช่ของใหม่เสียทีเดียว แต่เดิม Microsoft ก็ใช้เจ้า WOW64 นี่ล่ะ ในการทำให้ Windows 64 bit สามารถรัน x86 apps ซึ่งเป็น 32 bit ได้อยู่แล้ว เพียงแต่เอา concept ของมันมาปรับใช้กับ ARM64 เท่านั้น

อย่างไรก็ตาม ขึ้นชื่อว่า Emulation แล้ว มันย่อมส่งผลต่อ performance ไม่มากก็น้อย ยิ่งพอเป็น ARM processor ด้วยแล้ว ก็ส่งผลพอสมควรเลยเชียวครับ ทาง Microsoft เคยเปรยๆ เรื่องนี้ประมาณว่า Emulation layer นี้มีไว้เป็น fail safe เพื่อในกรณีที่เราจำเป็นต้องรัน x86 app เท่านั้น แต่ถ้า app นั้นมี ARM version ไม่ว่าจะเป็น ARM32 หรือ ARM64 ก็ควรหันไปใช้พวก ARM version จะดีกว่า

Windows 10 on ARM เวอร์ชั่นแรก ใช้ Snapdragon 835 PC platform
Microsoft ได้เคยออกมาบอกว่า เนื่องจาก สถาปัตยกรรมแบบ SOC ของ ARM ทำให้การพัฒนา Windows 10 on ARM จะต้อง target ไปเป็นรุ่นๆ ไป นั่นทำให้ผมสรุปว่า Windows 10 on ARM ในรุ่นแรกๆ จะเหมือนเป็น proof of concept ว่า Windows 10 ตัวเต็ม ที่รองรับ x86 app สามารถทำได้จริง ซึ่งเมื่อช่วงปลายปี 2016 Microsoft และ Qualcomm ก็ได้เลือก chip ที่แรงที่สุดในขณะนั้นมาพัฒนา Windows นั่นก็คือ Snapdragon 835 นั่นเอง



สำหรับหลายๆ คนที่คุ้นๆ กับชื่อ Snapdragon 835 ก็เป็นตัวนั้นเลยครับ แต่มีการเร่งสปีดให้เร็วขึ้นเล็กน้อย เพราะ PC เองมีขนาดใหญ่กว่า Smartphone มาก จึงระบายความร้อนได้ง่ายกว่ามาก และได้ตั้งชื่อให้กับ 2-in-1 PC ที่ใช้ SD835 นี้ว่า Always Connected PC

Always Connected PC ที่มีขายในท้องตลาดแล้ว มีอะไรบ้าง
อย่างที่ผมบอกไปตั้งแต่ต้นนะครับว่า ผมไม่คิดว่า Always Connected PC นี้เข้ามาทำตลาดในประเทศไทยของเรา แต่มันมีขายแล้วในตลาดต่างประเทศจำนวน 3 รุ่นด้วยกัน คือ HP Envy X2; ASUS Nova Go; และ Lenovo Miix 630 ตั้งแต่ช่วงต้นปี 2018 นี้



ซึ่งทาง Qualcomm โฆษณาว่า Always Connected PC นั้นมีจุดขายที่ไม่เหมือนใคร คือ 
  • Always on, always connected เพราะการที่มี SD835 นี่แหละครับ ทำให้ PC ของเราเปิดติดปิดไวเหมือน smartphone และเชื่อมต่อกับสัญญาณมือถือ 4G ได้ตลอดเวลา แม้จะ sleep อยู่ก็ตามครับ
  • Beyond all-day battery life ซึ่งจะทำให้เราจะแทบไม่ต้อง shutdown PC เลย ก็เสริมข้อ 1 ไปอีก ที่ว่าเปิดติดปิดไวครับ Always Connected PC ตามด้านบนทั้งสามรุ่น ล้วนบอกว่า ใช้งานบนแบตเตอรี่ได้นานกว่า 20 ชั่วโมง และมี connected standby ยาวนานได้ถึง 30 วันเลยทีเดียว เรียกได้ว่าชาร์จทีใช้จนลืมกันไปเลย
ก้าวสู่ 2nd generation ของ Always Connected PC กับ Snapdragon 850

หลังจากรุ่นแรกออกมาแล้ว ทาง Qualcomm ก็ได้ประกาศตัว Sanpdragon 850 mobile compute platform ออกมา



SD850 นี้ "Not for mobile phone" นะครับ เพราะทำมาใหญ่กว่า mobile chip ปรกติ เพราะ PC ระบายความร้อนได้ดีกว่า ทำให้ "จัดเต็ม" ได้มากกว่านั่นเองครับ

นี่เป็นการ "เอาจริง" ของ Qualcomm เพราะได้พัฒนา Chip เฉพาะ สำหรับ Windows 10 on ARM โดยเฉพาะ และได้มีการเปลี่ยนชื่อ จาก mobile PC มาเป็น mobile compute ซึ่งน่าจะแสดงว่า เราน่าจะได้เห็น form factor ใหม่ๆ นอกจาก 2-in-1 PC ทยอยออกมาแน่นอน โดย Qualcomm บอกแค่ว่า จะมี devices ที่ใช้ SD850 นี้ออกมาในช่วงครึ่งปีหลังของ 2018 นี้เลยครับ

Credit: https://docs.microsoft.com/en-us/windows/uwp/porting/apps-on-arm
https://docs.microsoft.com/en-us/windows/uwp/porting/apps-on-arm-x86-emulation
https://www.qualcomm.com/products/snapdragon-835-mobile-pc-platform
https://www.qualcomm.com/products/snapdragon-850-mobile-compute-platform

No comments:

Post a Comment