سازمان حافظه & فصل 12 کتاب مانو Amirkabir University of Technology Computer Engineering & Information Technology Department
حافظه اصلی حافظه اصلی از مدارات سریعی ساخته میشود که برنامه ها و داده های مورد نیاز را در هنگام اجرا نگهداری مینماید. بر دو نوع است: ROM RAM
بلوک دیاگرام حافظه Example: 2MB memory, byte-addressable N-bit Data Input (for Write) N K-bit address lines واحد حافظه K Read/Write 2k words N-bit per word Chip Enable N N-bit Data Output (for Read) Example: 2MB memory, byte-addressable N = 8 (because of byte-addressability) K = 21 (1 word = 8-bit)
بلوک دیاگرام حافظه Chip Select 1 Chip Seleect2 Read Write 7-bit address cs1 cs2 RD WR AD7 8-bit data bus 128X8 RAM دیتا باس با استفاده از گیت های سه حالته ساخته میشود در مورد ROM دیتا باس فقط خروجی است.
ارتباط حافظه با پردازنده CPU chip register file ALU memory bus bus interface main memory Modules Memory Interface
نقشه آدرس حافظه در موقع طراحی کامپیوتر مقدار حافظه اختصاص داده شده به هر یک از حافظه های RAM , ROM مشخص میگردند. مثال: A10 A9 A8A7A6A5A4A3A2 A1 Address Component 0 0 0 x x x x x x x 0000-007F RAM1 0 0 1 x x x x x x x 0080-00FF RAM2 0 1 0 x x x x x x x 0100-017F RAM3 0 1 1 x x x x x x x 0180-01FF RAM4 0 x x x x x x x x x 0200-03FF ROM
حافظه RAM عمده حافظه اصلی کامپیوتر از حافظه RAM ساخته میشود. DRAM: Dynamic Random Access Memory High density, low power, cheap, slow Dynamic: need to be “refreshed” regularly SRAM: Static Random Access Memory Low density, high power, expensive, fast Static: content will last “forever” (until lose power)
ساختار حافظه DRAM row select Write: 1. Drive bit line 2. Select row Read: 1. Precharge bit line to Vdd/2 3. Cell and bit line share charges Very small voltage changes on the bit line 4. Sense (fancy sense amp) Can detect changes of ~106 electrons 5. Write: restore the value Refresh 1. Just do a dummy read to every cell.
حافظه SRAM Static Random Access Memory (SRAM) Wordline (WL) BitLine BitLine برای نوشتن: مقدار مورد نظر بر روی Bitline و معکوس آن بر روی Bitline قرار داده شده و سپس WL=1 میشود. برای خواندن: هر دوی Bitline و Bitline با مقدار Vdd (1)شارژ میشوند و سپس WL=1 میشود.
ساختار حافظه SRAM معمولا یک سلول حافظه با استفاده از 6 ترانزیستور ساخته میشود. bit word word (row select) 6-Transistor SRAM Cell Write: 1. Drive bit lines (bit=1, bit=0) 2. Select row Read: 1. Precharge bit and bit to Vdd or Vdd/2 => make sure equal! 2. Select row 3. Cell pulls one line low 4. Sense amplifier on column detects difference between bit and bit
توصیف حافظه ظرفیت یک حافظه بصورت زیر بیان میشود: مثال: # addresses x Word size مثال: Memory # of addr # of data lines # of addr lines # of total bytes 1M x 8 1,048,576 8 20 1 MB 2M x 4 2,097,152 4 21 1K x 4 1024 10 512 B 4M x 32 4,194,304 32 22 16 MB 16K x 64 16,384 64 14 128 KB
نحوه آدرس دهی حافظه 4x8 Memory 2-to-4 Decoder A0 1 2 A1 3 CS Chip 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit A0 1 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 2 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit A1 3 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit CS Chip Select D7 D6 D5 D4 D3 D2 D1 D0
نحوه آدرس دهی حافظه 4x8 Memory 2-to-4 Decoder A0=1 1 2 A1=0 3 CS Chip 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit A0=1 1 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 2 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit A1=0 3 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit CS Chip Select=1 D7 D6 D5 D4 D3 D2 D1 D0 Access address = 0x1 انتخاب محل شماره 1 حافظه
Use 2 Decoders 8x4 Memory 2-to-4 Decoder Row A1 1 2 A2 3 CS 1 Chip 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit A1 1 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 2 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit A2 3 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit CS Tristate Buffer (read) D0 D1 D2 D3 Chip Select 1 CS 1-to-2 Decoder Column Decoder A0
بافر سه حالته Tristate Buffer En Input Output En Input Output Output En Input Vdd CMOS circuit معمولا برای ارتباط رجیستر ها و یا حافظه با باس استفاده میشود. خروجی آن میتواند علاوه بر دو حالت 0,1 دارای حالت سومی باشد که عملا بصورت امپدانس بالا و یا حالت قطع عمل میکند.
ساخت باس دو طرفه با استفاده از گیت های سه حالته Direction (control data flow for read/write) A Input/Output B
Read/Write Memory 8x4 Memory A1 1 2-to-4 Row Decoder 2 A2 3 CS 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit A1 1 2-to-4 Row Decoder 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 2 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit A2 3 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit CS Rd/Wr = 0 D0 D1 D2 D3 1 Chip Select = 0 CS 1-to-2 Column Decoder A0
Read/Write Memory 8x4 Memory A1 1 2-to-4 Row Decoder 2 A2 3 CS 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit A1 1 2-to-4 Row Decoder 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 2 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit A2 3 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit CS Rd/Wr = 1 D0 D1 D2 D3 1 Chip Select = 1 CS 1-to-2 Column Decoder A0
ساختن حافظه های بزرگتر با استفاده از چیپ های کم ظرفیت تر مثال: طراحی یک حافظه 1Mx8 با استفاده از چیپ های حافظه 1MX4 D7 D6 D5 D4 A19 A18 1Mx4 R/W CS A17 A0 CS D3 D2 D1 D0 A19 A18 A17 A0 1Mx4 R/W CS
ساختن حافظه های بزرگتر با استفاده از چیپ های کم ظرفیت تر مثال: طراحی یک حافظه 2Mx4 با استفاده از چیپ های حافظه 1MX4 A19 A18 A17 A0 1Mx4 R/W CS D3 D2 D1 D0 Note that 1-to-2 decoder is the wire itself (or use an inverter) 1-to-2 Decoder CS 1 A20 A19 A18 A17 A0 1Mx4 R/W CS
ساختن حافظه های بزرگتر با استفاده از چیپ های کم ظرفیت تر مثال: طراحی یک حافظه 2Mx8 با استفاده از چیپ های حافظه 1MX4 A19 A18 A17 A0 1Mx4 CS R/W D7 D6 D5 D4 D3 D2 D1 D0 A20 1-to-2 Decoder CS 1
مدل حافظه با استفاده از 32 بیت آدرس میتوان تا 4GB (232 محل حافظه را آدرس دهی کرد. Flat Memory Model 0x0A 0xB6 0x41 0xFC Lower Memory Address 0x00000000 Higher 0x00000001 0x00000002 0x00000003 0xFFFFFFFF 0x0D
حافظه ROM حافظه ای است فقط خواندنی که محتوی آن یکبار نوشته شده و پس از نصب در کامپیوتر تغییری در آن داده نمیشود. معمولا از این حافظه برای ذخیره برنامه هائی نظیر bootstrap loader که برای راه اندازی اولیه کامپیوتر مورد نیاز هستند استفاده میشود. این حافظه انواع مختلفی دارد: Masked ROM PROM EPROM EEPROM
Read Only Memory (ROM) ROM اطلاعات باینری بطور دائمی در حافظه ذخیره میشوند. اطلاعات با قطع برق از بین نمیروند. ROM K-bit address lines N-bit Data Output 2k words N-bit per work K N
32x8 ROM 32x8 ROM 5 8 Each represents 32 wires A4 A3 5-to-32 Decoder A4 1 A3 2 5-to-32 Decoder 3 A2 A1 28 A0 29 30 31 Fuse can be implemented as a diode or a pass transistor D7 D6 D5 D4 D3 D2 D1 D0
Programming the 32x8 ROM D7 D6 D5 D4 D3 D2 D1 D0 A4 A3 A2 A1 A0 1 … 1 2 29 30 31 D7 D6 D5 D4 D3 D2 D1 D0 A4 A3 A2 A1 A0 5-to-32 Decoder
کاربردی از ROM مثال:Lookup Table طراحی جدولی برای محاسبه تابع F(X) = X2 X F(X)=X2 1 2 4 3 9 16 5 25 6 36 7 49 X F(X)=X2 000 000000 001 000001 010 000100 011 001001 100 010000 101 011001 110 100100 111 110001
Square Lookup Table using ROM 1 X2 3-to-8 Decoder 2 X F(X)=X2 000 000000 001 000001 010 000100 011 001001 100 010000 101 011001 110 100100 111 110001 3 X1 4 X0 5 6 7 F5 F4 F3 F2 F1 F0
Square Lookup Table using ROM 1 X2 3-to-8 Decoder 2 X F(X)=X2 000 000000 001 000001 010 000100 011 001001 100 010000 101 011001 110 100100 111 110001 3 X1 4 X0 5 6 7 Not Used = X0 F5 F4 F3 F2 F1 F0
Square Lookup Table using ROM 1 X2 3-to-8 Decoder 2 X F(X)=X2 000 000000 001 000001 010 000100 011 001001 100 010000 101 011001 110 100100 111 110001 3 X1 4 X0 5 6 7 F5 F4 F3 F2 F1 F0
اهمیت حافظه حافظه از چه نظر اهمیت دارد؟ سرعت دسترسی به حافظه یک گلوگاه اصلی برای افزایش کارائی کامپیوتر است
پیشرفت تکنولوژی حافظه در حالیکه در سالیان گذشته حجم حافظه بسرعت افزایش پیدا کرده است، کاهش در زمان دسترسی به محتوی حافظه پیشرفت بسیار کمتری داشته اشت. 2:1! 1000:1! DRAM Year Size Cycle Time 1980 64 Kb 250 ns 1983 256 Kb 220 ns 1986 1 Mb 190 ns 1989 4 Mb 165 ns 1992 16 Mb 145 ns 1995 64 Mb 120 ns
صورت مسئله ویژگیهای حافظه: حافظه های بزرگ کند هستند حافظه های سریع کوچک هستند سوال: چگونه میتوان حافظه بزرگ ، سریع و ارزانی داشت؟ استفاده از سلسله مراتب دسترسی موازی
اصل محلی بودن رجوع به حافظه با آنالیز برنامه های کامپیوتری مشخص شده است که در یک فاصله زمانی رجوع به حافظه برای دسترسی به داده یا دستورالعمل معمولا در اطراف یک ناحیه حول داده ها و دستوراتی است که اخیرا مورد رجوع قرار گرفته اند. این امر به این دلیل است که برنامه ها دستورات را از محل های پشت سر هم اجرا میکنند و همچنین در هنگام اجرای حلقه ها دستوران آن حلقه بطور مدام تکرار میشوند. sum = 0; for (i = 0; i < n; i++) sum += a[i]; return sum;
اصل محلی بودن رجوع به حافظه محلی بودن رجوع به حافظه بدو صورت است: Temporal locality: داده ها و دستوراتی که اخیرا مورد استفاده قرار گرفته اند، مجددا مورد رجوع قرار خواهند گرفت Spatial locality: داده ها یا دستوراتی که در خانه های نزدیک به هم حافظه قرار دارند با فاصله زمانی اندکی از هم مورد رجوع قرار خواهند گرفت.
مثال کدامیک از برنامه های زیر دارای خاصیت رجوع محلی بهتری هستند؟ int sumarrayrows(int a[M][N]) { int i, j, sum = 0; for (i = 0; i < M; i++) for (j = 0; j < N; j++) sum += a[i][j]; return sum } int sumarraycols(int a[M][N]) { int i, j, sum = 0; for (j = 0; j < N; j++) for (i = 0; i < M; i++) sum += a[i][j]; return sum }
زمان دسترسی به حافظه زمان دسترسی به حافظه: (Access Time) عبvزت است از زمانی که بین تقاضای داده و آماده شدن آن طول میکشد زمان سیکل: (Cycle Time) عبارت است از زمان بین دو تکرار متوالی برای مثال در حالیکه زمان دسترسی به یک حافظه DRAM ممکن است 60ns باشد با احتساب زمان های لازم برای انتقال آدرس از پردازنده به حافظه، تاخیر باس ها، و ... زمان سیکل آن ممکن است به 180-250 ns برسد. Time Access Time Cycle Time
حافظه cache اگر قسمت فعال برنامه و داده ها را در حافظه سریع و کوچکی قرار دهیم، میتوانیم با کم کردن میانگین زمان دسترسی به حافظه زمان اجرای برنامه را کاهش دهیم. این حافظه سریع و کوچک را حافظه cache می نامند. معمولا حافظه cache زمان دسترسی بسیارکمتری نسبت به حافظه اصلی دارد 5 )تا 10 برابر کمتر( دریک کامپیوتر ممکن است عمل cache تا چند سطح تکرار گردد.
مثالی از سلسله مراتب حافظه Smaller, faster, and costlier (per byte) storage devices L0: registers CPU registers hold words retrieved from L1 cache. L1: on-chip L1 cache (SRAM) L1 cache holds cache lines retrieved from the L2 cache memory. off-chip L2 cache (SRAM) L2: L2 cache holds cache lines retrieved from main memory. L3: main memory (DRAM) Larger, slower, and cheaper (per byte) storage devices Main memory holds disk blocks retrieved from local disks. local secondary storage (local disks) L4: Local disks hold files retrieved from disks on remote network servers. remote secondary storage (distributed file systems, Web servers) L5:
نحوه عمل cache وقتی که cpu نیاز به دسترسی به حافظه دارد ابتدا حافظه cache را جستجو مینماید: اگر داده در این حافظه سریع موجود بود از آن استفاده میشود در غیر اینصورت با رجوع به حافظه بلوکی از داده که شامل داده مورد نیاز cpu میشود از حافظه اصلی به حافظه cache منتقل میگردد. CPU حافظه اصلی 32K x 12 حافظه cache 512 x 12 Word access Block transfer
Hit Rate and Miss Penalty Ratio of hits to attempted accesses Greater than 0.9 essential for high performance Miss Penalty Extra time needed to bring desired info into the cache
درصد موفقیت کارائی حافظه cache با ضریبی با نام درصد موفقیت hit ratio اندازه گیری میشود. این درصد عبارت است از نسبت تعداد دفعاتی که داده در cache یافت شده به تعداد کل دفعات رجوع به حافظه. هر چه مقدار این درصد بیشتر باشد سرعت دسترسی به حافظه به سرعت cache نزدیکتر میشود. مثال: یک کامپیوتر با زمان دسترسی 100ns برای حافظه cache و 1000nsبرای حافظه اصلی در صورت داشتن درصد موفقیت 0.9زمان دسترسی برابر با 200ns خواهد داشت.
Cache Operation (Read) Read Hit Item in cache Read Miss Block copied from main memory to cache word sent to processor after copy word sent to processor as soon as available (load-through)
Cache Operation (Write) Write Hit Write-through cache and main memory updated simultaneously Write-back only cache updated dirty (modified) bit block written back when removed from cache
Cache Operation (Write) Write Miss Write-through main memory written directly Write-back block first brought into cache then desired word in cache overwritten
تاثیر اندازه بلوک های cache در حالت کلی با بزرگ شدن اندازه بلوک های cache میزان hit rate افزایش می یابد. اما به همین ترتیب میزاmiss penalty یعنی زمانی که برای انتقال اطلاعات به کاشه لازم است نیز افزایش خواهد یافت. Average Access Time Increased Miss Penalty & Miss Rate Block Size Average Access Time: = Hit Time x Hit Ratio + Miss Penalty x (1 – Hit Ratio)
حالت شروع در حالت شروع به کار، حافظه خالی است و هیچ اطلاعات معتبری در آن وجود ندارد. برای نشان دادن این وضعیت از یک بیت VALID استفاده میشود. در حالت شروع بکار کامپیوتر همه این بیت ها با صفر پر میشوند. با نوشتن داده در cache این بیت به 1 تغییر داده میشود. 00 01 10 11 Index Tag Data 00 + 00 = 0000 Invalid 01 + 11 = 0111 Main memory address in cache block 1 Valid Bit
نگاشت عمل انتقال داده از حافظه اصلی به حافظه cache را نگاشت مینامند. اینکار به سه طریق انجام میشود: Direct Mapping Associate Mapping Set-associative mapping
نگاشت مستقیم Direct Mapping در این روش برای پیاده سازی cache از یک حافظه RAM سریع استفاده میشود: اگر حافظه اصلی دارای 2n کلمه و حافظه cache دارای 2k کلمه باشند در نتیجه به ترتیب به n و k بیت آدرس نیاز خواهند داشت. آدرس n بیتی حافظه اصلی بصورت زیر تقسیم میشود Tag Index n-k k
نگاشت مستقیم Direct Mapping در حافظه cache علاوه بر داده اطلاعات مربوط به Tag هم ذخیره میشود. 00000 00777 01000 01777 02000 27777 1220 Index Tag Data 000 00 1220 2340 3450 4560 5670 777 27 6710 6710 Cache Main memory
نگاشت مستقیم Direct Mapping وقتی که آدرسی توسط CPU تولید میشود با استفاده از قسمت Index آن یک کلمه از حافظه cache خوانده شده و مقدار Tag ذخیره شده در آن با مقدار Tag آدرس مقایسه میگردد. اگر دو Tag یکسان بودند داده cacheمورد استفاده قرار میگیرد (hit) در غیر اینصورت (miss) داده از حافظه خوانده شده و همراه با Tag جدید در cache نوشته میشود. در این روش اگر رجوع به آدرسهائی با index یکسان زیاد اتفاق بیافتد، درصد موفقیت پائین میاید.
دسترسی به داده در نگاشت مستقیم 1 2 3 ... 1022 1023 Index Tag Data Valid Address (32 bits) = To CPU Hit 10 22
نوشتن داده در cache The lowest k bits of the address specify a cache block. The upper (m - k) address bits are stored in the block’s tag field. The data from main memory is stored in the block’s data field. The valid bit is set to 1. 1 2 3 ... Index Tag Data Valid Address (32 bits) 10 22
نگاشت مستقیم با اندازه بلوک بزرگتر معمولا اندازه بلوک بزرگتر از یک در نظر گرفته میشود: Tag Data Index 000 007 01 3450 6578 Block 0 010 017 00 1340 1658 Block 1 Tag Block Word Cache n-k k
Set-associative mapping در این روش هر محل از حافظه cache میتواند چندین کلمه با آدرس Index یکسان را ذخیره نماید. تعداد data-tag های ذخیره شده در حافظه یک set خوانده میشود. برای مقایسه tag آدرس تولید شده با مقادیر ذخیره شده ازحافظه associative استفاده میشود. با بزرگ شدن set ها درصد موفقیت cache افزایش می یابد
2-way Set-associative mapping Index Tag Data Tag Data 000 00 1220 02 5670 777 02 6710 00 2340 Cache Cache Cache that has k blocks per set is referred to as a k-way set-associative cache
الگوریتم های جایگزینی وقتی که یک miss اتفاق می افتد، در صورتیکه یک set پر باشد لازم میشود تا یکی از داده های آن خالی شده و داده جدید وارد cache شود. روشهای مختلفی برای اینکار وجود دارد: first-in, first-out Random replacement Least recently used (LRU)
: Cache Data Cache Block 0 Cache Tag Valid Cache Index Mux Cache Block 1 Sel1 Sel0 Cache Block Compare Adr Tag OR Hit
Example: 4-way set associative Cache
نوشتن در حافظه cache یکی از مسایل مهم در ارتباط با حافظه cache نحوه عمل در هنگام نوشتن اطلاعات در حافظه است. هنگام خواندن داده ها وقتی داده در cache وجود داشته باشد، نیازی به رجوع به حافظه اصلی نیست اما وقتی داده را در حافظه مینویسیم ممکن است به دو طریق عمل شود: : write through در این روش درهر بار نوشتن در حافظه داده هم در cache و هم در حافظه اصلی نوشته میشود. : write back در این روش داده فقط در cache نوشته شده و با یک پرچم set میشود. تا زمانیکه این داده در cache قرار دارد از این داده استفاده خواد شد، اما در صورت انتقال داده از cacheمقدار آن در حافظه اصلی نیز update میگردد.
حافظه cache در 80486 در داخل این پردازنده یک کاشه 8k بایتی در نظر گرفته شده است. واز بلوک های 16 بایتی استفاده میشود. برای نوشتن در کاشه از روش write through استفاده میشود. درصد موفقیت بالاتر از 90 در صد است. میتوان از یک کاشه خارجی دیگر نیز استفاده نمود.
سلسله مراتب حافظه در پردازنده های جدید Intel Pentium 4, 2.2 GHz Processor. Component Access Speed (Time for data to be returned) Size of Component Registers 1 cycle = 0.5 nanoseconds 32 registers L1 Cache 3 cycles = 1.5 nanoseconds Separate Data and Instruction Caches: 8 Kbytes each L2 Cache 20 cycles = 10 nanoseconds 256 Kbytes, 8-way set associative L3 Cache 30 cycles = 15 nanoseconds 512 Kbytes, Memory 400 cycles = 200 nanoseconds 16 Gigabytes
حافظه associative از این حافظه برای تسریع عمل جستجو در بین داده های ذخیره شده استفاده میشود. برای کاهش زمان جستجو بجای استفاده از آدرس، از محتوی خود داده استفاده میشود. این روش را گاهی content addressable memory (CAM) هم مینامند هنگام نوشتن داده در این حافظه نیازی به آدرس نیست! این حافظه قادر است تا جای خالی را پیدا نموده و داده را در آنجا ذخیره مینماید. هنگام خواندن داده از حافظه، مقدار داده و یا بخشی از آن به حافظه ارائه شده و حافظه تمامی کلمات ذخیره شده ای را که با داده مورد نظر یکسان هستند را علامت گذاری کرده و آماده خواندن مینماید
سخت افزار مربوطه Argument Register (A) Key Register (K) match register Associative memory array and logic m words n bit per words N Input read write Output
Associate mapping در این روش که سریعترین راه پیاده سازی یک cache است از یک حافظه associative استفاده میشود. در این حافظه هم آدرس و هم محتوی یک کلمه ذخیره میشوند. در نتیجه cache میتواند محتوی هر محل از حافظه را ذخیره نماید. هنگام جستجو برای یک داده آدرس آن به حافظه associativeعرضه میشود. در صورتیکه ورودی متناظری در حافظه باشد، داده مربوطه در خروجی ظاهر میگردد. در غیر اینصورت هر دوی آدرس و داه در حافظه associative ذخیره خواهند شد. معمولا از الگوریتم FIFOبرای جایگزینی در cache استفاده میشود
Associate mapping CPU Address Argument Register Address Data 00 1220 02 6710 Cache
Associative Mapping Main memory block can be placed into any cache block Contention occurs only when cache is full Replacement algorithm required to chose block to repalce Associative search of tags in parallel Most flexible Costly
Instructions versus Data Modern system designs frequently use a pair of separate cache memories, one for storing processor instructions and another for storing the program’s data Why is this a good idea?
AMD Opteron – caches, etc
Cache memory, L1 cache, L2 cache This is a Pentium from 1993! Now processor cores are even smaller.
Cache memory, L1 cache, L2 cache
Questions?