Popular Posts

Sunday, February 24, 2013

หน่วยความจำ CACHE มีความสำคัญอย่างไร


หน่วยความจำ CACHE มีความสำคัญอย่างไร
 
หน่วยความจำที่ใช้กับแคช 
CACHE คือ หน่วยความจำขนาดเล็กที่มีความเร็วสูงซึ่งเก็บข้อมูล หรือคำสั่งที่ถูกเรียกใช้หรือเรียกใช้บ่อยๆ ข้อมูลและคำสั่งที่เก็บอยู่ใน CACHEซึ่งทำงานโดยใช้ SRAM (STATIC RAM) จะถูกดึงไปใช้งานได้เร็วกว่าการดึงข้อมูลจากหน่วยความจำหลัก (MAIN MEMORY)ซึ่งใช้DRAM (DYNAMIC RAM )หลายเท่าตัว 

การทำงานของ CACHE เป็นขั้นตอนดังนี้ 
โปรแกรมที่ทำงานโดยผ่านหน่วยประมวลผลกลาง (CPU) ได้ทำการเรียกข้อมูลหรือรหัสที่ CPU จำเป็นต้องใช้ RAM cache ซึ่งเป็นส่วนหนึ่งของวงจรหลักในเครื่องคอมพิวเตอร์ ได้รับสัญญานการเรียกข้อมูลในขณะที่คำสั่งการเรียกข้อมูลกำลังเดินทางไปยัง RAM และ cache จะทำการค้นหาข้อมูลจากRAM และส่งต่อข้อมูลไปยัง CPU ในการค้นหาข้อมูลครั้งแรกอาจจะใช้เวลานานโดยที่ตัว CPU ไม่สามารถทำงานอย่างอื่นได้ในเวลานั้น ในขั้นตอนการค้นหาข้อมูลนี้ cache จะทำการบันทึกข้อมูลที่ค้นพบไว้ใน high-speed memory chips ที่มีเฉพาะภายใน cache ในทันที่ cache ตรวจสอบพบว่า CPU ได้ทำงานเสร็จสิ้นและกำลังว่างอยู่ cache จะทำการค้นหาข้อมูลหรือรหัสของโปรแกรม ซึ่งอยู่ใกล้เคียงกับตำแหน่งของข้อมูลที่ทางโปรแกรมได้เรียกใช้ก่อนหน้านี้จาก memory address และจัดเก็บข้อมูลไว้ใน high-speed memory chips ครั้งต่อไปที่ทางโปรแกรมถามหาข้อมูลจากทางหน่วยประมวลผลกลาง(CPU) cacheจะตรวจสอบดูว่าข้อมูลที่โปรแกรมต้องการมีอยู่ใน high-speed memory chips แล้วหรือยัง ถ้ามีอยู่แล้ว cache จะส่งข้อมูลไปให้ CPUได้โดยไม่จำเป็นต้องผ่านหน่วยความจำหลักซึ่งมีการทำงานที่ช้ากว่ามาก ทำให้ CPU สามารถลดเวลาไร้ประสิทธิภาพ และทำงานได้มากขึ้น เมื่อ CPU ต้องการเปลี่ยนข้อมูลบางอย่างที่มีอยู่ในหน่วยความจำหลักอยู่แล้ว cache จะตรวจสอบดูก่อนว่าข้อมูลที่โปรแกรมต้องการจะเปลี่ยน มีการจัดเก็บอยู่ใน high-speed memory chips แล้วหรือยัง ถ้ามีอยู่แล้ว cache จะเปรียบเทียบข้อมูลที่มีอยู่เดิมกับข้อมูลใหม่ที่เปลี่ยนไป และจะส่งข้อมูลไปเฉพาะ memory address ใน หน่วยความจำหลัก ที่มีการเปลี่ยนแปลงข้อมูลจากข้อมูลเดิมใน high-speed memory chips ซึ่งจะเร็วกว่าการเปลี่ยนแปลงข้อมูลทั้งหมด 

ตัวอย่างการทำงานของ CACHE 
เมื่อหน่วยประมวลผล(CPU)ทำการอ่านข้อมูล มันจะตรวจสอบว่าข้อมูลที่ต้องการเรียกใช้นั้นมีอยู่ใน CACHE หรือไม่ ถ้ามี ข้อมูลก็จะถูกถ่ายทอดไปยังหน่วยประมวลผลอย่างรวดเร็ว เพราะไม่ต้องเรียกข้อมูลจากหน่วยความจำหลัก(DRAM หรือ RAM)ซึ่งจะใช้เวลานาน แต่ถ้าตรวจสอบแล้วไม่มีข้อมูลอยู่ใน CACHE หน่วยประมวลผลจะดึงข้อมูลจาก(DRAM หรือ RAM) จากนั้นจะทำสำเนาและเก็บข้อมูลไว้ใน CACHE ด้วย ถ้ามีการเรียกใช้ข้อมูลนี้อีก ข้อมูลจะถูกดึงจาก CACHE เมื่อต้องการเรียกใช้ข้อมูลที่มีอยู่ใน CACHE จะเรียกว่า HIT ประสิทธิภาพการทำงานของ CACHE ขึ้นอยู่กับอัตราการพบข้อมูล(HIT RATE) CACHEที่ดีคือ CACHEที่จำข้อมูลที่ถูกเรียกใช้บ่อยได้ดี บนบอร์ด 100 MHz ของ Intel ต้องใช้เวลาถึง 180 Nanosec เพื่อนำข้อมูลจากหน่วยความจำหลัก ในขณะที่ใช้เพียง 45 Nanosec ในการนำข้อมูลจาก CACHE ด้วยประสิทธิภาพที่ไม่น่าเชื่อของ CACHE ทำให้น่าจะใช้ CACHE มาเป็นหน่วยความจำหลักแทน แต่หน่วยความจำของ CACHE ใช้SRAM ซึ่งมีราคาสูงกว่า DRAM ที่ใช้ในหน่วยความจำหลัก ถึงประมาณ6เท่า ฉะนั้นทำให้การใช้ CACHE แทนหน่วยความจำหลักนั้นไม่คุ้มค่าเพราะทำให้สิ้นเปลืองสูง โดยอาจจะเปรียบเทียบได้กับ การลงทุนทำร้านขายของชำเพื่อที่จะเก็บสินค้าทุกประเภท ซึ่งเป็นการลงทุนที่ไม่คุ้มค่า 

