งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

นายพิสัณห์ ดวงจันทร์ รหัส 4422035 Physical Cache Organization Physical Cache Organization Physical Cache Management Physical Cache Management Multilevel.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "นายพิสัณห์ ดวงจันทร์ รหัส 4422035 Physical Cache Organization Physical Cache Organization Physical Cache Management Physical Cache Management Multilevel."— ใบสำเนางานนำเสนอ:

1

2 นายพิสัณห์ ดวงจันทร์ รหัส

3 Physical Cache Organization Physical Cache Organization Physical Cache Management Physical Cache Management Multilevel Cache Multilevel Cache

4 CPU Physical Cache Main Memory MMU VirtualAddress PhysicalAddressPhysicalAddress DataData Physical Cache Organization Hit!Miss

5 Physical Cache Organization ข้อดีของ Physical Cache – ไม่มีปัญหาเรื่อง Ambiguity และ Alias – ไม่ต้องทำการ flush CPU Physical Cache Main Memory MMU Virtual Address Physical Address Physical Address Data

6 Physical Cache Organization Process ที่ไม่ได้ใช้ข้อมูลร่วมกัน อยู่กัน คนละ Physical Page –Physical Tag ไม่มีทางที่จะ match กัน Process ที่ใช้ข้อมูลร่วมกัน อยู่ใน Physical Page เดียวกัน – เพื่อจะได้ ทำ index ร่วมกัน และ match Tag กันได้ ==> Hit! ไม่เกิด Alias และ Ambiguity ขึ้น เพราะ ไม่ใช้ Virtual address โดยทั่ว ๆ ไปแล้ว จะไม่ต้อง flush Bus Watching สามารถทำ Bus Watching ได้

7 Physical Cache Organization ในระบบที่ไม่มี Physical cache: ข้อมูล ของ Process ที่ไม่เกี่ยวข้องกัน อาจจะ อยู่ใน Virtual address เดียวกัน (Virtual Line เดียวกัน ) ในระบบที่ใช้ Physical cache: ข้อมูล ของ Process ที่ไม่เกี่ยวข้องกัน แม้ว่าจะ อยู่ใน Virtual address เดียวกัน แต่จะ อยู่ในคนละ Physical Line เพราะจะ นำเอา Physical address มาจัด index แก้ปัญหาสำคัญ ของ Virtual cache ลง ได้ (Alias & Ambiguity) มีความสามารถในการกระจายข้อมูล ภายใน Cache ได้อย่างดีเยี่ยม

8 Managing a Physical Cache Physical cache ไม่ต้องทำการ Flushing เพราะ Context Switch time: – ใช้ Physical tag ==> ไม่เกิด Alias และ Ambiguity ==> ไม่ต้อง flush –Hit ratio สูง เพราะมีการกระจายข้อมูลได้ดี Fork time (Copy-on-Write Sharing): – ทั้ง Parent และ Child process ใช้ Physical address อันเดียวกัน ==> ไม่ เกิด Alias และ Ambiguity ==> ไม่ต้อง flush – Copy Page ได้ง่าย เพราะไม่ได้นำ Virtual address ที่ทำ Temporary mapping มา เกี่ยวข้อง

9 Managing a Physical Cache Exec, Exit, Brk, Sbrk time: – Process ที่ไม่เกี่ยวข้องกัน อยู่คนละ Physical page – เมื่อ Process A จบการทำงาน ==> memory deallocation ==> Process อื่น ๆ ไม่สามารถเข้าถึง Physical page ของ process A ได้ ==> ข้อมูลเก่าที่ค้าง อยู่ ไม่มีทางถูกเข้าถึง (access) – เมื่อเนื้อที่ส่วนนี้ถูก reallocate ==> UNIX จะมีการทำ Zero-filling เอง – ดังนั้น ไม่ต้อง flush Shared Memory and Mapped Files: – ใช้ Physical address ในการอ้างถึงข้อมูล ที่ใช้ร่วมกัน ==> ไม่เกิด Alias ( เหมือนกับ การใช้ Virtual address) ==> ไม่ต้อง flush

10 Managing a Physical Cache User-Kernel Data Ambiguity: – เมื่อมีการ access Kernel’s Page ==> เช็ค Permission ==> User process ไม่ สามารถเข้าถึง Kernel data ได้ – เนื่องจากใช้ Physical address ==> ไม่ เกิด Alias และ Ambiguity ==> ไม่ต้อง flush I/O and Bus Watching: –Virtual Cache: เมื่อเกิด I/O Operation ==> Data Inconsistency ==> Flushing –Physical Cache ใช้ “Bus Watching” ==> ข้อมูลใน Cache มีการแก้ไขอัตโนมัติ ==> ไม่ต้อง flush

11 Bus Watching Cache, Memory and I/O interconnection on a System Bus CPU/MMU Physical Cache I/O Memory System Bus Snoopi ng

12 Bus Watching ข้อมูลส่งไปใน bus ในรูปของ Bus Transaction ขนาดของ Bus Transaction = 12 words, 24 words ฯลฯ Cache จะคอยจับตาดู (monitor) กิจกรรมต่าง ๆ ใน Bus เรียกว่า “Snooping” Cache Look-up Operation – นำ Address มาผ่าน Hash function ==> Line/Set ==> Indexing ==> ตรวจสอบ Tag ว่า … Miss ==> ไม่ต้องทำอะไร Hit ==> ดำเนินการกับข้อมูลที่อยู่ใน Cache (Cache-Resident)

13 Intel i860 XP Cache Architecture VPNOffset PPNOffset Line Line Virtual Tag Physical Tag Data Set 0 1 Set 0 1 Virtual address from CPUPhysical address from bus

14 Multilevel Cache CPU Registers 1 st Level Cache 2 nd Level Cache Main Memory Primary (1 st Level) Cache ==> Faster & Smaller Virtual Cache Secondary (2 nd Level) Cache ==> Lower & Larger Physical Cache ทำ MMU Translation พร้อม ๆ กับ 1 st Level Cache Look-up ได้ ถ้า miss ที่ 1 st Level Cache ==> จะไปดู ที่ 2 nd Level Cache ต่อไป โดยใช้ Physical address ที่ได้จาก MMU Translation เป็นการผสมผสานข้อดีของ Cache ทั้ง 2 แบบไว้ด้วยกัน

15 Intel i860 XR Cache Architecture CPU Physical Cache Physical Cache I/O Main Memory Main Memory MMU Data Cache Data Cache Inst Cache Inst Cache External Cache Virtual Address Phys Addr Phys Addr Data Instructions Bus i860 XR

16 MIPS R4000 Cache Architecture CPU Physical Cache Physical Cache I/O Main Memory Main Memory MMU Data Cache Data Cache Inst Cache Inst Cache External Cache Virtual Address Phys Addr Phys Addr Data Instructions Bus MIPS R4000

17 Address Space Layout Address Space Layout Cache Size Bounded Flushing Cache Size Bounded Flushing Delayed Cache Invalidation Delayed Cache Invalidation Cache-Aligning Data Structure Cache-Aligning Data Structure

18 Efficient Cache Management Techniques การตัดสินประสิทธิภาพของ Cache ขึ้นอยู่กับ 3 ปัจจัย –Locality of Reference –Physical design –Cache Management Techniques Locality of Reference และ Physical design of the cache นั้นแก้ไขไม่ได้ เป้าหมาย ==> Cache Management Techniques

19 Efficient Cache Management Techniques มี 4 เทคนิค –Address Space Layout –Cache Size Bounded Flushing –Delayed Cache Invalidation –Cache-Aligning Data Structure

