PCToday Vol.10 Issue 131

Page 1



www.pctodaythailand.com facebook.com/pctoday twitter.com/pctoday pctoday@aspirers.com

STAFF

ดร. ครรชิต มาลัยวงศ ประทีป ยงเขต อ�ำพล สงวนศิริธรรม จิระ หองส�ำเริง คมสัน เหลาศิลปเจริญ วิโรจน อัศวรังสี บัณฑิต คุปพิทยานันท บรรณาธิการผู้พิมพ์ผู้โฆษณา : กิตติพงศ ตันสุวรรณ ที่ปรึกษากิตติมศักดิ์ : ที่ปรึกษานิตยสาร :

Editorial Staff บรรณาธิการบริหาร : บรรณาธิการเทคนิค : หัวหน้ากองบรรณาธิการ : ผู้สื่อข่าวอาวุโส : บรรณาธิการฝ่ายศิลป์ :

กิตติพล มูลพินิจ kittipon@aspirers.com ชัยรัตน์ คุ้มโภคา จิระเดช โชติช่วง จิราภรณ กิตติจนั ทรขจร jiraporn@aspirers.com ศิริพรรณ ตันตินีรนาท siripan@aspirers.com วิลัยพร มงคลแพทย wilaiporn@aspirers.com

Sales Staff Senior Account Executive : พันธทิพย กชจรัสศรี Sale@aspirers.com

Back Office ฝ่ายจัดจ�ำหน่าย : สมาชิกสัมพันธ์ : จัดจ�ำหน่ายโดย : ร้านแยกสี : พิมพ์ที่ :

เยาวมาลย เจริญผล yaowamanc@aspirers.com ธิดา เลิศสุรพิบูล member@aspirers.com เพ็ญบุญ โทร. 0-2615-8625 บริษัท พีพี เพลท แอนด ฟลม จ�ำกัด โทร. 0-2274-7988-91 โรงพิมพ พิมพดี โทร. 0-2401-9401

บริษัท ดิแอสไพเรอรสกรุป จ�ำกัด

431/6 อาคาร​สาธร​เพล​ส ชั้น 2 ถนนกรุงธนบุรี แขวงคลอง​ตนไทร เขต​คลองสาน กรุง​เทพ​ฯ 10600 โทรศัพท 0-2440-0330 โทรสาร 0-2440-0338

ยอดขายอันดับ 1 สำ�รวจโดย ซีเอ็ดบุกเซ็นเตอร ขอมูลอัพเดตสุด วัดจาก “ยอดขายจริง” ไมใช “โพลส”

การสงบทความมาลงตีพิมพ ในนิตยสาร

นิตยสาร PC Today ยินดีพจิ ารณาบทความจากบุคคล ภายนอก โดย กรุณาสงมาทีก่ องบรรณาธิการ นิตยสาร PC Today ตาม ทีอ่ ยูข อง บริ ษั ท ข า งต น ส� ำ หรั บ ต น ฉบั บ ที่ ส  ง มา ขอให อ ยู  ใ นรู ป แบบ ของเท็ ก ซ ไ ฟล ห รื อ จะเป น ไมโครซอฟท เ วิ ร  ด ก็ ไ ด พร อ มภาพ ประกอบขอเขียนเหลานัน้ โดยทางบริษทั จะพิจารณาคาเรือ่ งเพือ่ ตอบแทนตามมาตรฐานบริษัทฯ ตอไป อนึ่ง เนื่องจากบริษัทฯ ไมรับบทความที่เปนการละเมิดลิขสิทธิ์ของผูใด ดังนั้น ขอเขียน ดังกลาวตองไมเปนการละเมิดลิขสิทธิผ์ อู นื่ ผูใ ด และหากเปนการ รวบรวม และเรียบเรียงขึน้ ใหมจากตนฉบับอันมีลขิ สิทธิจ์ ากแหลง ไหน โปรดระบุที่มาโดยละเอียด และสงส�ำเนาแนบมาดวย หมายเหตุ : ทรรศนะและขอคิดที่ปรากฏอยูในบทความตางๆ ของนิตยสาร PC Today เปนความคิดเห็นสวนตัวของผูเขียน แตละทาน ไมจ�ำเปนตองเปนความคิดเห็นของบริษัทฯ เสมอ ไป และขอเขียนที่นักเขียนภายนอกสงมา หากมิไดปฏิ​ิบัติตาม ขอก�ำหนดขางตน และมีการละเมิดลิขสิทธิเ์ กิดขึน้ ทางบริษทั ฯ จะไมขอรับผิดชอบแตประการใด

สอบถามขอสงสัยในเรื่องบทความ

ในกรณีที่ต องการถามปญ หาทางเทคโนโลยี เรื่องเทคนิค ใน การใชงานโปรแกรมตางๆ และเรื่องบทความ เนื่องจากทาง บริษัทฯ ไมสะดวกที่จะใหบุคคลภายนอกติดตอกองบก. และ นักเขียนนอกโดยตรงตลอดเวลา ดังนัน้ กรุณาสงจดหมาย ค�ำถาม ติดตอมาไดที่กองบรรณาธิการ นิตยสาร PC Today ตามที่อยู

การสมัครสมาชิกและการเปลี่ยนที่อยู

กรุ ณ าหาแบบฟอร ม สมั ค รสมาชิ ก และอ า นรายละเอี ย ด ไดในทายเลม ส�ำหรับผูสงสัยเพิม่ เติมกรุณาโทรศัพทสอบถามได ที่ฝายสมาชิก โทร. 0-2439-7644 ตอ 212, 224, 777

การขออนุญาตและพิมพซ�้ำ

บทความที่ ตี พิ ม พ ใ นนิ ต ยสาร PC Today สงวนสิ ท ธิ์ ต าม พระราชบัญญัติลิขสิทธิ์ พ.ศ. 2537 กรณีที่ตองการน�ำสวนหนึ่ง สวนใดของนิตยสารไปใชโปรดติดตอไดที่ บรรณาธิการบริหาร นิตยสาร PC Today ตามทีอ่ ยู หรืออีเมล และเบอรโทรศัพทขา งตน

การแจงขาวผลิตภัณฑ ใหม และบริการอื่นๆ

บริ ษั ท ใดที่ ต  อ งการประชาสั ม พั น ธ ผ ลิ ต ภั ณ ฑ ข องตน ให ส  ง รายละเอียดพรอมรูปถายผลิตภัณฑมาไดที่กองบรรณาธิการ นิตยสาร PC Today อนึ่ง ทางกองบรรณาธิการขอสงวนสิทธิ์ใน การพิจารณาเลือกตีพิมพให ตามเหมาะสม

การรับรูความเปนเจาของลิขสิทธิ์ และเครื่องหมายการคา

เนื่องจากนิตยสาร PC Today ไมสามารถประกาศความเปน เจาของลิขสิทธิ์และเครื่องหมายการคาที่มีอยูมากใหค รบถ ว น สมบูรณ อีกทั้งความนิยมในลิขสิทธิ์ และเครื่องหมายการคา ดังกลาวมักเปลี่ยนแปลงตลอดเวลา ดังนั้น ทางกองบรรณาธิการ จะประกาศ ความเปนเจาของลิขสิทธิ์เฉพาะที่มีการกลาวถึง ในบทความ ประกอบลงในบทความนั้ น ๆ เลย และถ า สิ ท ธิ์ ดังกลาวเปนที่รับรูกันโดยทั่วไปแลว ทางนิตยสารขอสงวนสิทธิ์ ทีจ่ ะไมกลาวซ�ำ้ ทัง้ นีเ้ พือ่ ประโยชนในการเขียนบทความใหกระชับ นาอาน


CONTENTS

Vol. 10 | ISSUE 131 | 2014

Quick Start

13

Mac Mania

22

Geek Programming

16

Photo Lover

102

Social World

36

รู้จักกับ Intel Identity Protection Technology ช่วยให้ซื้อของออนไลน์ ปลอดภัยมากขึ้นจริงหรือ? แนะนำ�เครื่องมือเล็กๆ เพื่อชีวิตที่ดีขึ้นบนแมค (ต่อ) เทคนิคการเขียนโปรแกรมให้ทำ�งานเร็วขึ้น 3-4 เท่า ด้วย Branch Predictor วิเคราะห์ภาพตัดต่อ ทำ�กันอย่างไร

Boo สุนัขเซเลบ มีแฟนเพจ 9 ล้านคน!

Smart Story

26

School 3.0

8

รีวิว Steam OS ก่อนใคร! พร้อมวิธีติดตั้งแบบละเอียด คุณก็ทำ�ได้ แอพเรียนรู้ ด้วยตัวการ์ตูน

Smart Action

38 46

• ตัดต่อไฟล์ไฮเดฟด้วยฟรีแวร์ SolveigMM AVI Trimmer + MKV • แค่คลิกเดียว...สภาพพีซีดีเยี่ยม 360 Amigo System Speedup Free • จดโน้ตขั้นเทพ ด้วยโปรแกรม Evernote • ปกปิดตัวตน...คนนิรนามบนโลก ออนไลน์ ด้วย TunnelBear • JotForm สร้างฟอร์มออนไลน์ ง่ายกว่าที่คิด • Genie Timeline Free 2014 แบ็กอัพให้สุดซอย • WinToFlash ติดตั้งวินโดวส์อย่าง รวดเร็ว ด้วยแฟลชไดรฟ์

13

8

16

22

26


SP13039NG TRIM_168x238 15/01/57


CONTENTS

Vol. 10 | ISSUE 131 | 2014

109

Street Product PR News

98 143

• AOC Breeze G7DC • Kingston HyperX Predator 8GB • OCZ Vector 150 128GB • Plextor M5pro Xtreme • Razer Naga Molten • Razer Sabertooth • Dell S2240T • Kingston Mobile Lite Wireless • NZXT Phantom 530 • OCZ Fatal 1 ty 750W • Silicon Power Superior SDXC 64GB

98

Smart Software

Try Before Buy

77

สุดยอด 5 โปรแกรม แต่งภาพเลียนแบบ สีของฟิล์ม

DIY 73 ประกอบเครื่องพีซี แบบ IP-PBX ตอนที่ 1 : รู้จักกับ IP-PBX

Tech Inside

120

• รีวิว APU Kaveri เมื่อ AMD ทลาย กำ�แพงกั้น CPU/GPU ด้วย HAS • รีวิว Zbox Nano ID69 Plus มินิพีซี สอดไส้ Core i7 Haswell • 10 ฟีเจอร์ทัชเจ๋งๆ กับ 10 แอพทัช แจ๋วๆ ของ Windoes 8.1

Win 7 Hot Tip

85

Inside Windows 8

91

102 59

62

73

106

36

เทคนิคเพิ่มตัวเลือกเปิดปิดการอัพเดต ของวินโดวส์ ตรวจสุขภาพพีซี ด้วยเครื่องมือของ Windows 8

109

120


EDITOR TALK

EDITOR TALK

โดย กิตติพล มูลพินิจ

ใครชอบอ่าน อีบุ๊กยกมือขึ้น พกพาหนังสือเป็นสิบๆ เล่มไปไหนต่อไหนได้ โดยไม่ต้องกังวลเรื่องน�้ำหนักแบกหาม ที่ส�ำคัญ กว่านั้น ผมสามารถซื้อหนังสือใหม่ๆ ได้โดยไม่ ต้องเดินทางไปยังแผงหนังสือ (แต่ผมก็ยังชอบ บรรยากาศของร้านหนังสืออยู่นะ) เพราะร้าน หนังสือมันติดตามผมไปได้ทุกที่ ความสะดวก ที่ได้รับทั้งหมดนี้ ท�ำให้ผมปันใจจากหนังสือ กระดาษไปเป็นอีบุ๊กได้อย่างง่ายดาย

เมื่อก่อนถ้าใครมาถามผมว่า ให้เลือกอ่าน หนังสือแบบกระดาษ กับแบบอีบุ๊ก ผมจะเลือก อ่านอะไร ผมคงตอบไปแบบไม่ต้องคิดว่า ก็ต้องเลือกหนังสือกระดาษอยู่แล้ว แถมยัง ส�ำทับไปอีกด้วยว่า ยังไงๆ อีบุ๊กก็ไม่สามารถ แทนที่หนังสือกระดาษได้ ไม่ว่าจะเทียบกันทาง ด้านความรู้สึก กลิ่นหมึกพิมพ์ ความสบายตา การจับถือที่ดูเป็นมิตร ฯลฯ และเหตุผลอื่นๆ จิปาถะ ที่ท�ำให้ผมยังคงควักตังค์ซื้อหนังสือเป็น เล่มๆ จนกองพะเนินล้นตู้หนังสือที่บ้านจนถึง ทุกวันนี้ แต่นั่นคือเรื่องเมื่อ 2 ปีก่อนครับ

และในฐานะคนท�ำหนังสือ อนาคต PCToday คงจะต้องเปลี่ยนไปในลักษณะของอีบุ๊กแบบ เต็มตัวอย่างหลีกเลี่ยงไม่ได้ นั่นหมายถึงฉบับ กระดาษคุณผู้อ่านคงจะหาซื้อยากขึ้นนิดหน่อย แต่ถ้าใครติดตามแอพบุ๊กสโตร์ต่างๆ อยู่แล้ว ก็แค่รอแจ้งเตือน PCToday เล่มใหม่โผล่ขึ้นมา ที่หน้าจอของคุณเท่านั้นเอง แล้วคุณผู้อ่านล่ะครับ คิดเห็นอย่างไร ถ้า PCToday จะกลายเป็นอีบุ๊กเต็มตัว แลกเปลี่ยนความเห็นกันที่แฟนเพจของเราได้ ครับ ที่ facebook.com/pctoday หรือ อีเมล์ pctoday@aspirers.com

ปัจจุบันนี้ผมต้องยอมรับว่า ผมชอบอ่าน อีบุ๊กมากกว่า! เหตุผลง่ายๆ ก็คือ ผมสามารถ www.pctodaythailand.com

7


SCHOOL 3.0

โดย @eka_x

แอพเรียนรู้ ด้วยตัวการ์ตูน หลังจากเราเริ่มคอลัมน์ School 3.0 มาได้ หลายฉบับแล้ว สิ่งหนึ่งที่ยังติดค้างในใจผมอยู่ คือท�ำไมถึงยังไม่เจอแอพการเรียนการสอนของ คนไทยที่น่าแนะน�ำเลยนะ ซึ่งผมก็พยายามดู ตามแหล่งต่างๆ หาแอพจากคนไทยมาตลอด แต่ก็ไม่ได้สักทีนะครับ จนวันนี้ความต้องการ 8

PC Today VOL. 10 ISSUE 131

ของผมก็เป็นจริงเมื่อเจอแอพจากคนไทยดีๆ แล้ว! ถึงจะหาเจอมาแค่ตัวเดียวแต่ก็ต้องรีบ แนะน�ำให้รู้จักกัน พร้อมพาแอพสอนการแพทย์ ง่ายๆ ด้วยตัวการ์ตูนน่ารักส�ำหรับเด็กมาแนะน�ำ ให้รู้จักกันอีกตัวหนึ่ง มาลองดูแอพทั้งคู่กัน เลยครับ


SCHOOL 3.0

Keng Thai HD ราคา: 2.99 เหรียญ เหมาะกับ: เด็กอายุ 4 ขวบขึ้นไป ฝึกทักษะ: รู้จักพยัญชนะไทยทั้ง 44 ตัว ทั้งรูปร่าง การออกเสียง วิธีเขียน ฝึกความจ�ำ

ที่ผ่านมาผมแทบไม่เคยแนะน�ำแอพ การเรียนการสอนของไทยให้รู้จักกันเลยนะครับ เพราะแอพส่วนใหญ่ที่เห็นยังไม่เข้าตาเท่าไหร่ (ก็ถ้าใครรู้จักแอพไทยดีๆ แนะน�ำเข้ามาได้ นะครับ จะได้ช่วยกันโปรโมทให้รู้จักกันกว้างๆ) แต่ “เก่งไทย” เป็นแอพสอนภาษาไทยที่คุณภาพ โอเคเลย ก็เลยได้โอกาสแนะน�ำให้รู้จักกันสักที เก่งไทยเป็นแอพที่สอนเด็กๆ ให้รู้จัก ตัวอักษรไทยทั้ง 44 ตัว โดยใช้ภาพการ์ตูน ประกอบให้จ�ำตัวอักษรง่าย พร้อมเสียงค�ำ อ่านไทยประกอบพยัญชนะทุกตัว นอกจากนี้ยัง แนะน�ำวิธีเขียนตัวอักษรทุกตัวอย่างถูกต้องและ ให้เด็กๆ ได้ฝึกเขียนลงบนหน้าจอแท็บเล็ตเลย ยิ่งเขียนได้ตรงเส้นมากเท่าไหร่ก็จะได้คะแนน เยอะเท่านั้น เอาไปเทียบกับเพื่อนๆ ในเฟซบุ๊ก

ก็ได้ (ถ้าล็อกอินเฟซบุ๊กไว้ในแอพนะครับ เป็นเฟซบุ๊กของพ่อแม่ก็ได้ จะไปเทียบ Global Score กับผู้ใช้เก่งไทยทั้งหมด) แล้วสะสมดาว สะสมเหรียญที่ได้เพื่อเปิดทางสู่ด่านใหม่ๆ และ สะสมค่าประสบการณ์เพื่อเพิ่มเลเวล ท�ำให้เล่น ในส่วนอื่นๆ ของแอพได้มากขึ้นครับ นอกจากนี้ยังมีเกมเล็กๆ ส�ำหรับฝึกทักษะ อีก 8 เกมคือ • เกมเรียงตัวอักษร ผู้เล่นต้องลากตัวอักษร ลงช่องให้ถูกล�ำดับ โดยมีเวลาจ�ำกัดเพียง 30 วินาทีเท่านั้น ซึ่งถ้าเรียงผิดก็จะถูกลดเวลาด้วย • เกมจับคู่เสียงอักษร ผู้เล่นต้องกดฟังเสียง แล้วลากตัวอักษรไปวางให้ถูกตัว • เกมเติมพยัญชนะ แอพจะให้รูปวาดค�ำใบ้ ของพยัญชนะตัวนั้นๆ มาให้ผู้เล่นลากตัวอักษร ลงไปเติมให้ถูก • เกมทายตัวอักษร แอพจะแสดงภาพขึ้น มา ให้ผู้เล่นกดตัวอักษรที่แทนภาพนั้นให้ถูกต้อง อย่างเร็วที่สุด (ราวกับเกม 3 วินาทีในแฟนพันธ์ แท้) • เกมโยงเส้นจับคู่พยัญชนะ ผู้เล่นต้องจับคู่ รูปภาพกับพยัญชนะให้ถูก จึงสามารถลากเส้น ไปได้

www.pctodaythailand.com

9


SCHOOL 3.0

• เกมเติมสระวรรณยุกต์ ที่เล่นโดยลากเอา สระที่ถูกต้องไปวางลงในค�ำ • เกมเปิดป้ายฝึกความจ�ำ ผู้เล่นต้องจ�ำว่า ตัวอักษรและภาพอะไรอยู่ป้ายไหน เพื่อเปิดออก มาจับคู่กันให้ได้ • เกมฝึกเขียนค�ำ ที่ให้ผู้เล่นได้เขียนตัวอักษร ทีละตัวจนประกอบเป็นค�ำได้ ซึ่งเกมทั้งหมดนี้จะต้องใช้ดาว 1 ดวงที่ได้รับ จากบทเรียนตัวอักษรเพื่อเปิดเล่น หรือสามารถ ใช้ดาว 30 ดวงและเหรียญอีกจ�ำนวนหนึ่ง เพื่อปลดล็อกให้เล่นได้ตลอดไป ก็เลือกรูปแบบ ได้ตามสะดวกครับ ด้วยรูปแบบการเล่นและภาพประกอบ ที่สวยงาม ท�ำให้เก่งไทยเป็นแอพการเรียน 10