ชนิดของ CACHE แบ่งเป็น 2 ชนิดดังนี้ 
-Level 1 (L1 CACHE) คือ CACHEที่สร้างลงบนchipCPU หรือเรียกอีกอย่างว่าinternal CACHE มีขนาดเล็ก อย่างเช่น ขนาด 8k สำหรับ chip 486, เพนเทียมและ เพนเทียมโปรมีอยู่ 16k ส่วนเพนเทียม MMX และเพนเทียม II มี CACHE L1ขนาด 32k -Level 2 (L2 CACHE) คือ CACHEที่อยู่ระหว่างCPU กับ DRAM หรือเรียกอีกอย่างว่า external CACHE แต่มีขนาดใหญ่กว่า CACHE ชนิด L1 มาก แต่ในปัจจุบันมี CACHE L2 ของคอมพิวเตอร์บางรุ่นอยู่บน Chip CPU เช่น Chip ของ intel Pentium IIเป็นต้น 

เทคโนโลยีและการพัฒนา CACHE 
CACHE L2 256k สามารถประหยัดเวลาในการทำงานของคอมพิวเตอร์เป็นจำนวนมากในการเก็บข้อมูลที่ใช้เป็นประจำ และการเพิ่ม CACHE L2 อีก 256k เป็น 512k จะช่วยในการเก็บข้อมูลของ CACHE L2 ได้มากขึ้น ปัจจุบันมี CACHE L2 ขนาด 1M ซึ่งใช้กับเพนเทียมโปรและในอนาคตจะมี CACHE L2 ขนาด 1Mและ 2M สำหรับเพนเทียมทู ออกมาซึ่งเป็นการพัฒนาของ CACHE L2อีกขั้นหนึ่งด้วย สำหรับ CACHE L1 นั้น ได้มีแผนการพัฒนาโดยจะขยายขนาดขึ้น คาดว่าจะออกสู่ตลาดภายในปลายปี2541นี้ และจะมีการผลิต CACHE L3 โดยทางบริษัท AMD คาดว่าจะนำเข้าสู่ตลาดภายในปลายปี2541 หรือต้นปี2542 ซึ่งCACHE L3 จะเป็น external cache และย้าย CACHE L2 เข้าไปอยู่ใน CPU โดยจะออกมากับชิป AMD K6+ 3D หรือ AMD K7 

Asynchronous Static RAM 
ถูกนำมาใช้เป็น cache ตั้งแต่ CPU 80386 มีความร็วในการเข้าถึงข้อมูลรวดเร็วกว่า DRAM ที่นิยมใช้กันมีอยู่ 3 รุ่น แบ่งตามอัตราความเร็วในการเข้าถึงข้อมูล มี 20, 15, 12 นาโนวินาที(ns) แต่ไม่สามารถที่จะทำงานที่ความเร็วเท่าๆกับความเร็วของ CPU ทำให้ CPU ต้องเสียเวลาคอยข้อมูล(Wait State)จาก SRAM 

Synchronous Burst Static RAM 
มีคุณสมบัติ Burst คือ ใช้สัญญาณนาฬิกาในการทำงานให้น้อยที่สุด โดยใช้สัญญาณนาฬิกาของตัวสแตติกหน่วยความจำเอง ในการอ่านข้อมูลที่ต่อเนื่องกัน สามารถรองรับความเร็วของสัญญาณนาฬิกาของระบบบัส 66 MHz ไม่ต้องเสียเวลาคอยข้อมูล(Wait State) ในท้องตลาดมีอยู่ 2 รุ่นคือ 8.5 และ 12 นาโนวินาที(ns) เหมาะกับ เมนบอร์ดเพนเทียม 

Pipelined Burst Static RAM (PB SRAM) 
มีหน่วยความจำรีจิสเตอร์พิเศษอยู่ในชิปหน่วยความจำ ช่วยให้สามารถที่จะโอนข้อมูลพร้อมๆกับการระบุตำแหน่งและ อ้างถึงข้อมูลในสแตติกหน่วยความจำตำแหน่งต่อไป สามารถรองรับความเร็วของสัญญาณนาฬิกาที่สูงสุด 133 MHz ในท้องตลาดมีอยู่ 2 รุ่นคือ 4.5 และ 8 นาโนวินาที(ns) เหมาะกับระบบใหม่ที่มีความเร็วของสัญญาณนาฬิกา 75 - 100 MHz
 

No comments:

Post a Comment