גישה ישירה לזיכרון (DMA) בארכיטקטורת מחשבים

נסה את הכלי שלנו לביטול בעיות





לצורך ביצוע תוכנית מחשב, היא מצריכה עבודה סינכרונית של יותר ממרכיב אחד של המחשב. לדוגמה, מעבדים - מתן מידע בקרה נחוץ, כתובות ... וכו ', אוטובוסים - להעברת מידע ונתונים לזיכרון וממנו להתקני קלט / פלט וכו'. הגורם המעניין של המערכת יהיה האופן בו היא מטפלת בהעברת המידע בין מעבדים, זיכרון והתקני קלט / פלט. בדרך כלל, מעבדים שולטים בכל התהליך של העברת נתונים, ממש מתחילת ההעברה לאחסון הנתונים ביעד. זה מוסיף עומס על המעבד ולרוב הוא נשאר במצב האידיאלי, ובכך מקטין את יעילות המערכת. כדי להאיץ את העברת הנתונים בין התקני קלט / פלט וזיכרון, בקר DMA משמש כמנהל תחנות. בקר DMA מעביר נתונים תוך התערבות מינימלית של המעבד.

מהו בקר DMA?

המונח DMA מייצג גישה ישירה לזיכרון. התקן החומרה המשמש לגישה ישירה לזיכרון נקרא בקר DMA. DMA בקר הוא יחידת בקרה , חלק ממכשירי הקלט / פלט מעגל ממשק , שיכולים להעביר גושי נתונים בין התקני קלט / פלט וזיכרון ראשי עם התערבות מינימלית של המעבד.




דיאגרמת בקר DMA בארכיטקטורת מחשבים

בקר DMA מספק ממשק בין האוטובוס והתקני פלט הקלט. למרות שהוא מעביר נתונים ללא התערבות של המעבד, הוא נשלט על ידי המעבד. המעבד יוזם את בקר ה- DMA על ידי שליחת כתובת ההתחלה, מספר המילים בבלוק הנתונים וכיוון העברת הנתונים. כלומר. ממכשירי קלט / פלט לזיכרון או מזיכרון ראשי למכשירי קלט / פלט. ניתן לחבר יותר ממכשיר חיצוני אחד לבקר DMA.

DMA בארכיטקטורת מחשבים

DMA בארכיטקטורת מחשבים



בקר DMA מכיל יחידת כתובת ליצירת כתובות ובחירת מכשיר קלט / פלט להעברה. הוא מכיל גם את יחידת הבקרה וספירת הנתונים לשמירת ספירות של מספר הבלוקים שהועברו ולציון כיוון העברת הנתונים. לאחר סיום ההעברה, DMA מודיע למעבד על ידי הפסקת הפרעה. תרשים הבלוקים האופייני של בקר ה- DMA מוצג באיור שלמטה.

דיאגרמת חסימה אופיינית של בקר DMA

דיאגרמת חסימה אופיינית של בקר DMA

עבודה של בקר DMA

בקר DMA צריך לחלוק את האוטובוס עם המעבד בכדי לבצע את העברת הנתונים. המכשיר המחזיק את האוטובוס בזמן נתון נקרא Master bus. כאשר יש לבצע העברה ממכשיר קלט / פלט לזיכרון או להיפך, המעבד מפסיק את ביצוע התוכנית הנוכחית, בתוספות התכנית מונה, מעביר נתונים מעל מחסנית ואז שולח אות בחירת DMA לבקר DMA דרך אוטובוס הכתובות.

אם בקר ה- DMA פנוי, הוא מבקש את בקרת האוטובוס מהמעבד על ידי העלאת אות בקשת האוטובוס. המעבד מעניק את האוטובוס לבקר על ידי העלאת אות הענקת האוטובוסים, כעת בקר ה- DMA הוא מנהל האוטובוסים. המעבד יוזם את בקר ה- DMA על ידי שליחת כתובות הזיכרון, מספר גושי הנתונים להעברה וכיוון העברת הנתונים. לאחר הקצאת משימת העברת הנתונים לבקר ה- DMA, במקום להמתין באופן אידיאלי להשלמת העברת הנתונים, המעבד ממשיך את ביצוע התוכנית לאחר שאחזר הוראות מהערימה.