20 Address Space Layout Virtually Indexed Cache – ปกติแล้ว จะใช้ Hash algorithm ใน การกระจายข้อมูลของ text, data และ stack region ของ Process ( ทำ เป็น index) – ทำการกำหนด Virtual address ที่ เหมาะสมให้แก่ text, data และ stack region เพื่อไม่ให้เกิดเป็น index ที่ ซ้ำซ้อนกัน Text Data /bss Stac k 0x0 0x xffff0 000

21 Address Space Layout Virtually Indexed Cache 0x 0 0x 10 0x 20 0x 30 … 0xf f0 0123… …255 0x x x x … 0x8000 0ff … xffff xffff xffff xffff00 30 … 0xffff0ff … 25 5 Text index Data index Stack index

22 0xffff0f f0 Address Space 60 K Unus ed Tex t Sta ck Dat a Cac he x0 0xff 0x fff. 0x xffff0 000 Address Space Layout Virtually Indexed Cache

23 Address Space Layout Virtually Indexed Cache 0x 0 0x 10 0x 20 0x 30 … 0xf f0 0123… …255 0x x x x … 0x8000 6ff … xfffff0 00 0xfffff0 10 0xfffff0 20 0xfffff0 30 … 0xfffffff … Text index Data index Stack index

24 0xffff0f ff Address Space Tex t Sta ck Dat a Cac he 24 K 0x0 0xff 0x fff. 0x xffff0 000 Address Space Layout Virtually Indexed Cache 40 K

25 Address Space Layout ข้อจำกัดของ Virtually Indexed Cache – ใช้ได้กับระบบที่สามารถคาดหมายเนื้อ ที่ที่ application ต้องการได้ – ใช้ไม่ได้เลยกับระบบที่มี Cache ขนาด เล็ก โดยเฉพาะที่มีขนาดน้อยกว่า หรือ เท่ากับขนาดของ Page ของ Process

26 Text Stack Data Cache Address Space A 0x0 0xfff 0x x800006fff 0xfffff000 0xffffffff Text Stack Data Address Space B 0x0 0xfff 0x x800006fff 0xfffff000 0xffffffff Address Space Layout Dynamic Address Binding

27 Address Space Layout Dynamic Address Binding – สุ่ม Starting address ตอน link time หรือ ส่วนของ stack สามารถทำได้ตอน exec time แต่ปกติแล้ว Address binding จะเกิดขึ้น แบบ Static ณ Link time – ใช้ Position-independent code ( โปรแกรมที่ไม่มีการ binding ไปยัง Virtual address ใด ๆ ในตอน compile, link time) ยังไม่มีสถาปัตยกรรมใดที่รองรับ Position-independent code

28 Address Space Layout ข้อจำกัดของ Dynamic Address Binding – ข้อตกลงต่าง ๆ รวมถึง Starting address มาตรฐาน หายไป ทำให้ เสียเวลาตรวจสอบโปรแกรมมากขึ้น – ใช้ได้กับระบบที่มี Cache ขนาดใหญ่ พอที่จะทำให้เกิด Locality of Reference เท่านั้น – เกิด Overhead ในการคำนวณ Load address

29 Address Space Layout Physically Indexed Cache – ทำการ allocate Physical page แบบ กระจาย – ใช้ Modulo cache indexing แบ่ง Physical page ออกเป็น n กลุ่ม โดยที่ n = Cache size / Page size Page แรก จะอยู่ที่ตำแหน่ง 0 Page ที่สอง จะอยู่ที่ตำแหน่ง 1 ต่อไปเรื่อย ๆ จนถึงตำแหน่งที่ n-1 เมื่อครบ ก็วนกลับไปที่ตำแหน่ง 0 ใหม่

30 Cache Page Number Physical Memory Address Space Layout Physically Indexed Cache

31 Address Space Layout ข้อจำกัดของ Physically Indexed Cache – ใช้ได้กับระบบที่มี Cache ขนาดใหญ่ มากกว่าขนาดของ Page หลาย ๆ เท่า