PC Today VOL. 10 ISSUE 131

การสอนที่น่าใช้นะครับ แต่ก็ยังไม่เหมาะส�ำหรับ การฝึกคัดไทย เพราะยังไงเรื่องนี้ก็ควรใช้ดินสอ เขียนลงบนกระดาษมากกว่าการใช้นิ้วลากไป บนจอ แต่เก่งไทยเหมาะส�ำหรับการเรียนรู้ ภาษาไทย ให้รู้จักตัวอักษรและค�ำต่างๆ ด้วย ภาพและเสียงที่ประกอบการเรียนรู้ ก็ท�ำให้ผู้เล่น จ�ำตัวอักษรต่างๆ ได้ไม่ยากเย็นอะไร นอกจาก นี้ยังเหมาะส�ำหรับชาวต่างชาติที่ต้องการเรียนรู้ ภาษาไทยด้วย เพราะตัวแอพนั้นมีภาษาอังกฤษ บรรยายและสามารถเปลี่ยนเมนูเป็นภาษา อังกฤษได้


SCHOOL 3.0

Pepi Doctor ราคา: 1.99 เหรียญ
 เหมาะกับ: เด็กอายุ 4 ขวบขึ้นไป
 ฝึกทักษะ: ความรู้ด้านการแพทย์เบื้องต้น, ความเข้าใจอาการของโรคต่างๆ, ความรู้รอบตัว

เรื่องสุขภาพกับเด็กๆ นี่จะว่าอธิบายยาก มันก็ใช่นะครับ เวลาที่เด็กมาถามว่าท�ำไมถึง ปวดฟัน ท�ำไมถึงเป็นไข้นี่คงต้องอธิบายกัน เหนื่อยเหมือนกัน แต่วันนี้เรามีแอพที่จะช่วย น�ำเสนอเรื่องราวเหล่านี้ให้เข้าใจง่ายๆ ด้วย ตัวการ์ตูนน่ารักๆ ครับ Pepi Doctor เป็นแอพสอนเรื่องสุขภาพ ส�ำหรับเด็กๆ ผ่านตัวละคร 3 ตัวคือ Amber สาวน้อยผมบรอนด์น่ารัก, Eva สาวผิวเข้ม ผมหยักและ Milo หนุ่มน้อยจอมซน โดยจะยก อาการป่วยมา 5 อาการ คือกระดูกหัก ฟันผุ เป็นไข้ เป็นแผล หูสกปรก ให้ผู้เล่นได้สวม บทบาทเป็นหมอ ได้เรียนรู้ขั้นตอนการรักษา

คร่าวๆ ว่าต้องท�ำอย่างไร แล้วต้องใช้เครื่องมือ แพทย์อะไรบ้าง เช่น ฟันผุ ก็ตอ้ งแปรงฟันเหลืองๆ ออกให้เห็นเนื้อฟันผุก่อน แล้วจึงกรอฟันและ ถอนในซี่ที่จ�ำเป็น ก็จะมีการเสริมจินตนาการลง ไปบ้างให้เด็กสนุก เช่นต้องดึงแมงกินฟันให้หมด ก่อนที่จะเริ่มขัดฟันได้ หรือถ้ากระดูกหัก ก็ต้อง x-ray แล้วเรียงกระดูกที่หักให้เป็นรูปเป็นร่างเดิม ก่อน จากนั้นจึงค่อยสวมเผือกเข้าไปครับ

www.pctodaythailand.com

11


SCHOOL 3.0

นอกจากภาพประกอบที่สวยงาม เข้าใจง่าย แล้ว ตัวการ์ตูนยังมีปฏิกิริยาที่แตกต่างกันไป เมื่อท�ำผิดขั้นตอน หรือใช้เครื่องมือในจุดที่ ไม่ควรครับ ท�ำให้ผู้เล่นเข้าใจได้ทันทีว่าก�ำลัง ท�ำผิดพลาด และค่อยๆ ท�ำความเข้าใจว่า ต้องท�ำอะไรจึงจะผ่านฉากไปได้ครับ แถมเพลงประกอบยังเพราะใช้ได้อีกด้วย

12

PC Today VOL. 10 ISSUE 131

ถึง Pepi Doctor จะเป็นแอพที่ดี เด็กๆ สามารถเล่นได้โดยไม่ต้องเข้าใจภาษา อังกฤษ แต่ยังไงก็ควรมีผู้ปกครองให้ค�ำแนะน�ำ นะครับ เด็กเห็นเรื่องที่ท�ำในแอพง่ายๆ แล้ว ผู้ปกครองไม่ได้อธิบายเพิ่มเติม ก็อาจจะเข้าใจ ผิดเรื่องการรักษาไปได้


QUICK START

โดย กองบรรณาธิการ

QUICK START

รู้จักกับ

Intel Identity Protection Technology

ช่วยให้ซื้อของออนไลน์ ปลอดภัยมากขึ้นจริงหรือ? เราต่างก็รู้ดี ว่าการท�ำธุรกรรม ออนไลน์คืออนาคต การจับจ่ายซื้อของ ผ่านอินเทอร์เน็ต ให้ทั้งความสะดวก สบาย และประหยัดเวลาไปได้มาก แต่ความ กังวลในเรื่องของความปลอดภัยก็ยังคงเป็น หัวข้อใหญ่ ที่ท�ำให้หลายคนไม่กล้าใช้บริการ ทางการเงินผ่านเน็ต และก็ต้องยอมรับว่าระบบ ความปลอดภัยของเว็บไซต์บางแห่งก็ไม่ได้ รัดกุมเพียงพอ การที่อินเทลพัฒนาเทคโนโลยี Intel Identity Protection Technology