העברת נתונים על ידי DMA במחשב על ידי DMA

העברת נתונים במחשב על ידי בקר DMA

לבקר ה- DMA יש כעת שליטה מלאה באוטובוסים והוא יכול לתקשר ישירות עם זיכרון והתקני קלט / פלט ללא תלות במעבד. היא מבצעת את העברת הנתונים על פי הוראות הבקרה שקיבל המעבד. לאחר השלמת העברת הנתונים, הוא משבית את אות בקשת האוטובוסים והמעבד משבית את אות הענקת האוטובוסים ובכך מעביר את השליטה באוטובוסים למעבד.

כאשר מכשיר קלט / פלט רוצה ליזום את ההעברה, הוא שולח אות בקשת DMA לבקר ה- DMA, עליו הבקר מאשר אם הוא בחינם. ואז הבקר מבקש מהמעבד את האוטובוס, ומעלה את אות בקשת האוטובוס. לאחר קבלת אות מענק האוטובוס הוא מעביר את הנתונים מהמכשיר. עבור בקר DMA ערוץ n ניתן לחבר מספר התקנים חיצוניים.

ה- DMA מעביר את הנתונים בשלושה מצבים הכוללים את הפעולות הבאות.

ל) מצב פרץ : במצב זה DMA מעביר את האוטובוסים למעבד רק לאחר השלמת העברת הנתונים השלמה. בינתיים, אם המעבד דורש אוטובוס הוא צריך להישאר אידיאלי ולהמתין להעברת נתונים.

ב) מצב גניבת מחזור : במצב זה, DMA נותן שליטה על אוטובוסים למעבד לאחר העברת כל בתים. היא מבקשת ברציפות בקשה לשליטה באוטובוסים, מבצעת העברה של בת אחד ומחזירה את האוטובוס. על ידי מעבד זה אינו צריך לחכות זמן רב אם הוא זקוק לאוטובוס למשימה עם עדיפות גבוהה יותר.

ג) מצב שקוף: כאן, DMA מעביר נתונים רק כאשר ה- CPU מבצע את ההוראה שאינה מחייבת שימוש באוטובוסים.

בקר DMA 8237

  • ל- 8237 4 ערוצי קלט / פלט יחד עם הגמישות להגדיל את מספר הערוצים.
  • ניתן לתכנת כל ערוץ בנפרד ויש לו כתובת 64k ויכולת נתונים.
  • בלוק בקרת התזמון, בלוק בקרת הפקודה של התוכנית, חסימת מקודדי העדיפות הם שלושת הבלוקים העיקריים של 8237A.
  • התזמון הפנימי ואותות הבקרה החיצוניים מונעים על ידי בלוק בקרת התזמון.
  • פקודות שונות הניתנות על ידי המעבד ל- DMA מפוענחות באמצעות בלוק בקרת פקודות התוכנית.
  • איזה ערוץ צריך לקבל עדיפות גבוהה ביותר נקבע לפי העדיפות מקודד לחסום .
    ל- 8237A 27 מרשמים פנימיים.

8237A פועל בשני מחזורים - מחזור אידיאלי ומחזור פעיל, כאשר כל מחזור מכיל 7 מצבים נפרדים המורכבים מתקופת שעון אחת כל אחד.

S0 - המצב הראשון, שבו הבקר ביקש את האוטובוס והמתין לאישור מהמעבד.

S1, S2, S3, S4 נקראים מצבי העבודה של 8237A שבהם מתרחשת העברת הנתונים בפועל. אם נדרש זמן נוסף למדינות המתנה להעברה מתווספות SW בין מצבים אלה.

