מדוע העברת נתונים טוריים מהירה יותר מאשר העברת נתונים מקבילים?
חיבורי כונן קשיח SATA הם מהר יותר מאשר חיבורי כונן קשיח PATA קשיח ואותו ניתן לומר על סטנדרטים הכבלים החיצוניים, אבל זה אנטי אינטואיטיבי: למה לא השידור המקביל יהיה מהיר יותר?
מפגש השאלות והתשובות של היום מגיע אלינו באדיבות SuperUser - חלוקה מחודשת של Stack Exchange, קיבוץ מונחה על ידי הקהילה של אתרי אינטרנט של Q & A.
השאלה
SuperUser הקורא צנוע הוא סקרן לגבי העברת נתונים שיעורי חיבורים מקבילים טורי:
באופן אינטואיטיבי, היית חושב כי שידור נתונים מקבילים צריך להיות מהיר יותר מאשר שידור נתונים סדרתי; במקביל אתה מעביר סיביות רבות בו זמנית, ואילו בסידורי אתה עושה קצת אחד בכל פעם.
אז מה עושה ממשקי SATA מהר יותר מאשר PATA, PCI-E התקנים מהר יותר PCI, יציאות טוריות מהר יותר מקביל?
אמנם קל ליפול לתוך ההנמקה כי SATA הוא חדש יותר מאשר PATA, חייב להיות מנגנון בטון יותר בעבודה מאשר רק גיל.
התשובה
SuperUser תורם Mpy מציעה כמה תובנות לגבי אופיו של סוגי השידור:
אתה לא יכול לנסח את זה ככה.
שידור טורי הוא איטי יותר מאשר שידור מקביל בהתחשב אותו תדר האות. עם שידור מקבילי אתה יכול להעביר מילה אחת לכל מחזור (למשל 1 בתים = 8 סיביות), אך עם שידור טורי רק חלק קטן ממנו (למשל 1 סיביות).
הסיבה מכשירים מודרניים להשתמש שידור סדרתי הוא כדלקמן:
- אתה לא יכול להגדיל את תדר האות עבור שידור מקביל ללא הגבלה, כי, על ידי עיצוב, כל האותות מן המשדר צריך להגיע למקלט ב אותו זמן. זה לא יכול להיות מובטחת עבור תדרים גבוהים, כפי שאתה לא יכול להבטיח את זה זמן מעבר האות הוא שווה לכל קווי האות (לחשוב על נתיבים שונים על mainboard). ככל שהתדר גבוה יותר, ההבדלים הזעירים יותר חשובים. לפיכך המקלט צריך לחכות עד שכל קווי האות מיושבים - כמובן, מחכה מוריד את קצב ההעברה.
- נקודה נוספת טובה (מן הפוסט הזה) הוא אחד שצריך לשקול crosstalk עם קווי אות מקבילים. ככל שהתדירות גבוהה יותר, כך עולה יותר ויותר, ומבחינתו, ההסתברות של מילה פגומה והצורך לשדר אותה מחדש. [1]
אז, גם אם אתה מעביר פחות נתונים לכל מחזור עם שידור טורי, אתה יכול ללכת תדרים גבוהים הרבה יותר וכתוצאה מכך שיעור העברה גבוה יותר נטו.
[1] זה גם מסביר מדוע UDMA- כבלים (במקביל ATA עם מהירות העברה מוגברת) היו כפליים חוטים כמו סיכות. כל חוט שני היה מקורקע כדי להפחית crosstalk.
סקוט צ'מברליין מהדהד את תשובתו של מיפ ומתרחב על כלכלת העיצוב:
הבעיה היא סנכרון.
כאשר אתה שולח במקביל עליך למדוד את כל השורות באותו רגע בדיוק, כמו שאתה הולך מהר יותר את גודל החלון לרגע זה הופך קטן יותר ויותר, בסופו של דבר זה יכול לקבל כל כך קטן, כי חלק החוטים עדיין עשוי להיות התייצבות בעוד שאחרים סיים לפני שנגמר לך הזמן.
על ידי שליחת סדרתי אתה כבר לא צריך לדאוג לגבי כל השורות התייצבות, רק שורה אחת. וזה יותר חסכוני לעשות קו אחד לייצב 10 פעמים מהר יותר מאשר להוסיף 10 שורות באותה מהירות.
כמה דברים כמו PCI Express לעשות את הטוב שבשני העולמות, הם עושים קבוצה מקבילה של חיבורים סדרתיים (יציאת 16x על לוח האם שלך יש 16 חיבורים סדרתיים). על ידי כך שכל שורה לא צריכה להיות מסונכרנת עם הקווים האחרים, כל עוד הבקר בקצה השני יכול לסדר מחדש את "מנות" הנתונים כפי שהם באים באמצעות הסדר הנכון.
הדף כיצד עובד דברים עבור PCI-Express עושה בדיקה טובה מאוד לעומק על איך PCI Express בסידורי יכול להיות מהיר יותר מאשר PCI או PCI-X במקביל.
TL; DR גרסה: זה קל יותר לבצע חיבור אחד ללכת 16 פעמים מהר יותר מאשר 8 קשרים ללכת 2 פעמים מהר יותר כאשר אתה מגיע לתדרים גבוהים מאוד.
יש לך משהו להוסיף להסבר? נשמע את ההערות. רוצה לקרוא תשובות נוספות ממשתמשים אחרים בעלי ידע טכנולוגי מתמצא? בדוק את נושא הדיון המלא כאן.