bluecomsci.files.wordpress.com · Web viewMain Memory and Cache. 5705100021 ชนิษฐา...
Transcript of bluecomsci.files.wordpress.com · Web viewMain Memory and Cache. 5705100021 ชนิษฐา...
Main Memory and Cache5705100021 ชนษฐา ผวคำา
5705100042 พชนพรรณ อนนตศพท
5705100044 สรฤกษ อศวศรวลาศ
5705100058 ณฐพล ฐตสร
5705100059 สรวช วฒนธญญาการ
5705100602 ธนชชา ศรอดร
บทคดยอ
Main Memory และ Cache เปนหนวยความจำา คอ Memory เชนเดยวกน เพยงแต Main Memory ออกแบบมาเพอใหเกบขอมล ทความเรวไมสงมากนก ในขณะทCache ออกแบบมาเพอใหเกบขอมลหรอชดคำาสงทมความเรวสงมาก ทถกเรยกใชบอยครง เมอชดคำาสงถกนำาไปใชใน Cache จะ
ทำาใหการทำางานเรวขนแตขณะเดยวกน Cache กมราคาสง แตMain Memory มราคาถกกวา เราควรเลอกหนวยความจำาทเหมาะกบการใชงาน
จรงๆเพอตามวตถประสงค
คำาสำาคญ : Main Memory , Cache , Memory
หนวยความจำาหลก (Main Memory) ของคอมพวเตอรหนวยความจำาหลก (Main Memory) คอ หนวยความจำาหลกเปนหนวยความจำาพนฐานในคอมพวเตอรทกเครอง เปนหวใจของการทำางานในรปแบบอตโนมต มหนาทเกบขอมลตางๆ ทปอนเขามาเพอใหหนวยประมวลผลนำาไปใช และเกบขอมลทเกยวกบคณสมบตและระบบการทำางานของเครองคอมพวเตอรดวยหนวยของขอมลทจดเกบในหนวยความจำาเรยกวาไบต (byte) 1 ไบต จะประกอบไปดวย 8 บต นอกจากนยงมหนวยเปนกโลไบต (kilobyte หรอ KB ) ซงมคาเทากบ 1,024 ไบต , เมกะไบต (megabyte หรอ MB) มคาโดยประมาณหนงลานไบต หรอ 1,024 KB , กกะไบต ( gigabyte หรอ GB ) มคาประมาณหนงพนลานไบตหรอหนงลานกโลไบตและเทราไบต ( terabyte หรอ TB ) มคาประมาณหนงลานลานไบต หนวยความจของขอมลในหนวยความจำาสรปไดดงน
8 bits = 1 byte1024 bytes = 1 kilobyte (KB)1024 KB = 1 megabyte (MB)1024 MB = 1 gigabyte (GB)1024 GB = 1 terabyte (TB)หนวยความจำาหลกทเปนทรจกกนอยางกวางขวางม 3 ประเภท คอ แรม (RAM) รอม (ROM) และซมอส (CMOS)
แรม (RAM)
Random access memory หรอ RAM เปนอปกรณหรอแผงวงจรททำาหนาทเกบขอมลและโปรแกรมคอมพวเตอร หนวยความจำาแรม บางครงเรยกวาหนวยความจำาชวคราว (volatile) ทงนเนองจากโปรแกรมและขอมลทถกเกบในหนวยความจำาแรมจะถกลบหายไป เมอปดเครองคอมพวเตอร ดงนนถาตองการเกบขอมลและโปรแกรมทอยในแรมไวใชงานในอนาคตจะตองบนทกขอมลเหลานน ลงในหนวยความจำาสำารอง (secondary storage) กอนทจะปดเครองคอมพวเตอรทกครง เครองคอมพวเตอรพกพาบางประเภทจะใชหนวยความจำา ทเรยกวา flash ROM หรอ flash memory ซงสามารถจดเกบขอมลและโปรแกรมไวได
รอม (ROM)
Read - 0nly memory หรอ ROM เปนหนวยความจำาทบนทกขอสนเทศและคำาสงเรมตน (start -up) ของระบบ คณสมบตเดนของรอมคอ ขอมลและคำาสงจะไมถกลบหายไป ถงแมวาจะปดเครองคอมพวเตอร หรอไมมกระแสไฟฟาหลอเลยงแลวกตาม
Cache คออะไร? และ ทมาของ CacheCache นน ถาวากนตามหลกการ มนกคอ หนวยความจำาชนดหนง ซงจะมความเรวในการเขาถงและการถายโอนขอมลทสง โดยจะมหนาทในการเกบ พก ขอมลทมการใชงานบอยๆ เพอเวลาท CPU ตองการใชขอมลนนๆ จะไดคนหาไดเรว โดยทไมจำาเปนทจะตองไปคนหาจากขอมลทงหมด
เปรยบเทยบกนงายๆ กเหมอนกบการอานหนงสอ แลวเวลาทเจอขอความทนาสนใจ กทำาการจดบนทกไวทสมด แลวเมอเวลาตองการขอมลนนๆ กสามารถคนหาจากในสมดจดไดงายกวาเปดหาจากหนงสอทงเลม แนนอน ขอมลทจดลงในสมดนน มขนาดนอยกวาในหนงสอแนๆ คงไมมใครทจะลอกขอมลทกบรรทด ทกหนาของหนงสอ ลงในสมดจดเปนแนแท
ในปจจบน เราจะพบการใชงาน Cache อย 2 แบบ นนกคอ Memory Cache และ Disk Cache โดยทหลกการทำางานของทง 2 ชนดนกคลายๆ กนกลาวคอ Disk Cache นน จะเปนการอานขอมลทตองการใชงานเขามาเกบไวในหนวยความจำาหลก เมอ CPU มการเรยกใชงาน กจะเขาไปคนหาในหนวยความจำาหลกกอน หากวาไมพบจงจะไปคนหาใน Harddisk ตอไปในกรณของ Memory Cache นน เปนอกลำาดบขนหนงถดจาก Disk Cache นนกคอ จะทำาการดงขอมลทมการเรยกใชงานบอยๆ เขามาเกบไวในหนวยความจำา ขนาดเลก ทมความไวสงกวาหนวยความจำาหลก เมอ CPU ตองการใชงาน กจะมองหาขอมลทตองการท หนวยความจำาขนาดเลกนนกอน กอนทจะเขาไปหาในหนวยความจำาหลกท มการเขาถงและการสงถายขอมลทชากวาตอไป และ หนวยความจำาขนาดเลกๆ นน เรากเรยกมนวา Cache นนเอง
สำาหรบในบทความน เราจะพดถงเรอง Memory Cache กนอยางเดยว เพราะฉะนนผมจะขอเรยกแคสนๆวา Cache กขอใหเปนอนเขาใจตรงกนนะครบ วามนหมายถง Memory Cache
Cache นน ตำาแหนงของมน จะอยระหวาง CPU กบ หนวยความจำาหลก โดยมนจะทำาการดง หรอ เกบขอมลทมการเรยกใชงานบอยๆ จากหนวยความจำาหลก ซงความไวในการอาน หรอ สงถายขอมลจาก Cache ไปยง CPU หรอ จาก CPU
ไปยง Cache นน จะทำาไดเรวกวา จากหนวยความจำาหลกไปยง CPU หรอจาก CPU ไปยงหนวยความจำาหลก มาก เพราะทำาดวย SRAM ซงมความไวสง และมราคาแพงกวาหนวยความจำาของระบบทเปน DRAM อยมาก และกเพราะราคาทแพงน ทำาใหขนาดของ Cache ทใชในระบบ จงมขนาดนอยกวาหนวยความจำาหลกอยมากเชนกน
DRAM หรอ Dynamic RAM นนจะทำาการเกบขอมลในตวเกบประจ ( Capacitor ) ซงจำาเปนจะตองมการ refresh เพอ เกบขอมลใหคงอย โดยการ refresh น ทำาใหเกดการหนวงเวลาขนในการเขาถงขอมล และกเนอง จากทมนตอง refresh ตวเองอยตลอดเวลานเอง จงเปนเหตใหไดชอวา Dynamic RAM
สวน SRAM นนจะตางจาก DRAM ตรงทวา DRAM จะตองทำาการ refresh ขอมลอยตลอดเวลา แตในขณะท SRAM จะเกบขอมลนนๆ ไว และจะไมทำาการ refresh โดยอตโนมต ซงมนจะทำาการ refresh กตอเมอ สงใหมน refresh เทานน ซงขอดของมน กคอความเรว ทเรวกวา DRAM ปกตมาก แตกดวยราคาทสงกวามาก จงเปนขอดอยของมนเชนกน
จากทกลาวมาขางตน กดเหมอนวา Cache นน มความสำาคญ ตอความเรวของระบบอยไมใชนอย แลวทำาไมเราถงเพงจะใหความสำาคญกบมนละ? เพราะวา เพงมการใช Cache กบ CPU รนใหมๆ อยางนนหรอ?
เปลาเลย จรงๆแลว เรามการใช Cache มาตงนานแลว ตงแตรน 80486 ซงสมยนนทาง Intel กไดเรมมการใส Cache ใหกบ CPU ของตน โดยเรมใสขนาด 8KB ในรน 486DX-33 และ ไดทำาการเพมเปน 16KB ในรน 486DX4 เปนตนมา ซง Cache ทใสไปนน ไดใสเขาไปในแกนหลกของ CPU เลย ทำาใหการตดตอระหวาง CPU กบ Cache นน ทำาไดเรวมาก และมการใช Cache อกขนหนง โดย
ใสไวท Mainboard ซงจะมขนาดทใหญกวา แตชากวา Cache ทใสไวในแกน CPU
เมอ CPU ตองการขอมลใดๆ กจะทำาการคนหาจาก Cache ทอยภายในแกน CPU กอน หากวาพบขอมลทตองการ ( เรยกวา Cache Hit ) กจะดงขอมลนนๆ มาใชงานไดเลย แตหากไมพบ ( เรยกวา Cache Miss ) กจะทำาการคนหาในสวนของ Cache ทอยบน Mainboard ตอไป และ หากวายงไมพบอก กจะไปคนหาในหนวยความจำาหลกตอไปอกขน และหากวาในหนวยความจำาหลกนน กยงไมมขอมลทตองการ กจะไปคนหาตอใน Harddisk ตอไป
ดวยตำาแหนงในการเกบ Cache ทตางกน และ ลำาดบขนในการเรยกใชงานตางกน จงเรยก Cache ทอยในแกนของ CPU วา Internal Cache หรอ Level 1 Cache ( L1 Cache ) และ เรยก Cache ทอยบน Mainboard นนวาเปน External Cache หรอ Level 2 Cache ( L2 Cache )
ตอมา ใน CPU รน Pentium ของ Intel นน กไดทำาการแบง Cache ภายใน ออกเปน 2 สวนเพอแยกการทำางานกน ซงกไดแบงจาก 16KB น ออกเปน 8KB เพอใช เกบคำาสงตางๆ เรยกวา Instruction Cache และ อก 8KB เพอใชเกบขอมลตางๆ เรยกวา Data Cache
และตอมา CPU ในรน Pentium II ของทาง Intel นน กไดมการเปลยนแปลงตำาแหนงการเกบ Cache ระดบ 2 ซงจากปกตจะจดเกบไว บน Mainboard กทำาการยาย มาเกบไวบน Package เดยวกบ CPU ( CPU Intel Pentium II นน จะมลกษณะเปน Cartridge แผนกวางๆ ม CPU อยตรงกลางและ เกบ Cache ไวขางๆ แลวรวมกนเปน Package เดยวกน เรยกวา Single Edge Contact Cartridge หรอ SECC แตกยงคงเรยก Cache ทอยบน SECC วาเปน External Cache หรอ Level 2 Cache เชนเดม เพราะยงคง อย
ภายนอกตว CPU เพยงแคอยบน Package เดยวกนเทานน
แตดวยราคาทสงมากของ CPU Pentium II ในสมยทเพงวางตลาดนน ทำาใหมผทมอำานาจในการซอมาใชงานนอย ทาง Intel จงไดตด Cache ระดบ 2 ออก จาก Pentium II เพอลดตนทนการผลต และ เปลยนรปแบบ Package ใหดบางลง แลวเรยก CPU ใหมนวา Celeron และ เรยก Package ของ Celeron วา Single Edge Processor Package
จากทกลาวมาแลวขางตนมาแลววา Cache นนมราคาสง เพราะฉะนน เมอตด Cache ระดบ 2 ออกทำาใหราคาของ Celeron ถกกวา Pentium II อยมาก และ ทาง Intel กหวงจะใช Celeron ทราคาถกนน ตตลาดระดบกลาง และ ระดบลาง
แตแลวกฝนสลาย เพราะ Celeron ทไมม Cache นน ในดานการเลนเกมส ทไมมการเรยกใช Cache เทาไร ทำาคะแนน หรอ มความสามารถ เทยบเทากบ Pentium II ทระดบความเรวเทาๆ กน แต ในงานดาน Office Application เชน Microsoft Word, Microsoft Excell กลบทำาไดแยมากๆ จากทเหนกคอ Celeron ทความเรว 300 MHz นน เมอใชงานกบ Application ดงกลาว กลบชากวา Pentium MMX 233 เสยอก ทำาให Celeron รนดงกลาวไมไดรบความนยมเทาใดนก
ทาง Intel จงไดผลต Celeron รนใหมทไดเตม Cache ระดบ 2 เขาไปดวย โดยใหมขนาดเพยง 1/4 ของ Pentium II แตใหทำางานดวย ความเรวเทากบ ความเรวของ CPU ( Cache ระดบ 2 ของ Pentium II นนจะทำางานทความเรวเพยงครงหนงของความเรว CPU ) และเพยงแคเพม Cache ระดบ 2 เขาไปนเอง ผลคะแนนทไดจากการทำางานกบ Application ดงกลาวนน กลบเพมขนมามาก ตางจาก รนเดมทไมม Cache อยางเหนไดชด
นเปนจดหนงละนะ ททำาให Cache เรมเปนทสนใจ มากขน แตยงไมหมดเทาน อกจดหนงททำาใหเรองของ Cache นน เปนทกลาวถง กนมากขนในขณะน เกดจากการประกาศตวของ AMD K6-III
AMD K6-III มอะไรด ถงทำาใหเรองของ Cache เปนทนาสนใจนก อนนคงตองเทาความกลบไปอกสกนดหนงกอน วา CPU ของ AMD นนกมการใช Internal Cache และ External Cache เชนเดยวกบ CPU ของ Intel มาโดยตลอด เมอ Intel เปลยนสถาปตยกรรมใหม เอา Cache ไปไวบน Package ของ CPU และไมมการใช Cache บน Mainboard อกตอไป แตทาง AMD กยงคงใชงานบน สถาปตยกรรมเดม คอม Internal Cache ภายใน CPU และม External Cache อยบน Mainboard เรอยมา จนถงรน AMD K6-2
พอมา AMD K6-III ( หรอกคอ AMD K6-3 แตมการเปลยนชอ เพอใหสอดคลองกบ Intel Pentium III ) ทาง AMD กไดทำาการ เพม Cache เขาไปท Package ของ CPU บาง ( แตไมไดรวมเขาไปในแกนของ CPU ) และ กยงคงใหม Cache บน Mainboard เชนเดม ดงนน จงเกดมการใชงาน Cache ถง 3 ระดบดวยกน ( เรยกวา Tri-Level Cache ) โดย ระดบแรกสดนน กคอ Cache ทอยภายในแกนของ CPU เลย ระดบถดมา กอยบน Package ของ CPU และ ระดบสดทายอยบน Mainboard ซงขนาดของ Cache กจะมากขนตามลำาดบ ในขณะทความเรวในการใชงานกลบลดลงตามลำาดบ
และนเอง จงทำาใหเรองของ Cache นนเปนทนาสนใจยงนก ทงเรองทวา ขนาดของ Cache ทมใน Celeron มนอย แตทำางานดวยความเรวสง เทากบความเรว CPU สวน Pentium II ม Cache มากกวา Celeron แตทำางานดวยความเรวเปนครงหนง ของ CPU อยางไหนสำาคญกวากน ขนาด หรอ ความเรว? และ เรองของ Tri-Level Cache ใน AMD K6-III นน จะทำาใหระบบเรวขนจรงไหม? ม Cache หลายระดบดกวาไหม?
เราจะมาดกนตอไป ถงรายละเอยด และ ความสำาคญของ Cache ในแตละระดบกนตอไป
Cache ระดบ 1 ( Level 1 cache )
Cache ระดบ 1 นน จะเปนสวนทสำาคญทสด และตำาแหนงของมนกจะอยใกลๆ กบตว CPU ทสด ทำาให CPU สามารถเขาถงไดรวดเรวมาก ซงโดยปกตแลวขนาดของมน กจะไมใหญนก เชน สำาหรบ CPU Intel Pentium II หรอ Intel Celeron จะม L1 Cache ขนาดเพยง 32 KB และ บน AMD K6-2 จะมขนาด 64 KB ซงถงแมวาจะมขนาดเพยง เลกนอย แตกมความสำาคญมาก
ลองดผลการทดลองประกอบ เพอดความสำาคญของ Cache ทง 2 Level นะครบ
AMD K6-2 350MHz บน ASUS P5A ( L2 512KB )
PC100 SDRAM 1x128 MB
Matrox Millenium G200 8 MB Display Card Driver Version 4.26
ทดสอบโดย Program Final Reality 1.01 บน Windows 98 / DirectX 6.0
ทดสอบ 4 ครง โดยทดสอบ ครงท 1 L1 on L2 on, ครงท 2 L1 on L2 off, ครงท 3 L1 off L2 onและ ครงสดทาย L1 off L2 off
ผลทไดจากการทดสอบเปนดงกราฟนครบ
จากรป จะเหนวา เมอ disable L1 cache แลว Performance จะ drop ลงอยางเหนไดชดๆ เลย และ เชนกน เมอ disable L2 Cache แลว Performance ก drop ลงเชนกน แตกยงเหนผลไดไมชดเจนเทากบการ disable L1 Cache
เอาละ ทนดผลการทดสอบอยางไมเปนทางการของผมประกอบนะครบ
Intel Pentium II 300 MHz ( L1 32KB, L2 512 KB ) บน DFI LX ( ท office )
PC 66 SDRAM 1x32 MB
ทดสอบโดย Wintum 98 version 1.0.33
การทดสอบ
Memory Performance ( MB/s )
L1:on, L2:on
636.0284
L1:on,
538.4206
L2:off
L1:off, L2:on
*
L1:off, L2:off
*
หมายเหต * หมายถง ใชเวลาในการ boot นานมาก ( มากกวา 5 นาท ) และ เมอเรยก Program กคางไปเลย ( ไม hang แตนานมาก กเลยไมไดทดสอบ )
จากผลการทดลองขางตน ทง 2 การทดลอง กพอจะสรปกนไดแลวนะครบ ถงความสำาคญของ Level 1 Cache และ Level 2 Cache โดยเฉพาะอยางยง กบ Level 1 Cache นน เมอผมปดการใชงานของมนท BIOS เทานนหละ ( Disable Level 1 Cache ) กวาจะ boot ทนงกนานเลย กวาจะทำาอะไรๆ กลำาบาก จะขยบ mouse ยงยากเลยครบ พอเรยก program กรอกวา 5 นาท ถงจะขนหนาจอมา ยงถา เปน mode ท disable ทง L1 และ L2 cache นน พอเรยก program กหยดนงไปเลย
Level 1 cache นน จะทำางานดวยความเรวทเทากบ CPU เลย ( คงเพราะฝงอยในตว CPU ) และ สำาหรบกวาทวา ยงม Cache มากๆ กจะยงเรวกวา แนนอนวา คำากลาวนเปนจรง แตกไมใชทงหมดทกกรณ เพราะวามองคประกอบอนๆ ดวย ดงจะเหนไดจาก L1 cache ของ Intel Pentium II ซง ม ขนาดเพยง 32 KB แตมการเขาถงได 4 ทศทาง ( 4 way associative ) ในขณะท AMD K6-2 จะม L1 cache ขนาด 64 KB แตม การเขาถงไดเพยง 2 ทศทาง ( 2 way
associative ) ซงในกรณของการเขาถงแบบสมนน Intel จะทำาไดเรวกวา AMD
Cache ระดบ 2 ( Level 2 cache )
สวนถดมาในการคนหาขอมลของ CPU เมอคนหาใน Cache ระดบ 1 ไมพบ กคอ Cache ระดบ 2 ซง ขนาดของ Level 2 Cache นน กจะตางกน ตามรน และ ชนดของ CPU นนๆ ซง กแนนอน จะมความของความเรวแตกตางกนไปดวย
จากทกลาวมาแลวเมอตอนตนๆ ถงเรองของ Celeron กบ Pentium II ทวา Celeron นนม Cache ระดบ 2 เพยง 128 KB แตทำางานดวยความเรวเทาๆ กบ CPU สวน Pentium II จะม Cache ระดบ 2 ถง 512 KB แตทำางานดวย ความเรวเพยง ครงหนงของความเรวของ CPU แลวอยางไหน สำาคญกวากน ความเรว หรอวาขนาด
เราจะมาดผลการเปรยบเทยบประสทธภาพกนระหวาง Pentium II กบ Celeron ซงดจะยตธรรม และ เปนกลางทสด เพราะวา ตางกใชแกนของ CPU เหมอนๆกน จะตางกนกเพยงแคขนาด และ ความเรวของ Cache ระดบ 2 เทานน
ใหสงเกตทรปขางลาง 2 รปตอไปน ซงเปนกราฟแสดงผลเปรยบเทยบ Performance ระหวาง Pentium II 300 และ Celeron 300A ดวย Mainboard ASUS P2B สวน spec อนๆ กตามทกลาวไวแลวขางตน ( ตอนทดสอบ K6-2 )
แสดงผลการเปรยบเทยบระหวาง ขนาด และ ความเรวของ L2 cache ดวย Winstone
แสดงผลการเปรยบเทยบระหวาง ขนาด และ ความเรวของ L2 cache ดวย Quake II
จะเหนไดวา ม Level 2 Cache มากๆ นน ให Performance ทดกวาจรงๆ แตกไมมากนก เหนผลไมชดเจน เมอเทยบ กบ Celeron ทม Level 2 Cache ทเรวๆ
อยางไรกตาม ขนาดของ Level 2 cache นน กยงเปนจดหลกสำาคญของ Performance เพอลดการ access disk โดยการอานขอมลมาเกบไวท RAM และนำาสวนสำาคญๆ ทใชบอยๆ มาเกบท Cache นน ถา Cache มขนาดทใหญๆ การทจะตองอานขอมลจาก RAM ซงชากวา Cache นน กทำาไดดกวา ยงกบระบบ Network-File-Server นน ยงม Cache มากๆ และ เรวๆ จะยงด ดงนน Intel Pentium II Xeon จงม L2 Cache 512K หรอมากกวานน และ
ทำางานทความเรวเทาๆ กบ CPU
สำาหรบ AMD K6, K6-2 นน ใช cache ซงอยบน Mainboard ซง ความเรวสงสด กตาม FSB ทใช เชน K6-2 300 MHz นน Level 2 Cache กจะม ความเรว ท 100 MHz ( FSB 100 MHz ) แต Intel Pentium II - 300 MHz นน จะม Level 2 Cache ทความเรว 150 MHz และ Celeron 300A จะม Level 2 Cache ทมความเรวถง 300 MHz ซงสำาหรบ AMD K6-2 กบ Pentium II นน ดไมแตกตางเทาไร แตหากวา เปน Pentium II 400 ละ จะม Levl 2 Cache ททำางานท 200 MHz ในขณะท AMD K6-2 400 MHz กยงใช Cache ททำางานดวยความเรว 100 MHz เชนเดม นนกเปนสวนสำาคญจดหนงททำาใหผล Performance ในเรอง Memory Performance ของ AMD ดอยกวา Intel Pentium II และ Celeron
แตในสำาหรบ AMD K6-3 นน ทาง AMD ไดรวม Level 2 cache เขากบ Package เดยวกบ CPU เลย โดยเกบฝงไวบนตวของ CPU เชนเดยวกบ Celeron แตมขนาดเปน 2 เทา และ ทำางานทความเรวเทาๆ กบ CPU ซงกทำาให AMD K6-3 นน ม L2 cache มากกวาถง Celeron 2 เทา และ ม Level 2 cache ทความเรวเปน 2 เทาของ Pentium II ( ทความเรวเทาๆกน )
มาดความสำาคญของ Levl 2 cache จากการทดลองอนๆ บางนะครบ อนนเปนการทดลองของทางบรษท Level 2 Company กนนะครบ โดยใช Program Ziff-Davis' Ver. 3.0 program MAC version ( ทดสอบกบเครอง Mac ) โดยทดสอบกบ L2 cache ขนาด 256 KByte และ 1024 KByte โดยผลทไดน เปน เปอรเซนตทเพมขนจากการทไมม L2 cache
256 K 1,024 K
Processor 30% 57%
Graphics Mix 27% 44%
Publishing Graphics Mix 38% 95%
QuickDraw Routines
Copy Bits 40% 70%
Text 47% 86%
Lines 49% 117%
กเปนผลไวดคราวๆนะครบ เพราะเปนผลบนเครอง Mac แตผลทไดกสามารถใชเปนขอสรปไดเชนกนถงความสำาคญ ของ Cache ไดเชนกน
Cache ระดบ 3 ( Level 3 cache )
AMD K6-III นน มจดทนาสนใจมากๆ อยางหนง นนกคอ K6-III นนจะม Level 2 cache ฝงอยใน chip CPU มาดวย แตในขณะเดยวกน Mainboard ทใชสำาหรบ AMD K6-III นน กม Cache มาใหดวย ทำาให มนมอง Cache บน Mainboard นนๆ เปน Cache ระดบ 3 ( Level 3 Cache )
ทน เรามาลองดกนวา ถาม Cache ระดบ 3 แลว Performance จะเพมขน หรอ ลดลงอยางไร และ ขนาดของ Cache ระดบ 3 นนจะตองเปนเทาไร โดยจากรปน เปนการทดลองจาก Tom's Hardware เปรยบเทยบใหเหนถงผลของการม Cache ระดบ 3 ท ขนาดตางๆ โดยทดสอบกบ CPU AMD K6-III ( เพราะเปนรนเดยวในปจจบนทมการใชงาน Cache ถง 3 ระดบ )
จากกราฟ กคงจะเหนถง Performance ทเพมขนเมอม Cache ระดบ 3 และ Performance ทเพมขน กบ ขนาดของ Cache ระดบ 3 แลวนะครบ แตจะเปนเชนนกบทกกรณหรอไม เรามาลองวเคราะหกนดดกวานะครบ
ถาผมกำาหนดให เวลาทใชในการอานขอมลจากแหลงตางๆ เปนดงน
Cache ระดบ 1 1 หนวยเวลา ( Unit )
Cache ระดบ 2 10 หนวยเวลา ( Unit )
Cache ระดบ 3 ขนาด 512 K
100 หนวยเวลา ( Unit )
Cache ระดบ 3 ขนาด 1,024 K
200 หนวยเวลา ( Unit )
Cache ระดบ 3 ขนาด 2,048 K
400 หนวยเวลา ( Unit )
หนวยความจำาหลก 1,000 หนวยเวลา ( Unit )
เมอ CPU ตองการขอมลเพอการประมวลผล กจะมองหาขอมลทตองการดงกลาวเสยกอน จากใน Cache ระดบ 1 ซงถาหาพบ กจะใชเวลาเพยง ไมเกน 1 หนวย แตถาไมพบ กจะไปมองหาท Cache ระดบ 2 ตอไป ถาหาพบ กจะใชเวลาไมเกน 11 หนวยเวลา ( 1+10 ) แตถาหาไมพบ กตองเสยเวลา มากกวา 11 หนวยเวลาเพอไปคนหาในหนวยความจำาหลก หรอ ใน Cache ระดบ 3 ตอไป
ถาไมม Cache ระดบ 3 การหาขอมลนน เมอหาจากใน Cache ทงระดบ 1 และ ระดบ 2 ไมพบ กจะเขาไปหาทหนวยความจำาหลกตอไป ซงถาพบ กจะใชเวลามากกวา 11 ( 1+10 ) หนวยเวลา แตไมเกน 1,011 ( 1+10+1,000 ) หนวยเวลา แตถาม Cache ระดบ 3 กจะทำาการเขาไปคนหาใน Cache ระดบ 3 ตอไป ซงเวลาทใช กขนอยกบขนาดของ Cache ระดบ 3 นนดวย ซงถาหาพบใน Cache ระดบ 3 กจะใชเวลาทมากกวา 11 หนวยเวลา แตนอยกวา 111 ( 1+10+100 ) หนวยเวลา สำาหรบ Cache ระดบ 3 ขนาด 512KB และ นอยกวา 211 ( 1+10+100 ) สำาหรบ Cache ระดบ 3 ขนาด 1,024 KB และ นอยกวา 411 ( 1+10+400 ) สำาหรบ Cache ระดบ 3 ขนาด 2,048KB ซงจะสงเกตไดวา ถาสามารถหาขอมลพบใน Cache ระดบ 3 นน เวลาทใชงาน กนอยกวา การทไมม Cache ระดบ 2 อยมากกวาเทาตว
แตถาไมพบละ? ถาไมพบขอมลทตองการใน Cache ระดบ 3 กจะเสยเวลาในการคนหาทมากขน กอนทจะไปคนหาในหนวยความจำาหลกตอไป ซงตรงจดนเอง กเปนผลทำาให Performance ทไดลดลง แตอยางไรกตาม การทม Cache ระดบ 3 ขนาดใหญนน โอกาสทจะทำาใหคนหาขอมลทตองการ นนกมากขน
สำาหรบอตราสวนระหวาง Level 2 ตอ Level 3 นนกมสวนสำาคญ เชนเดยวกนกบ อตราสวนระหวาง Level 1/Level 2 หากวา CPU มองหา ขอมลทตองการใน Cache ระดบใดๆ ไมเจอ กจะทำาการคนหาใน Cache ระดบถดไป ซงจะมความเรวชากวา แตมขนาดใหญกวา แตอยางไรกตาม ถาใน
Cache ระดบถดไปนน ขนาดไมใหญ โอกาสทจะหาขอมลทตองการเจอนน กมนอยกวา ( เพราะมเนอท นอยกวา ทำาใหโอกาสทจะดงขอมลจาก RAM มา แลวตรงกบทตองการนน เปนไปไดนอยกวา ) กทำาให CPU นน เสยเวลา ในการคนหาไปอยางสญเปลา ( ในกรณทหาไมพบ ) แลวกจะทำาใหผล Performance นนชากวา จากทควรจะเปน ปกตแลว อตราสวนจะเปนระหวาง Cache ระดบถดมาตอ Cache ระดบกอนหนา จะเปน 4:1 เชน Level 2 Cache /Level 1 Cache ของ Celeron จะเปน 128:32 ( 4:1 ) และ K6-3 จะเปน 256:64 ( 4:1 ) ยกเวนของ Pentium II ทเปน 512:32 ( 16:1 )
ทาง AMD กไดอางวา ดวย Cache 1Mb บน Mainboard นน จะทำาให Performance เพมขน 3-4 % ( L3/L2 = 1024/256 = 4/1 ) ซง ปจจบนนน กม Mainboard ทม ทง Cache 1M และ 512 K ใหเลอก เพราะฉะนน นคงเปนตวชวยในการพจารณาตวหนงแลวนะครบ สำาหรบผทคดจะใช AMD K6-3 วาควรจะใช Mainboard อะไรด สำาหรบการ disable Level 3 Cache นน คดวา เปนไปได โดยผานทาง BIOS ซงกนาจะมผลชวยในการ Overclock ใหไดมากขน
คราวนเราลองยอนกลบไปดถงตอนแรก ทผมเปรยบเทยบเรอง Cache กบการจดโนตยอลงสมดนน เราอาจสรปไดวา สมองของเราเปน Cache ระดบ 1 เพราะเมออานและเหนวาขอความไหน หรอประโยคไหนทนาจำาทสด สำาหรบนกเรยน นสต นกศกษา กคงอาจเลงไวแลววา ตรงน อาจารยตองเอามาออกขอสอบแนๆ กจะอานแลวทองจำาเอาไว และ เมอเกนความสามารถทจะทองจำา กทำาการจดโนตยอไวในสมดเลมเลกๆ นนกคอ Cache ระดบ 2 นนเอง และ บางทในการอาน กอาจมเรองทนาสนใจมากๆ จดโนตยอไมไหว กอาจใชปากกาขดขอความสำาคญๆหรอทำาการคนหนาหนงสอตรงนนไว นนกคอ Cache ระดบ 3 นนเองครบ
กเหนกนแลวนะครบ วา ขนาดของ Cache นน เปนสงสำาคญ และ ความเรวของ Cache นน กสำาคญเชนกน แต ถาใหเลอก ระหวาง Celeron 300A ซงม Level 2 cache 128 K ทำางานทความเรวเทาๆ กบ CPU กบ Pentium II 300 ทม L2 cache 512 K ทำางานเปนครงหนง แตราคานนตางกนเทาตว ในขณะท Performance ในดานทไมเกยวกบ Business นน แทบไมตางกน กขอเลอก Celeron จะดกวา ( ถกกวาตงเยอะ )
แตหากวาตองใชงานดาน Business แลวละก คงจะตองเลอก CPU ทม Cache มากๆ ไวกอน เพราะถงแมวา Cache นนจะเรว แตมขนาดนอย เปอรเซนตในการหาขอมลพบใน Cache กนอยลง ถงแมจะถกชดเชยดวยความเรว แตมนกทำาให Cache นนตองรบ ภาระทหนกมากขนไปดวย
ตารางขางลางน กแสดงถง Feature ตางๆ ของ L1,L2,L3 cache ของ CPU ในแตละรน
K6-2
K6-3
K7 Celeron
Xeon
PII
L1 Size 64kB
64kB
128kB 32kB
32kB
32kB
L1 'associativety
2 2 2 4 4 4
'
L2 Size 512kB+
256kB
512kB+
128kB
512kB+
512kB
L2 Speed
FSB 1xCPU
1/3,1/2xCPU
1xCPU
1xCPU
1/2xCPU
L3 Size - 512kB+
- - - -
L3 Speed
- FSB - - - -
Memory Access
FSB FSB 2xFSB FSB FSB FSB
สรป
Main Memory และ Cache เปนหนวยความจำาทใชงานทแตกตางกนออกไป
Main Memory เปนทเกบชดคำาสงขอมลเพอรอให CPU ประมวลผล Main Memory มนกคอ RAM กบ ROM ของ Computer ขนาด Main Memmory ไมไดมผลตอการประมวลผลเรวขนแตจะเกบคำาสงไวรอประมวลผลไดมากขนCache ออกมามาเพอใชคำาสงทตองการความเรวสง หรอ ชดคำาสงทถกใชบอยๆ Cache จะเกบคำาสงทเรยกใชบอยๆ แลวจะทำางานไดเรวขน
อางองhttp://irrigation.rid.go.th/rid 15/ ppn/Knowledge/Cache/ Cache.htm
http://clubcomp.blogspot.com/ 2012/05/ main-memory.html
https://sites.google.com/a/sau.ac.th/xupkrn-khxmphiwtexr/hnwy-khwam-cahlak-main-memory