עבור לתוכן

צורת העברת המידע במחשב

Featured Replies

פורסם

בכל מקרה שמעורב בקר כלשהו - זה אומר שאין התערבות ישירה של המעבד.

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

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

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

  • תגובות 37
  • צפיות 2.3k
  • נוצר
  • תגובה אחרונה
פורסם

shklak בבקרי IDE ישנים שעבדו במצב PIO (ולא DMA כמו היום), המידע היה עובר בתיאום ודרך המעבד עצמו.... היום בעזרת שיטות כמו DMA אפשר ליצור קשר ישיר בין רכיבים בלי המעבד...

המטמון הוא חלק מהמעבד.. חלקים מהמעבד עובדים מול המטמון, אבל המעבד אחראי על סנכרון המטמון מול הזיכרון של המחשב (יש חלקים במעבד שאחראים על ניהול המטמון... מעבר לכך המטמון שקוף מחוץ למעבד).

פורסם

לדעתי אתה טועה תפוחים.

המעבד פועל רק מול הזיכרון מטמון שלו! לא מול זיכרון ולא מול הדיסק הקשיח.

מאיפה מגיע המידע לקאש?

דרך הצ'יפסט. הגיוני מאוד שהוא מגיע ישירות מההרד דיסק בלי לעבור בזיכרון RAM.

אשאל אותך את אותה שאלה אבסורדית ששאלתי קודם:

מה הכתובת בזכרון (זה האבסורד) של מידע שמגיע למעבד ישירות מהכונן?

לכן, כל מידע שהמעבד מפעיל עליו חישובים חייב להיות קודם כל בזכרון הראשי,

כמובן שהוא עובר לזכרון המטמון של המעבד לצורך ביצוע החישוב, זה ברור.

פורסם

אשאל אותך את אותה שאלה אבסורדית ששאלתי קודם:

מה הכתובת בזכרון (זה האבסורד) של מידע שמגיע למעבד ישירות מהכונן?

לכן, כל מידע שהמעבד מפעיל עליו חישובים חייב להיות קודם כל בזכרון הראשי,

כמובן שהוא עובר לזכרון המטמון של המעבד לצורך ביצוע החישוב, זה ברור.

תפוחים צודק,

אני למדתי אסמבלר,

כל הפעולות מתבצעות במקביל בין הזכרון למעבד, האוגרים מול תאי הזכרון.

גם אי אפשר להעביר מידע ממה שלמדתי מתא זכרון לתא זכרון, לכן קיים מיעון עקיף.

גם בלי ללמוד הייתי מבין את זה, זה ברור שיש קשר הדוק בין המעבד לזכרון.

פורסם

אשאל אותך את אותה שאלה אבסורדית ששאלתי קודם:

מה הכתובת בזכרון (זה האבסורד) של מידע שמגיע למעבד ישירות מהכונן?

לכן, כל מידע שהמעבד מפעיל עליו חישובים חייב להיות קודם כל בזכרון הראשי,

כמובן שהוא עובר לזכרון המטמון של המעבד לצורך ביצוע החישוב, זה ברור.

http://en.wikipedia.org/wiki/I/O_methods

ואני מצטט

Port-mapped I/O uses a special class of CPU instructions specifically for performing I/O. This is generally found on Intel microprocessors, specifically the IN and OUT instructions which can read and write a single byte to an I/O device. I/O devices have a separate address space from general memory, either accomplished by an extra "I/O" pin on the CPU's physical interface, or an entire bus dedicated to I/O.

הבחור (במקור) שאל אם יש אפשרות למעבד לקרוא מידע מדברים אחרים (לא זכרון), אז התשובה היא כן, וככה עושים את זה, אם זה יעיל או לא, ואילו אפשרויות אחרות יש, זה כבר דיון אחר...

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

------

הנה דוגמא קצרה בשרת שלי, כשאר אני כותב LS /PROC/PROC:

0000-001f : dma1

0020-0021 : pic1

0040-0043 : timer0

0050-0053 : timer1

0060-006f : keyboard

0070-0077 : rtc

0080-008f : dma page reg

00a0-00a1 : pic2

00c0-00df : dma2

00f0-00ff : fpu

0170-0177 : ide1

01f0-01f7 : ide0

0376-0376 : ide1

03c0-03df : vga+

ויש עוד...

פורסם

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

פורסם

shklak בבקרי IDE ישנים שעבדו במצב PIO (ולא DMA כמו היום), המידע היה עובר בתיאום ודרך המעבד עצמו.... היום בעזרת שיטות כמו DMA אפשר ליצור קשר ישיר בין רכיבים בלי המעבד...

המטמון הוא חלק מהמעבד.. חלקים מהמעבד עובדים מול המטמון, אבל המעבד אחראי על סנכרון המטמון מול הזיכרון של המחשב (יש חלקים במעבד שאחראים על ניהול המטמון... מעבר לכך המטמון שקוף מחוץ למעבד).

למיטב זיכרוני, במצב PIO, בקר ה-IDE בסה"כ "השתלט" על פסיקה (Interrupt) לגישה לזיכרון במקום המעבד (חלוקת שימוש בזיכרון) לזמן מוגבל כלשהו.

כלומר, המידע לא עבר ישירות למעבד.

המידע לפי הבנתי עובר תמיד קודם לזיכרון ואח"כ למעבד.

PIO ו-UDMA מסמלות בסה"כ את אופן הגישה לזיכרון ועל חשבון מה (אם בכלל).

אם אתה יודע אחרת - אשמח אם תאיר את עיניי.

עריכה : UDMA, איך שאני רואה את זה, מדלג על שלב במעבר מידע לזיכרון. במקום גישה דרך הגשר הצפוני עם כל המידע שמגיע דרך הגשר הדרומי - מתאפשרת גישה ישירה לבקר הזיכרון או לזיכרון עצמו. כלומר, המידע מהדיסקים הקשיחים לא צריך ל"התחרות" מול מידע אחר שמגיע מבקרי USB,פייר-וויר,סאונד וכו', אלא יש לו עדיפות וגישה נפרדת לזיכרון. דבר שמאיץ את העניינים כמובן.

פורסם

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

אתה תרגיש ירידה דרסטית בביצועים.

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

פורסם

ואם פעולות לא יתבצעו ויסתיימו?

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

פורסם

ואם פעולות לא יתבצעו ויסתיימו?

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

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

פורסם

ואם פעולות לא יתבצעו ויסתיימו?

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

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

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

פורסם

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

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

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

הממ.. נשמע מוכר משהו =| כנראה שהגיע הזמן להרחיב את ה256MB שלי קצת..

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

פורסם

הממ.. נשמע מוכר משהו =| כנראה שהגיע הזמן להרחיב את ה256MB שלי קצת..

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

זיכרון וירטואלי (שימוש בחלק מהדיסק הקשיח כהרחבה של הזיכרון הראשי) חד משמעית יהיה איטי הרבה יותר מזיכרון ראשי, שממנו המעבד שואב נתונים לעיבוד.

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

תרחיב את הזיכרון הראשי.

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

פורסם

מקרה כזה של הקצאת מקום מהכונן הקשיח כזכרון הוא לא מקרה של מה שדיברתם עליו מקודם? שימוש ישיר של הכונן הקשיח ע"י המעבד?

פורסם

מקרה כזה של הקצאת מקום מהכונן הקשיח כזכרון הוא לא מקרה של מה שדיברתם עליו מקודם? שימוש ישיר של הכונן הקשיח ע"י המעבד?

לא בדיוק. באופן תיאורטי זה אולי נשמע דומה.

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים