หลังจากปล่อยให้คู่แข่งอย่าง Intel ทำตลาดซีพียูระดับเพาเวอร์ยูสเซอร์มาเป็นเวลานาน วันนี้ทาง AMD ก็มีข้อมูลสำคัญเกี่ยวกับโพรเซสเซอร์รุ่นล่าสุดในรหัส Barcelona ซึ่งเลื่อนการวางตลาดหลายครั้งหลายครา ซึ่งในซีพียู Barcelona นี้จะเป็นโพรเซสเซอร์ตัวแรกที่จะใช้สถาปัตยกรรมล่าสุดที่มีชื่อว่า K10 Micro-Architecture ก็เป็นเทคโนโลยีที่ทาง AMD คาดหวังและลงแรงไปกับสถาปัตยกรรมดังกล่าวนี้ค่อนข้างมากทีเดียว
โดยล่าสุดทาง AMD นั้น ได้สัญญาว่าจะเปิดตัวโพรเซสเซอร์ Quad-Core ที่ใช้งานร่วมกับ K10 Micro-Architecture นี้ ช่วงปลายเดือนสิงหาคมถึงกันยายน ซึ่งเราอาจจะได้เห็นซีพียูตัวนี้ วางตลาดแล้วก็เป็นได้ ตามรายงานนั้น ทาง AMD ได้ให้ข้อมูลว่าเจ้าโพรเซสเซอร์ Barcelona ตัวนี้ จะเข้าสู่ตลาด Server ก่อน เนื่องจากทางวิศวกร ไม่สามารถที่จะผลิตออกมาเป็น Mass Production ได้ทันการ เนื่องด้วยการผลิต Quad-Core ที่สัญญาณนาฬิกาสูงๆนั้น จะบริโภคพลังงาน TDP อย่างมหาศาล เกินกว่าที่เดสก์ทอปทั่วๆ ไปจะใช้งานได้ ซึ่งก็ต้องรอการพัฒนา (Revision) จนกว่าจะลดการใช้พลังงานลงมาในระดับที่สามารถจะใช้งานบนเดสก์ทอป ทั่วๆไปได้ และโพรเซสเซอร์ตัวแรกที่ AMD คาดว่าจะออกสู่ตลาดก็จะอยู่ใน Opteron Quad-Core Server 2.0GHz นั่นเอง
ในช่วงไตรมาสที่ 4 ทาง AMD ก็ได้ให้สัญญาว่าจะพัฒนา Opteron ตัวนี้ให้ไปวิ่งที่สัญญาณนาฬิการะดับ 2.4-2.5GHz พร้อมเปิดตัวตลาดเดสก์ทอปด้วย ซึ่งก็จะมีอยู่ทั้งหมดสองรุ่น ที่เป็น Quad-Core
* Phenom FX (รหัสพัฒนา Agena FX) 4 Cores, 2MB L3 Cache, สัญญาณนาฬิกาที่ 2.2-2.4GHz และมีสองซ็อกเก็ตให้เลือกคือ AM2+ และ F+
* Phenom X4 (รหัสพัฒนา Agena) 4 Cores, 2MB L3 Cache, สัญญาณนาฬิกาที่ 2.2-2.4GHz และใช้ซ็อกเก็ตเดียวคือ AM2+
ถัดมาในช่วงต้นปี 2008 นั้น ทาง AMD ก็จะเปิดตัวรุ่นเล็ก ที่ตัดฟีเจอร์บางอย่างออกไป
* Phenom X2 (รหัสพัฒนา Kuma) 2 Cores, 2MB L3 Cache, สัญญาณนาฬิกาที่ 2.2-2.6GHz และใช้ซ็อกเก็ตเดียวคือ AM2+
* Phenom X2 (รหัสพัฒนา Rana) 2 Cores, ไม่มี L3 Cache, สัญญาณนาฬิกาเริ่มที่ 2.2GHz และใช้
ซ็อกเก็ต AM2+
* Sempron (รหัสพัฒนา Spica) 1 Core, สัญญาณนาฬิกา 2.2-2.4GHz และใช้ช็อกเก็ต AM2+
เท่านี้ก็น่าจะเห็นภาพคร่าวๆ ของโพรเซสเซอร์ตัวถัดไปที่ทาง AMD จะปล่อยลงสู่ตลาดในปลายปีนี้แล้วนะครับ คราวนี้เราไปดูเจาะลึกในส่วนของโครงสร้างภายในของเจ้า K10 Micro-Architecture กันเลยครับ
Instructions Fetch
การทำงานของโพรเซสเซอร์นั้น เริ่มทำงานโดยการดึงชุดคำสั่งที่ต้องประมวลผลมาจาก L1 Instruction Cache และเริ่มแปลผลชุดคำสั่งนั้นๆ ซึ่งชุดคำสั่งของ X86 นั้น มีขนาดของชุดคำสั่งที่แตกต่างกันไป ตามแต่ละชุดของมัน ซึ่งทำให้โพรเซสเซอร์นั้น ยากที่จะกำหนดขอบเขตของช่วงชุดคำสั่งแต่ละชุด ทำให้การโหลดชุดคำสั่งแต่ละสัญญาณนาฬิกานั้น เป็นไปได้อย่างไม่มีประสิทธิภาพเท่าใดนัก ใน K8 และ K10 นั้น ทำการประมวลผลชุดคำสั่ง โดยการแปลงชุดคำสั่งขณะที่ชุดคำสั่งถูกโหลดลงบน L1I Cache และได้ติดป้ายบอกในทุกๆชุดคำสั่ง (3-bit แรกของแต่ละชุดคำสั่ง) เพื่อบอกขนาดของแต่ละชุดคำสั่ง เพื่อให้การประมวลผลชุดคำสั่งเป็นไปได้อย่างมีประสิทธิภาพ
สำหรับ K10 Micro-Architecture นั้น ได้มีการพัฒนาให้สามารถดึง (Fetch) ชุดคำสั่งจาก L1I Cache ได้มากกว่าเดิมเท่าตัว จาก 16-byte blocks ใน K8 เป็น 32-byte blocks ใน K10 เนื่องจากขนาดชุดคำสั่งในทุกวันนี้มีขนาดใหญ่ขึ้นกว่าเดิม ทำให้การขยายขนาดการดึงชุดคำสั่งช่วยลดปัญหาคอขวดได้เป็นอย่างดี
Branch Prediction
Branch Prediction ก็คือการคาดเดาของโพรเซสเซอร์ที่จะทำนายล่วงหน้าว่าการทำงานในคำสั่งถัดไปจะเป็นอย่างไร และก็จะดึงข้อมูลหรือชุดคำสั่งถัดไปมาเตรียมไว้ล่วงหน้า เพื่อป้องกันการเกิด Decoding Interruption ซึ่งใน K8 จะใช้ Two-level adaptive algorithm ที่จะทำนายข้อมูล โดยการย้อนกลับไปพิจารณาจากชุดคำสั่ง 8 ชุดก่อนหน้า และใช้การคำนวณ เพื่อหาผลลัพธ์ถัดไป ซึ่งอัลกอริธึมแบบนี้ ไม่สามารถใช้งานกับข้อมูลประเภท Indirect ได้ เพราะข้อมูลชนิดนี้จะใช้ Pointer ที่จะคำนวณหา Address ระหว่างประมวลผลทำให้ไม่สามารถทำนาย Address ของข้อมูลล่วงหน้าได้ ทำให้โพรเซสเซอร์ K8 นั้น ทำงานได้ช้ากับโค้ดจำพวก Object-Oriented
ใน K10 ได้มีการพัฒนา Conditional branch prediction algorithm ขึ้นมาจากเดิม
* มีการพัฒนา Prediction algorithm เพื่อข้อมูลประเภท Indirect โดยสร้างตารางขนาด 512 elements ในการคาดเดา
* เพิ่มขนาด Global history register ที่ใช้เก็บชุดคำสั่งก่อนหน้าจากเดิม 8 เพิ่มขึ้นเป็น 12
* เพิ่มขนาดของ Return-Address Stack จากเดิม 12 เป็น 24 ตำแหน่ง
การพัฒนาใน K10 นี้จะช่วยให้สามารถประมวลผลโค้ดจำพวก Object-Oriented ได้เร็วมากยิ่งขึ้น
โดยล่าสุดทาง AMD นั้น ได้สัญญาว่าจะเปิดตัวโพรเซสเซอร์ Quad-Core ที่ใช้งานร่วมกับ K10 Micro-Architecture นี้ ช่วงปลายเดือนสิงหาคมถึงกันยายน ซึ่งเราอาจจะได้เห็นซีพียูตัวนี้ วางตลาดแล้วก็เป็นได้ ตามรายงานนั้น ทาง AMD ได้ให้ข้อมูลว่าเจ้าโพรเซสเซอร์ Barcelona ตัวนี้ จะเข้าสู่ตลาด Server ก่อน เนื่องจากทางวิศวกร ไม่สามารถที่จะผลิตออกมาเป็น Mass Production ได้ทันการ เนื่องด้วยการผลิต Quad-Core ที่สัญญาณนาฬิกาสูงๆนั้น จะบริโภคพลังงาน TDP อย่างมหาศาล เกินกว่าที่เดสก์ทอปทั่วๆ ไปจะใช้งานได้ ซึ่งก็ต้องรอการพัฒนา (Revision) จนกว่าจะลดการใช้พลังงานลงมาในระดับที่สามารถจะใช้งานบนเดสก์ทอป ทั่วๆไปได้ และโพรเซสเซอร์ตัวแรกที่ AMD คาดว่าจะออกสู่ตลาดก็จะอยู่ใน Opteron Quad-Core Server 2.0GHz นั่นเอง
ในช่วงไตรมาสที่ 4 ทาง AMD ก็ได้ให้สัญญาว่าจะพัฒนา Opteron ตัวนี้ให้ไปวิ่งที่สัญญาณนาฬิการะดับ 2.4-2.5GHz พร้อมเปิดตัวตลาดเดสก์ทอปด้วย ซึ่งก็จะมีอยู่ทั้งหมดสองรุ่น ที่เป็น Quad-Core
* Phenom FX (รหัสพัฒนา Agena FX) 4 Cores, 2MB L3 Cache, สัญญาณนาฬิกาที่ 2.2-2.4GHz และมีสองซ็อกเก็ตให้เลือกคือ AM2+ และ F+
* Phenom X4 (รหัสพัฒนา Agena) 4 Cores, 2MB L3 Cache, สัญญาณนาฬิกาที่ 2.2-2.4GHz และใช้ซ็อกเก็ตเดียวคือ AM2+
ถัดมาในช่วงต้นปี 2008 นั้น ทาง AMD ก็จะเปิดตัวรุ่นเล็ก ที่ตัดฟีเจอร์บางอย่างออกไป
* Phenom X2 (รหัสพัฒนา Kuma) 2 Cores, 2MB L3 Cache, สัญญาณนาฬิกาที่ 2.2-2.6GHz และใช้ซ็อกเก็ตเดียวคือ AM2+
* Phenom X2 (รหัสพัฒนา Rana) 2 Cores, ไม่มี L3 Cache, สัญญาณนาฬิกาเริ่มที่ 2.2GHz และใช้
ซ็อกเก็ต AM2+
* Sempron (รหัสพัฒนา Spica) 1 Core, สัญญาณนาฬิกา 2.2-2.4GHz และใช้ช็อกเก็ต AM2+
เท่านี้ก็น่าจะเห็นภาพคร่าวๆ ของโพรเซสเซอร์ตัวถัดไปที่ทาง AMD จะปล่อยลงสู่ตลาดในปลายปีนี้แล้วนะครับ คราวนี้เราไปดูเจาะลึกในส่วนของโครงสร้างภายในของเจ้า K10 Micro-Architecture กันเลยครับ
Instructions Fetch
การทำงานของโพรเซสเซอร์นั้น เริ่มทำงานโดยการดึงชุดคำสั่งที่ต้องประมวลผลมาจาก L1 Instruction Cache และเริ่มแปลผลชุดคำสั่งนั้นๆ ซึ่งชุดคำสั่งของ X86 นั้น มีขนาดของชุดคำสั่งที่แตกต่างกันไป ตามแต่ละชุดของมัน ซึ่งทำให้โพรเซสเซอร์นั้น ยากที่จะกำหนดขอบเขตของช่วงชุดคำสั่งแต่ละชุด ทำให้การโหลดชุดคำสั่งแต่ละสัญญาณนาฬิกานั้น เป็นไปได้อย่างไม่มีประสิทธิภาพเท่าใดนัก ใน K8 และ K10 นั้น ทำการประมวลผลชุดคำสั่ง โดยการแปลงชุดคำสั่งขณะที่ชุดคำสั่งถูกโหลดลงบน L1I Cache และได้ติดป้ายบอกในทุกๆชุดคำสั่ง (3-bit แรกของแต่ละชุดคำสั่ง) เพื่อบอกขนาดของแต่ละชุดคำสั่ง เพื่อให้การประมวลผลชุดคำสั่งเป็นไปได้อย่างมีประสิทธิภาพ
สำหรับ K10 Micro-Architecture นั้น ได้มีการพัฒนาให้สามารถดึง (Fetch) ชุดคำสั่งจาก L1I Cache ได้มากกว่าเดิมเท่าตัว จาก 16-byte blocks ใน K8 เป็น 32-byte blocks ใน K10 เนื่องจากขนาดชุดคำสั่งในทุกวันนี้มีขนาดใหญ่ขึ้นกว่าเดิม ทำให้การขยายขนาดการดึงชุดคำสั่งช่วยลดปัญหาคอขวดได้เป็นอย่างดี
Branch Prediction
Branch Prediction ก็คือการคาดเดาของโพรเซสเซอร์ที่จะทำนายล่วงหน้าว่าการทำงานในคำสั่งถัดไปจะเป็นอย่างไร และก็จะดึงข้อมูลหรือชุดคำสั่งถัดไปมาเตรียมไว้ล่วงหน้า เพื่อป้องกันการเกิด Decoding Interruption ซึ่งใน K8 จะใช้ Two-level adaptive algorithm ที่จะทำนายข้อมูล โดยการย้อนกลับไปพิจารณาจากชุดคำสั่ง 8 ชุดก่อนหน้า และใช้การคำนวณ เพื่อหาผลลัพธ์ถัดไป ซึ่งอัลกอริธึมแบบนี้ ไม่สามารถใช้งานกับข้อมูลประเภท Indirect ได้ เพราะข้อมูลชนิดนี้จะใช้ Pointer ที่จะคำนวณหา Address ระหว่างประมวลผลทำให้ไม่สามารถทำนาย Address ของข้อมูลล่วงหน้าได้ ทำให้โพรเซสเซอร์ K8 นั้น ทำงานได้ช้ากับโค้ดจำพวก Object-Oriented
ใน K10 ได้มีการพัฒนา Conditional branch prediction algorithm ขึ้นมาจากเดิม
* มีการพัฒนา Prediction algorithm เพื่อข้อมูลประเภท Indirect โดยสร้างตารางขนาด 512 elements ในการคาดเดา
* เพิ่มขนาด Global history register ที่ใช้เก็บชุดคำสั่งก่อนหน้าจากเดิม 8 เพิ่มขึ้นเป็น 12
* เพิ่มขนาดของ Return-Address Stack จากเดิม 12 เป็น 24 ตำแหน่ง
การพัฒนาใน K10 นี้จะช่วยให้สามารถประมวลผลโค้ดจำพวก Object-Oriented ได้เร็วมากยิ่งขึ้น
Comment