מהי גישה ישירה לזיכרון (DMA) ואיך זה עובד? [MiniTool Wiki]
What Is Direct Memory Access
ניווט מהיר :
אתה יכול לאמץ את RDMA טכנולוגיה המאפשרת למחשבים ברשת להחליף נתונים בזיכרון הראשי מבלי לערב את המעבד, המטמון או מערכת ההפעלה של אף אחד מהמחשבים. אבל אתה יכול גם להשתמש בתכונת DMA כדי לשלוח ישירות נתונים מהתקן מחובר לזיכרון בלוח האם של המחשב. פוסט זה מאת MiniTool מדבר בעיקר על DMA.
הגדרת גישה ישירה לזיכרון
קודם כל, מהי גישה לזיכרון ישיר? ניתן לקצר גישה לזיכרון ישיר ל- DMA, שהיא תכונה של מערכות מחשב. זה מאפשר להתקני קלט / פלט (קלט / פלט) לגשת לזיכרון המערכת הראשי ( זיכרון גישה אקראית ), ללא תלות ביחידת העיבוד המרכזית (CPU), המזרזת את פעולות הזיכרון.
עֵצָה: יתכן שאתה מעוניין בפוסט זה - 8 פתרונות שימושיים לתיקון המעבד שלך ב- 100% ב- Windows 10 .
ללא גישה ישירה לזיכרון, כאשר המעבד משתמש בכניסות / יציאות מתוכנתות, הוא בדרך כלל תפוס במלואו במהלך כל פעולת הקריאה או הכתיבה, כך שהוא אינו יכול לבצע משימות אחרות. עם DMA, המעבד יוזם תחילה את ההעברה, ואז מבצע פעולות אחרות בזמן ההעברה, ולבסוף מקבל הפרעה מבקר ה- DMA (DMAC) לאחר סיום הפעולה.
גישה ישירה לזיכרון שימושית בכל פעם שהמעבד לא יכול לעמוד בקצב העברת הנתונים, או כאשר המעבד צריך לבצע עבודה בזמן שהוא ממתין להעברת נתונים של קלט / פלט איטי יחסית.
מערכות חומרה מרובות מאמצות גישה ישירה לזיכרון, כמו בקרי כונן דיסק, כרטיסי גרפיקה, כרטיסי רשת וכרטיסי קול. DMA משמש גם להעברת נתונים על שבב במעבדים מרובי ליבות. בהשוואה למחשבים ללא ערוצי גישה לזיכרון ישיר, מחשבים עם ערוצי DMA יכולים להעביר נתונים בין מכשירים עם תקורה הרבה פחות מעבד.
גישה לזיכרון ישיר יכולה לשמש גם עבור 'זיכרון לזיכרון' להעתקה או העברה של נתונים בזיכרון. זה יכול להעביר פעולות זיכרון יקרות (כגון עותקים גדולים או פעולות איסוף פיזור) מהמעבד למנוע DMA ייעודי. DMA חשוב בארכיטקטורות מחשוב זיכרון ברשת על שבב.
כיצד פועלת גישה לזיכרון ישיר?
ואז כיצד פועלת גישה לזיכרון ישיר? גישה ישירה לזיכרון ישיר (המכונה גם צד שלישי DMA) מאמצת בקר DMA. בקר ה- DMA יכול לייצר כתובות זיכרון ולהפעיל מחזורי קריאה או כתיבה בזיכרון. הוא מכסה מספר מרשמי חומרה הניתנים לקריאה וכתיבה על ידי המעבד.
רושמים אלה כוללים רישום כתובות זיכרון, רישום ספירת בתים ורשום בקרה אחד או יותר. בהתאם לתכונות המסופקות על ידי בקר הזיכרון הישיר ישיר, רושמי בקרה אלה יכולים למנות שילוב כלשהו של מקור, יעד, כיוון העברה (קריאה או כתיבה למכשיר קלט / פלט), גודל יחידת ההעברה ו / או מספר בתים להעביר בפרץ אחד.
כדי לבצע פעולות קלט, פלט או זיכרון לזיכרון, המעבד המארח מאתחל את בקר ה- DMA עם מספר המילים שיש להעביר וכתובת הזיכרון לשימוש. ואז המעבד מצווה על המכשיר ההיקפי להתחיל בהעברת נתונים.
ואז בקר הזיכרון הישיר מציע כתובות ושורות בקרת קריאה / כתיבה לזיכרון המערכת. בכל פעם שמכינים בית נתונים להעברה בין המכשיר ההיקפי לזיכרון, בקר ה- DMA מגדיל את רישום הכתובות הפנימי שלו עד להעברת חסימת נתונים מלאה.
דרכי פעולה
גישה ישירה לזיכרון פועלת באופן שונה במצבי פעולה שונים.
מצב פרץ
במצב פרץ, בלוק הנתונים המלא מועבר ברצף רציף. ברגע שהמעבד מאפשר לבקר ה- DMA גישה לאוטובוס המערכת, בקר ה- DMA יעביר את כל הבתים של הנתונים בבלוק הנתונים לפני שישחרר את השליטה באוטובוסי המערכת בחזרה למעבד, אך זה יגרום למעבד להיות לא פעיל למשך הרבה זמן רב. מצב זה נקרא גם 'מצב העברת חסימה'.
מצב גניבת מחזור
נעשה שימוש במצב גניבת המחזור במערכת בה לא ניתן להשבית את המעבד למשך הזמן הדרוש למצב העברת הפרץ. במצב גניבת מחזור, בקר ה- DMA משיג גישה לאוטובוס המערכת באמצעות האותות BR (Bus Request) ו- BG (Bus Grant), זהים למצב הפיצוץ. שני האותות הללו שולטים בממשק בין המעבד לבקר ה- DMA.
מצד אחד, במצב גניבת מחזור, מהירות העברת חסימת הנתונים אינה מהירה כמו במצב פרץ, אך מצד שני, זמן סרק המעבד אינו ארוך כמו במצב פרץ.
מצב שקוף
למצב השקוף לוקח הכי הרבה זמן להעביר חסימות נתונים, אבל זה גם המצב היעיל ביותר מבחינת ביצועי המערכת הכוללים. במצב שקוף, בקר ה- Memory Memory Access מעביר נתונים רק כאשר המעבד מבצע פעולות שאינן משתמשות באוטובוסי המערכת.
היתרון העיקרי של מצב שקוף הוא שהמעבד לא מפסיק לבצע את התוכניות שלו, והעברות גישה ישירות לזיכרון הן בחינם מבחינת זמן, בעוד החיסרון הוא שהחומרה צריכה לקבוע מתי המעבד אינו משתמש באוטובוסי המערכת, שיכולים להיות מסובך. זה נקרא גם 'מצב העברת נתונים DMA מוסתר'.