حافظه دفتر یادداشت (انگلیسی: (SPM) ScratchPad Memory)، همچنین به عنوان دفتر یادداشت (scratchpad)، رم (حافظه) دفتر یادداشت یا حافظه محلی در اصطلاحات کامپیوتر، یک حافظه داخلی سرعت بالا است که برای نگداری موقت محاسبات، داده ها، و عملیات دیگر در حال اجرا استفاده می شود. با اشاره به یک ریزپردازنده (واحد پردازش مرکزی) ,scratchpad به یک مدار حافظه مخصوص با سرعت بالا که برای نگهداری اطلاعات کوچک برای بازیابی سریع استفاده می شود، اشاره دارد. این حافظه شبیه از لحاظ اندازه و استفاده به یک دفتر یادداشت در زندگی است: یک مجموعه از کاغذها برای یادداشت های اولیه، طرح ها یا نوشته ها، و غیره.
Fairchild F8 در سال ۱۹۷۵ شامل ۶۴ بایت scratchpad بود.
Cyrix 6x86 تنها پردازنده x86 دسکتاپ است با یک scratchpad اختصاصی را در اختیار دارد.
SuperH، که در کنسول های Sega مورد استفاده قرار می گیرد، می تواند cachelineها را به یک آدرس خارج از حافظه اصلی برای استفاده به عنوان یک scratchpad قفل کند.
PS1 R3000 سونی در عوض یک حافظه L1 دارای یک scratchpad است. در اینجا می توان پشته CPU را جایگزین کرد، نمونه ای از کاربرد فضای کاری موقت.
پردازنده کمکی(coprocessor) موازی Adapteva's Epiphany برای هر هسته حافظه های محلی در نظر می گیرد، متصل شده توسط شبکه درون یک تراشه، با قابلیت DMA بین آنها و ارتباطات خارج از تراشه (احتمالاً به DRAM). معماری اش شبیه سلول سونی است، به جز اینکه تمام هسته ها می توانند به طور مستقیم با scratchpadهای یکدیگر متصل شوند و پیام های شبکه را از دستورالعمل های load/store استاندارد ارسال کنند.
سونی PS2 Emotion Engine شامل ۱۶ کیلوبایت scratchpad که مشخص می کند به یا از کدام DMA انتقال داده بشود و می تواند به GS و حافظه اصلی صادر شود.
سلولهای SP محدود به کار در حافظه محلی خود هستند، با تکیه بر DMA که برای انتقال از / به حافظه اصلی و بین حافظه های محلی، بسیار شبیه یک scratchpad هستند. در این راستا، مزیت اضافی ناشی از فقدان سخت افزار این است که برای بررسی و به روز رسانی انسجام بین حافظه های نهان گوناگون است: این طراحی از این فرض سود می برد که هر فضای کاری پردازنده جدا و خصوصی است. انتظار می رود این مزیت قابل توجه تر شود زیرا تعداد پردازنده ها در آینده "many-core" مقیاس می شود. با این حال، به دلیل حذف برخی از منطقهای سخت افزاری، داده ها و دستورالعمل های برنامه های کاربردی در SPEها باید از طریق نرم افزار مدیریت شود حتی اگر کل کار در SPE نمی تواند در حافظه محلی متناسب باشد.
بسیاری از پردازنده های دیگر اجازه می دهند که خطوط ذخیره سازی L1 قفل شوند.
اکثر پردازنده های سیگنال دیجیتال از یک scratchpad استفاده می کنند. بسیاری از شتابدهنده های 3D گذشته و کنسول های بازی (از جمله PS2) از DSPها برای تبدیل های راسی استفاده کرده اند. این روش با رویکرد مبتنی بر جریان که در GPUهای مدرن، که اشتراک های زیادی با عملکردهای حافظه نهان CPU دارد، متفاوت است.
NVIDIA ۸۸۰۰ GPU (تحت اجرا CUDA)، ۱۶ کیلوبایت scratchpad (NVIDIA آن را «حافظه به اشتراک گذاشته شده» می نامد) در هر thread-bundle زمانی که برای وظایف GPGPU استفاده می شود، فراهم می کند. Scratchpad همچنین در بعد از Fermi GPU استفاده شده است(GeForce 400 Series).
تراشه PhysXَ از Ageia شامل می باشد یک رم scratchpad در یک حالت شبیه به Cell است؛ نظریه آن بیان می کند که یک سلسله مراتب حافظه با استفاده کمتر از فیزیک و محاسبات برخورد و تصادم، برخوردار است. این حافظه ها نیز ذخیره می کنند و یک سوئیچ بین آنها انتقال می دهد.
پردازنده نایت لندینگ اینتل ۱۶ گیگابایت MCDRAM که می تواند به عنوان یک حافظه پنهان یا حافظه scratchpad پیکربندی شود یا به برخی از حافظه نهان و بعضی از حافظه های scratchpad تقسیم بشوند.
Movidius Myriad 2، یک واحد پردازش بینایی، به عنوان یک معماری چند هسته ای با یک scratchpad بزرگ چند منظوره به سازمان یافته شده است.
این حافظه را می توان شبیه به حافظه نهان L1 در نظر گرفت که در آن، نزدیکترین حافظه ای است به واحد محاسبه و منطق پس از ثبات های پردازنده و با دستورالعمل های صریح و اختصاصی برای انتقال داده ها به حافظه اصلی یا از حافظه اصلی، که اغلب مبتنی بر استفاده از انتقال داده DMA است. در مقایسه با یک سیستم که از حافظه های نهان(cache) استفاده می کند، یک سیستم با این حافظه ها(scratchpad)، یک سیستم با تاخیرهای حافظه دسترسی غیریکپارچه است، زیرا تاخیرهای دسترسی به انواع مختلف این حافظه و حافظه اصلی تفاوت دارد. یک تفاوت دیگر که یک سیستم از حافظه های نهان استفاده می کند، این است که این حافظه معمولاً یک کپی از داده ها را ندارد که در حافظه اصلی ذخیره شده اند.
Scratchpadها برای ساده سازی منطق ذخیره سازی نهان(caching) استفاده می شوند و برای تضمین اینکه یک واحد می تواند بدون درگیری حافظه اصلی در یک سیستم با استفاده از پردازنده های چندگانه کار کند، به خصوص در سیستم چند پردازنده ای سیستم بر تراشه(multiprocessor system-on-chip) که برای سیستم های نهفته هستند. آنها عمدتاً برای ذخیره سازی نتایج موقت (همان طور که در پشته CPU یافت می شوند) مناسب می باشند و معمولاً نیازی به درخواست دادن به حافظه اصلی نیستند. با این حال هنگامی که توسط DMA تغذیه می شود، می توانند به جای یک حافظه نهان برای بررسی وضعیت حافظه اصلی آهسته تر، استفاده شوند. مسائل مربوط به مکان مرجع در رابطه با کارایی استفاده می شود؛ اگر چه بعضی از سیستم ها اجازه دسترسی به DMA را برای دسترسی به مجموعه داده های مستطیلی می دهند. یکی دیگر از تفاوت این است که scratchpadها به صراحت و به صورت مستقیم توسط برنامه ها دستکاری می شود. آنها ممکن است برای برنامه های بی درنگ مفید باشند، در حالی که زمان بندی قابل پیشبینی توسط رفتار حافظه نهان مانع می شده است.
Scratchpadها در پردازنده های mainstream desktop استفاده نمی شوند، زیرا برای سامانه موروثی که از نسل به نسل به کار می روند، عموماً لازم است که حجم حافظه موجود در تراشه قابل تغییر باشد.. آنها بهتر در سیستم های نهفته به کار برده بشوند مثل پردازنده های خاص منظوره و کنسول های بازی، جایی که تراشه ها اغلب به عنوان MPSoC تولید می شوند که نرم افزار اغلب به یک پیکربندی سخت افزاری تنظیم می شود.
Fairchild F8 در سال ۱۹۷۵ شامل ۶۴ بایت scratchpad بود.
Cyrix 6x86 تنها پردازنده x86 دسکتاپ است با یک scratchpad اختصاصی را در اختیار دارد.
SuperH، که در کنسول های Sega مورد استفاده قرار می گیرد، می تواند cachelineها را به یک آدرس خارج از حافظه اصلی برای استفاده به عنوان یک scratchpad قفل کند.
PS1 R3000 سونی در عوض یک حافظه L1 دارای یک scratchpad است. در اینجا می توان پشته CPU را جایگزین کرد، نمونه ای از کاربرد فضای کاری موقت.
پردازنده کمکی(coprocessor) موازی Adapteva's Epiphany برای هر هسته حافظه های محلی در نظر می گیرد، متصل شده توسط شبکه درون یک تراشه، با قابلیت DMA بین آنها و ارتباطات خارج از تراشه (احتمالاً به DRAM). معماری اش شبیه سلول سونی است، به جز اینکه تمام هسته ها می توانند به طور مستقیم با scratchpadهای یکدیگر متصل شوند و پیام های شبکه را از دستورالعمل های load/store استاندارد ارسال کنند.
سونی PS2 Emotion Engine شامل ۱۶ کیلوبایت scratchpad که مشخص می کند به یا از کدام DMA انتقال داده بشود و می تواند به GS و حافظه اصلی صادر شود.
سلولهای SP محدود به کار در حافظه محلی خود هستند، با تکیه بر DMA که برای انتقال از / به حافظه اصلی و بین حافظه های محلی، بسیار شبیه یک scratchpad هستند. در این راستا، مزیت اضافی ناشی از فقدان سخت افزار این است که برای بررسی و به روز رسانی انسجام بین حافظه های نهان گوناگون است: این طراحی از این فرض سود می برد که هر فضای کاری پردازنده جدا و خصوصی است. انتظار می رود این مزیت قابل توجه تر شود زیرا تعداد پردازنده ها در آینده "many-core" مقیاس می شود. با این حال، به دلیل حذف برخی از منطقهای سخت افزاری، داده ها و دستورالعمل های برنامه های کاربردی در SPEها باید از طریق نرم افزار مدیریت شود حتی اگر کل کار در SPE نمی تواند در حافظه محلی متناسب باشد.
بسیاری از پردازنده های دیگر اجازه می دهند که خطوط ذخیره سازی L1 قفل شوند.
اکثر پردازنده های سیگنال دیجیتال از یک scratchpad استفاده می کنند. بسیاری از شتابدهنده های 3D گذشته و کنسول های بازی (از جمله PS2) از DSPها برای تبدیل های راسی استفاده کرده اند. این روش با رویکرد مبتنی بر جریان که در GPUهای مدرن، که اشتراک های زیادی با عملکردهای حافظه نهان CPU دارد، متفاوت است.
NVIDIA ۸۸۰۰ GPU (تحت اجرا CUDA)، ۱۶ کیلوبایت scratchpad (NVIDIA آن را «حافظه به اشتراک گذاشته شده» می نامد) در هر thread-bundle زمانی که برای وظایف GPGPU استفاده می شود، فراهم می کند. Scratchpad همچنین در بعد از Fermi GPU استفاده شده است(GeForce 400 Series).
تراشه PhysXَ از Ageia شامل می باشد یک رم scratchpad در یک حالت شبیه به Cell است؛ نظریه آن بیان می کند که یک سلسله مراتب حافظه با استفاده کمتر از فیزیک و محاسبات برخورد و تصادم، برخوردار است. این حافظه ها نیز ذخیره می کنند و یک سوئیچ بین آنها انتقال می دهد.
پردازنده نایت لندینگ اینتل ۱۶ گیگابایت MCDRAM که می تواند به عنوان یک حافظه پنهان یا حافظه scratchpad پیکربندی شود یا به برخی از حافظه نهان و بعضی از حافظه های scratchpad تقسیم بشوند.
Movidius Myriad 2، یک واحد پردازش بینایی، به عنوان یک معماری چند هسته ای با یک scratchpad بزرگ چند منظوره به سازمان یافته شده است.
این حافظه را می توان شبیه به حافظه نهان L1 در نظر گرفت که در آن، نزدیکترین حافظه ای است به واحد محاسبه و منطق پس از ثبات های پردازنده و با دستورالعمل های صریح و اختصاصی برای انتقال داده ها به حافظه اصلی یا از حافظه اصلی، که اغلب مبتنی بر استفاده از انتقال داده DMA است. در مقایسه با یک سیستم که از حافظه های نهان(cache) استفاده می کند، یک سیستم با این حافظه ها(scratchpad)، یک سیستم با تاخیرهای حافظه دسترسی غیریکپارچه است، زیرا تاخیرهای دسترسی به انواع مختلف این حافظه و حافظه اصلی تفاوت دارد. یک تفاوت دیگر که یک سیستم از حافظه های نهان استفاده می کند، این است که این حافظه معمولاً یک کپی از داده ها را ندارد که در حافظه اصلی ذخیره شده اند.
Scratchpadها برای ساده سازی منطق ذخیره سازی نهان(caching) استفاده می شوند و برای تضمین اینکه یک واحد می تواند بدون درگیری حافظه اصلی در یک سیستم با استفاده از پردازنده های چندگانه کار کند، به خصوص در سیستم چند پردازنده ای سیستم بر تراشه(multiprocessor system-on-chip) که برای سیستم های نهفته هستند. آنها عمدتاً برای ذخیره سازی نتایج موقت (همان طور که در پشته CPU یافت می شوند) مناسب می باشند و معمولاً نیازی به درخواست دادن به حافظه اصلی نیستند. با این حال هنگامی که توسط DMA تغذیه می شود، می توانند به جای یک حافظه نهان برای بررسی وضعیت حافظه اصلی آهسته تر، استفاده شوند. مسائل مربوط به مکان مرجع در رابطه با کارایی استفاده می شود؛ اگر چه بعضی از سیستم ها اجازه دسترسی به DMA را برای دسترسی به مجموعه داده های مستطیلی می دهند. یکی دیگر از تفاوت این است که scratchpadها به صراحت و به صورت مستقیم توسط برنامه ها دستکاری می شود. آنها ممکن است برای برنامه های بی درنگ مفید باشند، در حالی که زمان بندی قابل پیشبینی توسط رفتار حافظه نهان مانع می شده است.
Scratchpadها در پردازنده های mainstream desktop استفاده نمی شوند، زیرا برای سامانه موروثی که از نسل به نسل به کار می روند، عموماً لازم است که حجم حافظه موجود در تراشه قابل تغییر باشد.. آنها بهتر در سیستم های نهفته به کار برده بشوند مثل پردازنده های خاص منظوره و کنسول های بازی، جایی که تراشه ها اغلب به عنوان MPSoC تولید می شوند که نرم افزار اغلب به یک پیکربندی سخت افزاری تنظیم می شود.
wiki: حافظه دفتر یادداشت