(Intel IPT) ขึ้นมาก็เพื่อให้การท�ำธุรกรรม ผ่านเน็ตมีความสะดวกและปลอดภัยมากขึ้น แต่มันท�ำได้อย่างไร? แล้วไว้ใจได้จริงหรือ? ลองอ่านบทความนี้ดูครับ Intel Identity Protection Technology หรือ เรียกสั้นๆ ว่า Intel IPT ได้ถูกน�ำมาใช้ครั้งแรก เมื่อปี 2011 โดยเป็นเทคโนโลยีระดับฮาร์ดแวร์ ที่มาพร้อม Intel Core-i 2nd generation หลังจากนั้น IPT ได้ถูกพัฒนามาอย่างต่อเนื่อง จนกระทั่งปัจจุบันในยุคของ Intel Core-i 4th generation นี้ เรียกได้ว่า IPT แทบจะมีความ ปลอดภัยในการท�ำงาน 100% ส�ำหรับ IPT นี้ www.pctodaythailand.com

13


QUICK START เป็นฟีเจอร์ที่มาพร้อมกับซีพียู ซึ่งสามารถใช้ได้ กับเครื่องทุกรูปแบบที่ใช้ซีพียูอินเทล ไม่ว่าจะ เป็นโน้ตบุ๊ก พีซี แท็บเล็ต และแน่นอนรวมถึง Notebook 2 in 1 ด้วย

Intel IPT with PKI

แนวคิดในการท�ำงาน

แนวคิดในการท�ำงานของ IPT คร่าวๆ ก็คือว่า IPT จะเก็บข้อมูลส่วนตัวที่ส�ำคัญๆ อย่าง ชื่อ นามสกุล เลขประจ�ำตัว ข้อมูล บัตรเครดิต ยูสเซอร์เนมและรหัสผ่าน ฯลฯ ต่างๆ เอาไว้ในหน่วยเก็บข้อมูลในซีพียู (ไม่ใช่ในฮาร์ดดิสก์ และไม่ขึ้นกับระบบ ปฏิบัติการ) เมื่อต้องมีการป้อนข้อมูลต่างๆ เหล่านี้ ผู้ใช้จะต้องยืนยันตัวตนให้ถูกต้องผ่าน ทางระบบป้องกัน 2 ชั้น ชั้นแรกคือ ชื่อยูสเซอร์ และรหัสผ่าน ส่วนชั้นที่สองคือ OTP หรือ One Time Password เป็นตัวเลข 6 หลัก ซึ่งจะสุ่มส่งมาให้โดยตรงจากตัวซีพียูเอง

นี่คือแนวคิดเริ่มแรกของ IPT ซึ่งกลายมา เป็นวิธีการที่หลายๆ บริการธุรกรรมบนโลก ออนไลน์นิยมใช้กันในปัจจุบัน ที่เห็นบ่อยๆ ก็อย่างเช่น ระบบออนไลน์ของแบงค์ อย่างไรก็ ดี ไม่มีระบบใดๆ ปลอดภัยร้อยเปอร์เซ็นต์ ดังนั้น IPT ที่มาพร้อมกับ Intel Core-i 4th generation จึงถูกพัฒนาให้มีความปลอดภัยมากขึ้นไปอีก เรียกว่าป้องกันแบบรอบด้านมากขึ้น ดังนี้ 14

PC Today VOL. 10 ISSUE 131

PKI ย่อมาจาก Public Key Infrastructure เป็นอีกวิธีหนึ่งในการใช้ปกป้องการรับส่งข้อมูล ระหว่างเครื่องของผู้ใช้และเว็บที่ให้บริการบน อินเทอร์เน็ต โดยทั้ง 2 ฝั่งจะต้องยืนยันคีย์เข้า รหัสให้ตรงกัน จึงจะสามารถติดต่อสื่อสารและ ให้บริการกันได้ และเช่นเดียวกับ OPT เลขรหัส PKI จะถูกฝังไว้ในตัวซีพียู ซึ่งยากต่อการแฮ็ก

Intel IPT with Protected Transaction Display

การป้อนรหัส OTP หรือ PKI นั้นจะกระท�ำ บนหน้าจอเป็นหลัก ผ่านเวอร์ชวลคีย์บอร์ด ซึ่งหลีกเลี่ยงการดักจับปุ่มกดได้ระดับหนึ่ง แต่ก็ยังเสี่ยงที่จะถูกแฮ็กผ่านการดักจับหน้าจอ (screen logging) ถึงแม้จะมีโอกาสเป็นไปได้ น้อย แต่เพื่อความปลอดภัยสูงสุด IPT ยังป้องกันในส่วนนี้ ด้วยการเข้ารหัสทุกข้อมูล รวมถึงซ่อนหน้าจอที่ใช้เข้ารหัสไม่ให้แฮ็กเกอร์ มองเห็นได้อีกด้วย


QUICK START

Intel IPT with NFC

สุดท้ายก็คือ การน�ำเอาเทคโนโลยีไร้สาย ระยะใกล้ NFC (Near Field Communication) มาประยุกต์ใช้ร่วมกันในการปกป้องข้อมูล วิธีนี้จะว่าไปแล้วสะดวกที่สุด แต่ต้องได้รับความ ร่วมมือกับผู้ให้บริการอื่นๆ ด้วย อย่างล่าสุดก็ คือ MasterCard ร่วมกับอินเทล ออกเทคโนโลยี MasterPass เพื่อให้การท�ำธุรกรรมออนไลน์ สะดวกและปลอดภัยมากขึ้น กล่าวคือ บัตร MasterCard ที่มี MasterPass จะมีชิป NFC ฝังอยู่ในบัตร เมื่อต้องการจับจ่ายใช้สอยผ่าน เน็ต ก็เพียงแค่น�ำบัตรไปแตะกับ Notebook 2 in 1 ที่มี NFC รับข้อมูล แน่นอนว่าไม่ใช่ใคร

ก็เอาบัตรไปแตะซื้อของได้เหมือนบัตร เซเว่นการ์ด แต่จะต้องมีการใส่รหัสผ่านที่เราได้ ตั้งไว้ก่อนหน้านี้ร่วมด้วย จะเห็นว่าด้วยเทคโนโลยี Intel IPT ที่ฝังมา กับซีพียู Core-i 3rd gen และ 4th gen นั้น ช่วยสร้างความปลอดภัยให้ดีขึ้น มั่นใจมากขึ้น และไม่ใช่แค่การท�ำธุรกรรม ซื้อของ จ่ายบิล ผ่านแบงค์ออนไลน์เท่านั้น Intel IPT ยังสามารถ ปรับใช้เข้ากับการส่งข้อมูลออนไลน์อื่นๆ ที่มี ความส�ำคัญ และไม่อยากให้มือที่สามรู้ เช่น อีเมล์ เป็นต้น จะว่าไปแล้วการมีเทคโนโลยีต่างๆ เหล่านี้ ก็เป็นเรื่องส�ำคัญพอๆ กับการมุ่งพัฒนา ประสิทธิภาพของเครื่อง โดยเฉพาะ แนวโน้มที่ทุกคนเริ่มหันมาใช้งานอุปกรณ์ พกพา และ Notebook 2 in 1 กันมากขึ้นเรื่อยๆ การค�ำนึงถึงความปลอดภัยในเรื่องของ การท�ำธุรกรรมออนไลน์จึงเป็นสิ่งที่ไม่ควร มองข้ามครับ

