Architecture หรือสถาปัตยกรรมของคอมพิวเตอร์กลับมาในตอนที่ 2 มาดูกันต่อว่ายังมีอะไรที่ซ่อนอยู่อีกมากน้อยแค่ไหน ว่าแล้วก็ไปติดตามกันต่อได้เลย
หลังจากที่เราได้นำเสนอ Computer Architecture หรือสถาปัตยกรรมคอมพิวเตอร์ตอนแรกไปแล้วในบทความ Computer Architecture ในปัจจุบันมีอะไรบ้างและมันแตกต่างกันอย่างไร ในวันนี้เราจะขอนำความรู้ต่อเนื่องของ Computer Architecture หรือสถาปัตยกรรมคอมพิวเตอร์ มานำเสนอต่อให้ทุกท่านได้ทราบกันก่อนที่จะเข้าถึงหัวใจหลักของบทความชุดนี้อย่าง Microarchitecture ของหน่วยประมวลผลหรือ CPU ที่มีมากมายหลายชื่อในปัจจุบัน
ถามว่าทำไมเราถึงนำเสนอเรื่องของ Computer Architecture หรือสถาปัตยกรรมคอมพิวเตอร์นี้ให้ทุกท่านได้ทราบนั้น ทาง NBS ขอตอบไว้ ณ ตรงนี้เลยว่าเราอยากให้ทุกท่านได้รู้จักพื้นฐานการทำงานของคอมพิวเตอร์ที่มีมาอย่างยาวนานและยังคงไม่เปลี่ยนแปลงตั้งแต่อดีตจนถึงปัจจุบัน แน่นอนว่าในอนาคตนั้นอาจจะมีการเปลี่ยนแปลงเกิดขึ้นบ้าง ทว่าตลอดหลายสิบปีที่ผ่านมานี้แม้เทคโนโลยีจะพัฒนาไปไกลแค่ไหนแต่ Computer Architecture หรือสถาปัตยกรรมคอมพิวเตอร์ นั้นก็ยังคงเหมือนเดิมตั้งแต่มีคอมพิวเตอร์ออกมาให้เราๆ ท่านได้ใช้กัน
เอาเป็นอย่ารอช้าเตรียมพบกับความรู้ที่รู้แล้วรับรองว่าคุณจะเข้าใจหลักการทำงานของเครื่องคอมพิวเตอร์ไปอีกนานกันได้เลย ในบทความตอนที่ 2 นี้จะเข้มค้นขึ้นมากกว่าเดิมอย่างแน่นอน จะเป็นเช่นไรนั้นไปติดตามกันได้เลย
- สถาปัตยกรรมชุดคำสั่งหรือ Instruction set architecture (ISA)
- สถาปัตยกรรมไมโครหรือ Microarchitecture
- สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์ หรือ Client-server architecture
- สถาปัตยกรรมคำสั่งเดียว หลายข้อมูลหรือ Single instruction, multiple data (SIMD) architecture
- สถาปัตยกรรมมัลติคอร์หรือ Multicore architecture
สถาปัตยกรรมชุดคำสั่งหรือ Instruction set architecture (ISA)
สถาปัตยกรรมชุดคำสั่ง (ISA) เป็นสะพานเชื่อมระหว่างซอฟต์แวร์และฮาร์ดแวร์ของคอมพิวเตอร์ เจ้า ISA นี้จะทำหน้าที่เป็นมุมมองของโปรแกรมเมอร์บนเครื่อง คอมพิวเตอร์สามารถเข้าใจภาษาไบนารีเท่านั้น (0 และ 1) แต่มนุษย์สามารถเข้าใจภาษาระดับสูงได้ (if-else, while, เงื่อนไขและอื่นๆ ที่คล้ายคลึงกัน) ด้วยเหตุนี้ ISA จึงมีบทบาทสำคัญในการสื่อสารระหว่างผู้ใช้กับคอมพิวเตอร์โดยการแปลภาษาระดับสูงเป็นภาษาไบนารี
นอกจากนี้ ISA ยังสรุปสถาปัตยกรรมของคอมพิวเตอร์ในแง่ของกิจกรรมพื้นฐานที่ต้องสนับสนุน อย่างไรก็ตามมันไม่ได้เกี่ยวข้องกับคุณลักษณะเฉพาะของคอมพิวเตอร์ที่ใช้งาน สถาปัตยกรรมชุดคำสั่งกำหนดว่าคอมพิวเตอร์จะต้องช่วยเหลือด้านใดในการทำงานดังต่อไปนี้
- Arithmetic/logic instructions: คำสั่งเหล่านี้ดำเนินการองค์ประกอบการประมวลผลทางคณิตศาสตร์หรือตรรกะต่างๆ บนตัวถูกดำเนินการเดียวหรือหลายตัวเท่านั้น (ขึ้นกับอินพุตข้อมูล)
- Data transfer instructions: คำแนะนำเหล่านี้จะย้ายคำสั่งจากหน่วยความจำหรือไปยังการลงทะเบียนโปรเซสเซอร์(หรือในทางกลับกัน)
- Branch and jump instructions: คำแนะนำเหล่านี้จำเป็นต่อการขัดจังหวะลำดับตรรกะของคำสั่งและข้ามไปยังปลายทางอื่น
สถาปัตยกรรมไมโครหรือ Microarchitecture
Microarchitecture ต่างจาก ISA ที่มุ่งเน้นไปที่การดำเนินการตามคำสั่งที่จะดำเนินการในระดับที่ต่ำกว่า ซึ่งกลายเป็นอิทธิพลจากการออกแบบโครงสร้างของไมโครโปรเซสเซอร์
สถาปัตยกรรมไมโครเป็นเทคนิคที่สถาปัตยกรรมชุดคำสั่งรวมเอาโปรเซสเซอร์เข้าด้วยกัน ผู้เชี่ยวชาญด้านวิศวกรรมและนักวิทยาศาสตร์ด้านฮาร์ดแวร์ดำเนินการ ISA ด้วยสถาปัตยกรรมขนาดเล็กที่หลากหลายซึ่งแตกต่างกันไปตามการพัฒนาเทคโนโลยีใหม่ ดังนั้นโปรเซสเซอร์อาจได้รับการออกแบบทางกายภาพเพื่อดำเนินการชุดคำสั่งบางอย่างโดยไม่ต้องแก้ไข ISA
พูดง่ายๆ ก็คือสถาปัตยกรรมไมโครคือการจัดเรียงเชิงตรรกะที่สร้างขึ้นตามจุดประสงค์ของส่วนประกอบทางไฟฟ้าและเส้นทางข้อมูลของไมโครโปรเซสเซอร์ ช่วยให้สามารถปฏิบัติตามคำสั่งได้อย่างเหมาะสมที่สุด
และเจ้า Microarchitecture นี่ล่ะที่ถูกนำเอาไปรวมไว้ในหน่วยประมวลผลส่วนใหญ่ในปัจจุบันและมีความสำคัญเป็นอย่างมากซึ่งในบทความต่อไป(ตอนที่ 3) เราจะเจาะลึกถึง Microarchitecture อันนี้กันว่าแต่ละแบรนด์ที่ผลิตหน่วยประมวลผลมี Microarchitecture เป็นอย่างใดบ้าง
สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์ หรือ Client-server architecture
ไคลเอนต์หลายตัว (ตัวประมวลผลระยะไกล) อาจร้องขอและรับบริการจากเซิร์ฟเวอร์รวมศูนย์เดียวในระบบไคลเอนต์-เซิร์ฟเวอร์ (คอมพิวเตอร์โฮสต์) คอมพิวเตอร์ไคลเอนต์อนุญาตให้ผู้ใช้สามารถร้องขอบริการจากเซิร์ฟเวอร์และรับการตอบกลับของเซิร์ฟเวอร์ เซิร์ฟเวอร์รับและตอบสนองต่อข้อมูลที่ได้มาจากคำถามของไคลเอนต์
เซิร์ฟเวอร์ควรจะต้องจัดเตรียมอินเทอร์เฟซที่เป็นมาตรฐานและโปร่งใสให้กับผู้ใช้เพื่อไม่ให้ทราบถึงคุณสมบัติของระบบของผู้ใช้ (เช่นส่วนประกอบซอฟต์แวร์และฮาร์ดแวร์) ที่ใช้ในการให้บริการ ไคลเอนต์มักจะอยู่บนเดสก์ท็อปหรือโน๊ตบุ๊ค ในขณะที่เซิร์ฟเวอร์มักจะอยู่ที่อื่นบนเครือข่ายบนฮาร์ดแวร์ที่ทรงพลังกว่า สถาปัตยกรรมคอมพิวเตอร์นี้จะมีประสิทธิภาพสูงสุดเมื่อไคลเอนต์และเซิร์ฟเวอร์ปฏิบัติหน้าที่ตามที่กำหนดไว้ล่วงหน้าบ่อยครั้ง
หากจะให้ยกตัวอย่างง่ายๆ แล้วเจ้าสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์ หรือ Client-server architecture นั้นก็คือสถาปัตยกรรมการใช้คอมพิวเตอร์ที่มีการประมวลผลที่เซิร์ฟเวอร์แล้วส่งข้อมูลมาให้ผู้ใช้ได้ใช้งานเหมือนกันกับการเล่นเกมผ่านระบบ Cloud อย่างเช่น Xbox Cloud Gaming หรือ GeForce NOW นั่นล่ะครับ
สถาปัตยกรรมคำสั่งเดียว หลายข้อมูลหรือ Single instruction, multiple data (SIMD) architecture
ระบบคอมพิวเตอร์คำสั่งเดียวแบบหลายข้อมูล (SIMD) สามารถประมวลผลจุดข้อมูลหลายจุดพร้อมกันได้ ซึ่งสถาปัตยกรรมคอมพิวเตอร์แบบนี้ได้เปิดทางให้กับการสร้างซูเปอร์คอมพิวเตอร์และอุปกรณ์อื่นๆ ที่มีความสามารถด้านประสิทธิภาพในการประมวลผลขั้นเทพ ในรูปแบบการออกแบบนี้โปรเซสเซอร์ทั้งหมดได้รับคำสั่งที่เหมือนกันจากหน่วยควบคุมแต่ยังทำงานบนแพ็กเก็ตข้อมูลที่แตกต่างกัน หน่วยหน่วยความจำแบบแบ่งใช้ต้องใช้โมดูลจำนวนมากเพื่อโต้ตอบกับ CPU ทั้งหมดพร้อมกัน
สถาปัตยกรรมมัลติคอร์หรือ Multicore architecture
Multicore เป็นเฟรมเวิร์กที่ตัวประมวลผลทางกายภาพตัวเดียวมีตรรกะของตัวประมวลผลหลายตัว สถาปัตยกรรมแบบมัลติคอร์รวมแกนประมวลผลจำนวนมากไว้บนวงจรรวมเพียงวงจรเดียว เป้าหมายคือการพัฒนาระบบที่สามารถทำงานพร้อมกันได้มากขึ้น และปรับปรุงประสิทธิภาพของระบบโดยรวมซึ่งเราสามารถที่จะเห็นได้จากหน่วยประมวลผลในปัจจุบันอยู่แล้ว
จริงๆ แล้ว Computer Architecture หรือสถาปัตยกรรมคอมพิวเตอร์ทั้ง 5 ชนิดนั้นในปัจจุบันได้มีการนำมาใช้งานแบบผสมผสานกันหมด ดังนั้นหากจะบอกว่าคอมพิวเตอร์พีซีในปัจจุบันนั้นมีความก้าวหน้าจนสามารถที่จะบรรจุ Computer Architecture หรือสถาปัตยกรรมคอมพิวเตอร์ทั้ง 5 ชนิดรวมกันในเครื่องเดียวแล้วก็ไม่ผิดมากเท่าไรนัก ในตอนหน้าเราจะเข้าสู่ส่วนย่อยกว่านี้นั่นก็คือ Microarchitecture ที่จะมีประโยชน์เป็นอย่างมากสำหรับผู้ที่กำลังเลือกที่จะซื้อหน่วยประมวลผลใหม่ จะเป็นเช่นไรนั้นอีกไม่นานเกินรอได้พบกันแน่นอน
ที่มา : wikipedia, spiceworks, learncomputerscienceonline, w3schools, ecomputertips, techtarget