לצורך העברת זיכרון - להעביר זיכרון יש לבצע העברות קריאה וזיכרון. שמונה מדינות נדרשות להעברה אחת. ארבע המצבים הראשונים עם מנויים S11, S12, S13, S14 מבצעים את העברת הקריאה מהזיכרון וארבעת S21, S22, S23, S24 הבאים מיועדים להעברת כתיבה לזיכרון.

DMA נכנס למצב אידיאלי כאשר אף ערוץ אינו מבקש שירות ומבצע מצב SI. SI הוא מצב לא פעיל שבו ה- DMA אינו פעיל עד שהוא מקבל בקשה. במצב זה, DMA נמצא במצב תוכנית בו המעבד יכול לתכנת את ה- DMA.

כאשר ה- DMA נמצא במצב האידיאלי ואינו מקבל בקשות ערוץ נוספות, הוא מוציא אות HRQ למעבד ונכנס למצב פעיל שבו הוא יכול להתחיל להעביר נתונים באמצעות מצב פרץ, מצב גניבת מחזור או מצב שקוף.

8237 PinDiagram

תרשים סיכות 8237

בקר DMA 8257

כאשר הוא משויך למכשיר יציאת פלט / פלט יחיד של Intel 8212, בקר ה- DMA 8257 יוצר 4 ערוצים שלמים בקר DMA . עם קבלת בקשת העברה בקר 8257-

  • רוכש את השליטה על אוטובוס המערכת מהמעבד.
  • היקפי המחובר לערוץ בעדיפות הגבוהה ביותר מוכר.
  • החלקים הפחות משמעותיים של כתובת הזיכרון מועברים מעל שורות הכתובת A0-A7 של אוטובוס המערכת.
  • המשמעותי ביותר 8 ביטים של כתובת הזיכרון מועברים ליציאת קלט / פלט 8212 דרך קווי נתונים.
  • מייצר את אותות הבקרה המתאימים להעברת נתונים בין ציוד היקפי למיקומי זיכרון ממוענים.
  • כאשר המספר המצוין של הבתים מועבר, הבקר מודיע לסוף ההעברה של המעבד על ידי הפעלת פלט ספירת המסוף (TC).

לכל ערוץ 8257 מכיל שניים רישומי 16 סיביות - 1) רישום כתובות DMA ו- 2) רישום ספירת מסופים, שיש לאתחל לפני הפעלת ערוץ. הכתובת של מיקום הזיכרון הראשון אליו ניגשת נטענת במרשם כתובות ה- DMA. הסדר התחתון של 14 סיביות מהערך הטעון במרשם ספירת הטרמינל מציין את מספר מחזורי DMA מינוס אחד לפני הפעלת פלט ספירת הטרמינל. סוג הפעולה של ערוץ מסומן על ידי שני הביטים המשמעותיים ביותר במרשם ספירת הטרמינלים.

תרשים פין 8257

תרשים פין 8257

יתרונות וחסרונות של בקר DMA

היתרונות והחסרונות של בקר DMA כוללים את הדברים הבאים.

יתרונות

  • DMA מאיץ את פעולות הזיכרון על ידי עקיפת מעורבות המעבד.
  • עומס העבודה על המעבד פוחת.
  • עבור כל העברה, רק מספרים מסוימים של מחזורי שעון נדרשים

חסרונות

  • ניתן לראות בעיית קוהרנטיות במטמון כאשר משתמשים ב- DMA להעברת נתונים.
  • מעלה את מחיר המערכת.

DMA ( גישה ישירה לזיכרון ) נעשה שימוש בבקר בכרטיסי גרפיקה, כרטיסי רשת, כרטיסי קול וכו '... DMA משמש גם להעברה תוך שבב במעבדים מרובי ליבות. פועל באחד משלושת המצבים שלו, DMA יכול להפחית באופן משמעותי את עומס המעבד. באילו מצבי DMA עבדת? איזה מהמצבים שאתה מחשיב יעיל יותר?