32 Cache Size Bounded Flushing ขนาดข้อมูลที่ใหญ่ที่สุดที่จะถูก flush = ขนาดของ Cache – ถ้าต้องทำการ flush cache เมื่อ I/O buffer มีขนาด 4K ถ้า Cache ขนาด 2K ==> Flush 2 ครั้ง ถ้า Cache ขนาด 4K ==> Flush ครั้งเดียว –Cache ที่มีขนาดใหญ่ จะลด flushing overhead

33 Delayed Cache Invalidation การทำ Invalidation บ่อย ๆ ทำให้ ประสิทธิภาพของระบบลดลงเพราะ – เป็น time consuming ==> ทำทีละ Line – โดยปกติแล้ว Cache จะ flush ได้ทีละ 1 line – เกิดการ invalidate line ที่ไม่ได้บรรจุ ข้อมูลที่ต้องการลบขึ้นได้ บางกรณี สามารถ delay การทำ Invalidation ออกไปได้ –12K Virtual cache with physical tag; 4K Page; 10 Processes –Invalidate 1 ครั้ง : 1 Process = ดำเนินการกับข้อมูล 120K –Invalidate 1 ครั้ง : 10 Processes = ดำเนินการกับข้อมูล 12K

34 Delayed Cache Invalidation Virtual Cache with Key – รอจนระบบใช้ Key ที่ว่างอยู่หมด และ ต้องการใช้ Key ของ Defunct Process ==> Invalidate –Unused Key List: ดึง Key ออกไปให้ Process ที่เกิดขึ้นใหม่ –Used Key List: เก็บ Key ของบรรดา Defunct Process ไว้ – เมื่อ Unused Key List หมด OS ทำการ Invalidate Cache นำ Key ทั้งหมดใน Used Key List ไปให้แก่ Unused Key List

35 Delayed Cache Invalidation Physically Tagged without Bus Watching – คล้าย ๆ กับที่ผ่านมา คือมีการใช้ Free List ของ Physical Page –Clean List: Physical Page เปล่า ๆ สำหรับ Process ใหม่ –Dirty List: Physical Page ของบรรดา Defunct Process – เมื่อ Clean List หมด OS ทำการ Invalidate Cache ย้ายทุก Page ใน Dirty List ไป ให้แก่ Clean List

36 Cache-Aligning Data Structure ทำให้ข้อมูลที่โปรแกรมต้องใช้งาน บรรจุลงใน Cache line ได้อย่าง เหมาะสม เพื่อ – ลดการ Miss – เพิ่ม Locality of Reference ข้อมูลดังกล่าว อาจจะเป็น data structure ของโปรแกรม หรือตัว โปรแกรมเองก็ได้ ใน UNIX โครงสร้างข้อมูลที่เข้าถึง บ่อยที่สุด คือ “Process table”

37 Cache-Aligning Data Structure Line Cache Entry 0 Entry 2 Entry 3 Entry 4 Entry 1 Entry 5 Entry 6Entry 7

38 Cache Entry 0 Entry 1 Entry 2 Entry 3 Entry 4 Padding Cache-Aligning Data Structure Line Cache

39 Cache-Aligning Data Structure ข้อจำกัดของ Cache-Aligning Data Structure –Padding ขนาดใหญ่ ==> ลด ประสิทธิภาพของระบบ เสียเนื้อที่ว่างไปเปล่า ๆ ลด Locality of Reference – ไม่ Portable เพราะต้องทำการ built- in ขนาดของ Cache line ไว้ใน โปรแกรม – เหมาะกับสถานการณ์ที่ให้ความสำคัญ กับ “ ประสิทธิภาพของ โปรแกรม ” มากกว่า “Portability” ตัวอย่าง เช่น OS

40 Thanks You :-)


ดาวน์โหลด ppt นายพิสัณห์ ดวงจันทร์ รหัส 4422035 Physical Cache Organization Physical Cache Organization Physical Cache Management Physical Cache Management Multilevel.

งานนำเสนอที่คล้ายกัน


Ads by Google