www.pctodaythailand.com

15


Geek Programming

โดย วศิน สุทธิฉายา

เทคนิคการเขียนโปรแกรม ให้ทำ�งานเร็วขึ้น 3-4 เท่า

ด้วย Branch Predictor

16

PC Today VOL. 10 ISSUE 131

สวัสดีครับ คุณผู้อ่านที่เคย เขียนโปรแกรมมาก่อนคงต้องเคย ผ่านการเขียนโปรแกรมสำ�หรับ เรียงข้อมูลในตัวแปรแถวลำ�ดับ มาบ้าง ซึ่งเราเรียกขั้นตอนวิธี ดังกล่าวว่า Sorting algorithm นั่นเอง

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


Geek Programming

Instruction Pipeline

ตัวอย่างโค้ดโปรแกรมหาผลรวม

โปรแกรมดังกล่าวเป็นโปรแกรมเพื่อหา ผลรวมของข้อมูลที่อยู่ในตัวแปรแถวล�ำดับ เฉพาะตัวที่มีค่ามากกว่าหรือเท่ากับ 16384 จะเห็นว่าเราไม่จ�ำเป็นต้องเรียงข้อมูลก็ได้ เราแค่ตรวจสอบไปทีละตัวแล้วค่อยบวกไป เรื่อยๆ แต่เชื่อหรือไม่ครับว่าการเรียงข้อมูลก่อน จะท�ำให้โปรแกรมนี้ท�ำงานเร็วขึ้นอย่างน้อย 3-4 เท่า!! และอาจท�ำงานได้เร็วมากกว่านี้ ขึ้นกับสถาปัตยกรรมของหน่วยประมวลผล และตัวแปลภาษาที่ใช้งานอยู่

คนที่มีความรู้เกี่ยวกับสถาปัตยกรรมของ หน่วยประมวลผลคงเริม่ บอกว่าหน่วยประมวลผล เก็บข้อมูลลงแคชเอาไว้ก่อนจึงท�ำงานได้เร็วขึ้น นั่นก็มีส่วนครับ แต่จริงๆ แล้วส่วนที่ช่วยให้ การท�ำงานของโปรแกรมนี้เร็วมากขึ้นเกิดจาก Branch predictor นั่นเอง แต่ก่อนเราจะไปดูว่า Branch predictor คืออะไร แล้วมันช่วยให้การ ท�ำงานเร็วขึ้นได้อย่างไร เราต้องท�ำความรู้จักกับ Pipeline กันก่อนครับ

กระบวนการพื้นฐานของหน่วยประมวลผลที่ ใช้แปลชุดค�ำสั่ง (Instruction) ให้เป็นการท�ำงาน ประกอบด้วย 5 ขั้นตอนคือ 1. อ่านชุดค�ำสั่ง (Instruction Fetch แทนด้วย IF) 2. ตีความชุดค�ำสั่ง (Instruction Decode แทนด้วย ID) 3. ประมวลผล (Execute แทนด้วย EX) 4. ติดต่อกับหน่วยความจ�ำ (Memory แทนด้วย MEM) 5. เขียนข้อมูลกลับ (Write back แทนด้วย WB) Pipeline คือเทคนิคในการออกแบบหน่วย ประมวลผล เพื่อให้หน่วยประมวลผลสามารถ ท�ำงานได้มากขึ้น หรือก็คือเพิ่มจ�ำนวนค�ำสั่งที่ หน่วยประมวลผลสามารถท�ำงานได้ในหนึ่ง หน่วยเวลา Pipeline นั้นไม่ได้ลดเวลาการ ท�ำงานในแต่ละค�ำสัง่ แต่ทำ� ให้หน่วยประมวลผล ท�ำงานทีละหลายค�ำสั่งพร้อมกัน โดย Pipeline จะไม่รอให้ค�ำสั่งก่อนหน้าท�ำงานให้ เสร็จเรียบร้อย แต่จะดึงค�ำสั่งต่อไปมาท�ำงาน ต่อจากค�ำสั่งก่อนหน้าทันที การท�ำงานของ Pipeline เทียบกับการท�ำงานแบบธรรมดาแสดง ดังรูปต่อไปนี้

รูปที่ 1 การท�ำงานแบบไม่มี Pipeline

รูปที่ 2 การท�ำงานแบบมี Pipeline www.pctodaythailand.com

17


Geek Programming รูปที่ 1 แสดงการท�ำงานแบบไม่มี Pipeline จะเห็นว่าหน่วยประมวลผลสามารถท�ำงานได้ 2 ค�ำสั่งเมื่อผ่านไป 10 Clock cycles ในขณะที่ การท�ำงานแบบที่ใช้ Pipeline ซึ่งแสดงในรูปที่ 2 พบว่าจ�ำนวนค�ำสั่งที่หน่วยประมวลผลสามารถ ท�ำได้เพิ่มเป็น 6 ค�ำสั่งเมื่อผ่านไป 10 Clock cycles

Branch Predictor

