ต้องการแนวคิดไปเขียนโปรแกรมนะค่ะ รบกวนพี่พี่ที่รู้ช่วยด้วยนะค่ะ เขียนโปรแกรมเพื่อจำลองการทำงานของแคชย์แบบ N-Way Set Associative ซึ่งมีค่า E=N (มีแคชย์เพียงหนึ่ง Level) สำหรับเครื่องที่มีความยาวแอดเดรส ขนาด 16 Bit โดยให้ผู้ใช้สามารถกำหนด o ขนาดของแคชย์ (Cache Size in Bytes) เช่น 1024 Bytes o ขนาดของแคชย์ไลน์ (Cache line size in Bytes) เช่น 32 Bytes o จำนวน Way (ค่า N) เช่น 2, 4 o Hit Time (หน่วยเป็น Cycles) เช่น 2 o Miss Penalty (หน่วยเป็น Cycles) เช่น 10 o Clock rate (หน่วยเป็น GHz) เช่น 1.8 Input ของโปรแกรม เป็น Text File ซึ่งมีรายการเรียกข้อมูลโดยการ อ่าน (r) และ เขียน (w) แอดเดรสต่างๆ เป็นบรรทัด ดังนี้ r 0x5480 w 0x5484 r 0x5488 r 0x5482 r 0x5480 r 0x5484 r 0x5488 w 0x5410 r 0x5400 r 0x5404 Output ของโปรแกรม เป็น สรุปค่าประสิทธิภาพของ memory access เป็น ค่า Hit Rate, Miss Rate และ Average Memory Access Time (หน่วยเป็น milliseconds หรือ nanoseconds ก็ได้)
ก็เขียน Simulator ธรรมดาหนิครับ ติดตรงไหนล่ะ
การถามการบ้านเป็นเรื่องดีนะครับ แต่ก็ควรอธิบายถึงเหตุผลที่เราทำไม่ได้ เช่นว่าคิดไปถึงไหนแล้ว ติดตรงไหน ทำไมตรงนั้นถึงได้ผลไม่ตรงอะไรอย่างนั้น
ในกรณีที่ไม่เข้าใจโจทย์เลยแบบไม่มีไอเดียเลยว่าจะทำยังไง ถามอาจารย์น่าจะง่ายกว่าครับ ------ LewCPE
lewcpe.com, @wasonliw
ขอโทษนะค่ะ พี่ lew ตอนแรกกลัวบอกวิธีคิดไปแล้วพี่จะงง นะค่ะ ที่คิดไว้นะค่ะ จากโจทย์ที่บอก Cache Size in Bytes มา 1024 Bytes = 256 words = 2^8 words = 2^8 blocks ทำให้รู้ค่า index = 8 ในส่วนของ Cache line size in Bytes เป็น 32 Bytes = 2^5 ทำให้รู้ค่า offset size = 2 bits อย่างนี้ถูกไหมค่ะ แล้ว วิธี N-Way Set Associative นี้ มี tag + offset size + bit แค่นี้รึเปล่าค่ะ
งงครับ ทำไม ขนาด Cache เป็น 256 word????
ค่าพวกขนาดแคช และขนาดของแต่ละบล็อกผู้ใช้จะเป็นคนกำหนดมา ตรงนี้ไม่แน่ใจว่าโจทย์เต็มๆ เป็นยังไง แต่เข้าใจว่าคงให้ขึ้นพรอมพ์ถามค่าจากผู้ใช้เอาน่ะครับ ดังนั้นเวลาคิดเลยต้องคิดในแบบรูปทั่วไป เมื่ออ่านรูปแบบการใช้เมมโมรีจากไฟล์แล้วจึงค่อยรายงานค่าที่โจทย์ถาม (Hit Rate, Miss Rate และ Average Memory Access Time)
สำหรับเรื่อง N-Way Set Associate นี่ไปอ่านต่อที่ Wikipedia ดูนะครับ ------ LewCPE
lewcpe.com, @wasonliw
เจอที่ pcguide ก็ละเอียดใช้ได้
หรือถ้ามึนหนักมากลองดู Dinero IV เป็นตัวอย่างก็ได้ (พยายามทำเองก่อนนะ)
ขอบคุณมากเลยนะค่ะ กำลังลองทำอยู่ค่ะ ดูข้อมูลจาก link ที่พี่ lew และพี่ sugree ให้ไว้นะค่ะ คิดว่าเข้าใจมากขึ้นแล้วค่ะ