ถึงแม้ Pipeline จะช่วยเพิ่มความเร็วในการ ท�ำงานให้กับหน่วยประมวลผล แต่ Pipeline ยังสร้างปัญหาใหม่ขึ้นมาเช่นกัน หนึ่งในปัญหา โลกแตกที่หน่วยประมวลผลแบบ Pipeline ต้องประสบคือปัญหา Branch Hazard (อีกปัญหาคือ Data Hazard แต่เราจะไม่พูด ถึงกันในตอนนี้ครับ) Branch Hazard จะเกิดเมือ่ หน่วยประมวลผล ต้องท�ำงานกับค�ำสัง่ ทางแยก (Branch Instruction) ซึ่งมักเป็นการตรวจสอบค่าในหน่วยความจ�ำว่า ตรงตามเงื่อนไขหรือไม่ ถ้าไม่ตรงตามเงื่อนไข ให้ท�ำงานค�ำสั่งถัดไป แต่ถ้าตรงตามเงื่อนไข ให้ข้ามไปท�ำค�ำสั่งอื่น ตัวอย่างของ Branch Instruction ที่คุ้นเคยกัน เช่น JE (Jump if

18

PC Today VOL. 10 ISSUE 131

equal), JZ (Jump if zero), JNE (Jump if not equal), JNZ (Jump if not zero), JGE (Jump if greater or equal), JNL (Jump if not less), JLE (Jump if less or equal), และ JNG (Jump if not greater) ในการท�ำงานแบบ Pipeline นั้น หน่วย ประมวลผลจะอ่านชุดค�ำสัง่ ถัดไปทีอ่ ยูถ่ ดั จากค�ำสัง่ ทางแยกทันทีแม้วา่ การตีความและประมวลผล ของค�ำสั่งทางแยกยังท�ำงานไม่เสร็จ และเมื่อ ประมวลผลค�ำสั่งทางแยกเสร็จแล้ว อาจจะ ต้องมีการย้ายไปท�ำงานค�ำสั่งอื่นที่ไม่ใช่ค�ำสั่ง ทีถ่ กู อ่านเข้ามาก่อนหน้านี้ ท�ำให้หน่วยประมวลผล ต้องหยุดการท�ำงานชั่วคราว ลบค�ำสั่งที่อ่านเข้า มาหลังจากค�ำสั่งทางแยก จากนั้นจึงอ่านชุด ค�ำสั่งที่ถูกต้องเข้ามาแทน ซึ่งการจัดการกับ ปัญหา Branch hazard แบ่งได้คร่าวๆ 2 วิธีคือ Branch delay และ Branch Predictor Branch predictor คือวงจรที่ใช้ท�ำนายว่า ค�ำสั่งทางแยกนั้นจะต้องย้ายการท�ำงานไปที่ ค�ำสั่งไหนก่อนที่การตีความและการประมวลผล ของค�ำสั่งทางแยกยังท�ำงานไม่เสร็จ โดยหน่วย ประมวลผลจะเรียก Branch predictor เพื่อ ท�ำนายว่าค�ำสั่งทางแยกที่ก�ำลังประมวลผล อยู่นั้นจะย้ายไปท�ำงานที่ต�ำแหน่งใด และท�ำการ อ่านชุดค�ำสั่งตามที่ Branch predictor ท�ำนายไว้ แต่เมื่อขึ้นชื่อว่าเป็นการท�ำนายแล้ว ย่อมต้องมีความผิดพลาดเกิดขึ้นบ้าง และเมื่อ ความผิดพลาดเกิดขึ้น หน่วยประมวลจะต้อง ท�ำการล้างค�ำสั่งที่อ่านเข้ามาผิดออกทั้งหมด และเริ่มท�ำงานใหม่ในต�ำแหน่งที่ถูกต้องแทน


Geek Programming เพื่อให้คุณผู้อ่านเข้าใจเกี่ยวกับปัญหา Branch hazard และกระบวนการ Branch prediction มากขึ้น ขอให้คุณผู้อ่านลอง จินตนาการว่าตัวเองเป็นพนักงานสับสวิตช์ รางรถไฟเพื่อให้รถไฟเลี้ยวไปทางซ้ายหรือ ทางขวาดังรูปต่อไปนี้

ไว้ก่อนคือการที่หน่วยประมวลผลอ่านชุดค�ำสั่ง ตามที่ Branch predictor ได้ท�ำนายไว้นั่นเอง ซึ่งถ้าท�ำนายถูกจะท�ำให้รถไฟวิ่งต่อไปได้ทันที เปรียบได้กับการท�ำงานของหน่วยประมวลผลที่ เป็นไปอย่างราบรื่น แต่ถ้าท�ำนายผิดรถไฟก็ต้อง หยุดวิ่ง เปรียบได้กับการหยุดท�ำงานชั่วคราว และล้างค�ำสั่งที่อ่านผิดเข้ามาก่อนหน้านี้ จากนั้นจึงอ่านค�ำสั่งใหม่ที่ถูกต้องเข้ามาแทน

ย้อนกลับมาดูค�ำสั่ง if-else statement

เราลองท�ำ Disassembly โปรแกรมเจ้า ปัญหาของเรา และดูเฉพาะส่วนของค�ำสั่ง if จะได้ดังรูปต่อไปนี้

พนักงานสับรางรถไฟ อุปมาได้ เหมือนกับ Branch Predictor

ตามปกติเราก็ต้องรอให้รถไฟมาจอดที่ทาง แยก จากนั้นจึงให้พนักงานขับรถไฟแจ้งทางที่ จะไป แล้วเราค่อยสับสวิตช์ราง แต่เนื่องจาก การจอดรถไฟทั้งคันเป็นเรื่องล�ำบากพอสมควร เนื่องจากรถไฟมีน�้ำหนักและแรงเฉื่อยมหาศาล เราจึงคิดวิธีใหม่ในกระบวนการสับสวิตช์ราง คือ เราจะคาดการณ์ล่วงหน้าว่ารถไฟต้องการวิ่งไป ทางไหนและสับรางเตรียมไว้ก่อน ถ้าเรา คาดการณ์ถูกรถไฟจะสามารถวิ่งได้อย่าง ต่อเนื่องโดยไม่ต้องหยุด แต่ถ้าคาดการณ์ พลาดรถไฟก็ต้องหยุดและรอให้เราสับสวิตช์ รางใหม่ (และอาจโดนพนักงานขับรถไฟบ่นเอา ได้!) ตัวอย่างนี้เปรียบพนักงานสับรางรถไฟเป็น Branch predictor ที่ท�ำหน้าที่ท�ำนายว่ารถไฟ จะไปทางซ้ายหรือขวา และการสับรางเตรียมเอา

ลองถอดโค้ดด้านบนมาเป็น assembly

จะเห็นว่าค�ำสั่งส�ำหรับเปรียบเทียบ (cmp) อยู่ในบรรทัด 0x00401409 และค�ำสั่งทาง แยก (jle) อยู่ในบรรทัด 0x0040140E โดย จะสั่งให้ย้ายการท�ำงานไปยังค�ำสั่งในบรรทัด 0x00401427 เมื่อค่าที่อยู่ในตัวแปรมีค่าน้อย กว่าหรือเท่ากับ 16383 แต่ถ้าค่าที่อยู่ในตัวแปร มากกว่าหรือเท่ากับ 16384 จะท�ำงานในบรรทัด ถัดไปซึ่งก็คือบรรทัด 0x0040141 เมื่อหน่วย ประมวลผลพบค�ำสั่งทางแยก และเริ่มท�ำนาย ว่าโปรแกรมควรจะท�ำงานไปทางไหน ถ้าท�ำนาย ถูกบ่อยโปรแกรมจะท�ำงานได้เร็วขึ้น แต่ถ้า www.pctodaythailand.com

19


Geek Programming ท�ำนายพลาดบ่อยหน่วยประมวลผลจะต้องหยุด การท�ำงานชั่วคราว และท�ำการโหลดค�ำสั่งที่ ถูกต้องเข้าไปแทน ท�ำให้โปรแกรมท�ำงานช้าลง

สาเหตุที่ท�ำให้ Branch Prediction ท�ำงานพลาดบ่อย

Branch predictor มักท�ำนายการเกิด ทางแยกจากการดูว่าก่อนหน้านั้นเคยท�ำงานไป อย่างไรบ้าง แต่เนื่องจากโปรแกรมของเราสร้าง ข้อมูลในตัวแปรแถวล�ำดับจากการสุ่ม ท�ำให้ Branch predictor ไม่สามารถมองหารูปแบบ การเกิดทางแยกในโปรแกรมได้อย่างถูกต้อง ซึ่งส่งผลให้การท�ำงานโดยรวมช้าลง แต่เมื่อเราท�ำการเรียงข้อมูลในตัวแปรแถว ล�ำดับเสียก่อน จะท�ำให้ค่าในตัวแปรแถวล�ำดับ ช่วงครึ่งแรกมีค่าน้อยกว่า 16384 และค่าใน ตัวแปรแถวล�ำดับครึ่งหลังจะมีค่ามากกว่าหรือ เท่ากับ 16384 (กรณีที่เลขจากการสุ่มมีการ แจกแจงแบบยูนิฟอร์ม) การเรียงข้อมูลดังกล่าว จะช่วยให้ Branch predictor ท�ำนายได้แม่นย�ำ มากขึ้นเพราะลักษณะการท�ำงานแบบทางแยก เป็นไปในแนวเดียวกัน ถ้าคุณผู้อ่านยังไม่เข้าใจ ขอให้ลองพิจารณาจากตัวอย่างต่อไปนี้ ตัวอย่างแรกเป็นข้อมูลในตัวแปรแถวล�ำดับ ที่ไม่ได้เรียงล�ำดับ

ข้อมูลในตัวแปรแถวล�ำดับที่ไม่ได้ เรียงล�ำดับ จะเห็นว่าข้อมูลในตัวแปรแถวล�ำดับ

20

PC Today VOL. 10 ISSUE 131

กระจัดกระจายอย่างมาก ท�ำให้ Branch predictor ไม่สามารถท�ำนายได้ หรือพูดในแง่ คณิตศาสตร์คือ โอกาสที่ Branch predictor จะท�ำงานผิดพลาดคือ 50% ดังนัน้ หน่วยประมวลผล ต้องหยุดการท�ำงานและโหลดค�ำสั่งที่ถูกต้อง ใหม่เป็นจ�ำนวนประมาณครึ่งหนึ่งของการ ท�ำงานทั้งหมด ส่งผลให้การท�ำงานโดยรวมช้าลง ตัวอย่างที่สองเป็นข้อมูลในตัวแปรแถว ล�ำดับที่ได้หลังจากการเรียงล�ำดับ

ข้อมูลในตัวแปรแถวล�ำดับที่ได้ หลังจากการเรียงล�ำดับ

จะเห็นว่าข้อมูลถูกเรียงล�ำดับจากน้อยไป มาก ดังนั้นช่วงครึ่งแรกของการท�ำงานจะไม่มี การเข้าไปท�ำค�ำสั่งที่อยู่ในบล็อก if-else เพราะ ช่วงครึ่งแรกข้อมูลในตัวแปรแถวล�ำดับมีค่าน้อย กว่าเงื่อนไขที่ก�ำหนดไว้ แต่หลังจากผ่านเข้าครึ่ง หลังข้อมูลในตัวแปรแถวล�ำดับจะมีค่ามากกว่า เงื่อนไขที่ก�ำหนดและเข้าไปท�ำงานในบล็อก ifelse ตลอด ลักษณะดังกล่าวก่อให้เกิดรูปแบบที่ ท�ำให้ Branch predictor ท�ำงานได้แม่นย�ำมาก ขึ้น เพราะเมื่อเริ่มท�ำงานหลังจากผ่านไป 2-3 รอบ Brach predictor จะท�ำนายว่าครั้งต่อไป จะไม่มีการท�ำงานในบล็อก if-else โดยอิงจาก ลักษณะที่ไม่เข้าไปท�ำงานในรอบก่อนหน้าซึ่ง เป็นการท�ำนายที่ถูกต้อง เมื่อผ่าน เข้าช่วงครึ่งหลังของการท�ำงาน Branch predictor ที่ท�ำนายว่าจะไม่เข้าไป ท�ำงานในบล็อก if-else มาตลอดจะเริ่มท�ำนาย พลาด แต่เมื่อพลาดติดต่อกัน 2-3 รอบ Branch


Geek Programming predictor จะเปลี่ยนไปท�ำนายในทางตรงข้าม ซึ่งก็คือจะท�ำนายว่าต้องเข้าไปท�ำงานในบล็อก ท�ำให้ช่วงครึ่งหลังของการท�ำงาน Branch predictor ยังคงท�ำนายถูกเป็นส่วนมาก อย่างไรก็ตามความเร็วในการท�ำงานอาจ เพิ่มขึ้นมากหรือน้อยขึ้นอยู่กับชนิดของภาษาที่ ใช้เขียน ตัวแปลภาษา และสถาปัตยกรรมของ หน่วยประมวลผลด้วยครับ

ถ้าไม่อยากเสียเวลาเรียงข้อมูล จะแก้ไขอย่างไรไม่ให้ Branch predictor ท�ำงานพลาด?

ง่ายนิดเดียวครับ แค่ไม่ต้องไปใช้ค�ำสั่ง if-else แล้วเปลี่ยนโค้ดตรงส่วน if-else ให้ เป็นการท�ำงานด้วย bitwise operation ดังนี้

การใช้ bitwise operation แทน if-else

แค่นี้ก็ไม่ต้องกังวลกับปัญหา Branch predictor ท�ำงานผิดพลาดอีกต่อไป (แต่เปลี่ยน เป็นปัญหาว่าจะมีใครอ่านโค้ดรู้เรื่องบ้างนี่สิ) เป็นไงบ้างครับ เทคนิคการเขียนโปรแกรม เล็กๆ น้อยๆ ที่สามารถช่วยเหล่ากรรมกรโค้ดดิ้ง ให้ท�ำงานได้สะดวกมากขึ้น (รึเปล่า?) ไว้พบกับ เทคนิคใหม่ฉบับหน้า สวัสดีครับ

www.pctodaythailand.com

21


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.