X-Stream II שיפור המהירות וההיענות של אוסילוסקופים

X-Stream IIPeter J. Papalaikis, Principal Technologist

מאמר זה מבהיר כיצד טכנולוגיה של X-Stream II משפרת את המהירות וההיענות (responsiveness) של אוסילוסקופים מתוצרת LeCroy.
האוסילוסקופ הדיגיטלי של היום נדרש לעבד צורות-גל ארוכות מאוד בצורה מאוד מורכבת כדי לספק מדידות אשר יאפשרו את המבט הפנימי לתוך התנהגות המערכת והמעגל. היכולת של האוסילוסקופים לספק מבט חודר קשורה ללא עוררין עם המושג של מהירות והיענות; זאת משום שמהנדס התכנון איננו יכול להמתין יותר מדי לתשובות ומשום שהוא חייב להיות מסוגל להפעיל את המכשיר בצורה נוחה ואמינה.
מרכיבי מהירות העיבוד ניתנים לפירוק לשלושה נושאים:
1.מאפייני העיבוד וחומרת קריאת צורת-הגל.
2.מערכת ההפעלה.
3.שיטת עיבור הנתונים המומחשת על-ידי התוכנה הקניינית.
מטרת מאמר זה היא להסביר כיצד LeCroy מחברת את תכנון האוסילוסקופ במונחים של ביצועי החומרה ומערכת ההפעלה ביחד עם שיטות העיבוד הקנייני למיטוב מהירות של עיבוד מורכב וארוך של צורת-הגל.
חומרת העיבוד נשלטת על-ידי המעבד, כולל מספר הביטים במעבד, סט ההוראות שלו והרחבות סט ההוראות, מספר ליבות המעבד, מהירות השעון וזיכרון המטמון. בעלות חשיבות נוספת הן מהירות אפיק החזית, כמות ומהירות הזיכרון הראשי. בעלת חשיבות מיוחדת היא מהירות הקריאה; המהירות בה מועברים הנתונים מזיכרון הרכישה לזיכרון הראשי.
מערכת ההפעלה חשובה משום שהיא מספקת תמיכה בליבות מרובות וריבוב הנימים. החשיבות של האחרון היא בתמיכה בצורך בכמויות גדולות יותר של זיכרון שניתן לפנות אליו. לאחרונה, כאשר אנו מדברים על מעבדי 64-ביט ומערכות הפעלה 64-ביט , אנחנו מתכוונים בעצם לאפיקי כתובת 64-ביט שיכולים לפנות לכמויות עצומות של זיכרון ראשי. לבסוף, אם כי לא קשורים לחלוטין למערכת ההפעלה אלא יותר למעבד הם הכלים לטיפול בהרחבות של הוראות מרובות-ליבה ומעבד. אלה כוללים MP פתוחים ויסודות ביצועיים עבור עיבוד האותות והפעולות המתמטיות.
קו האוסילוסקופים  WavePro 7Zi ו-WaveMaster 8Zi-A של LeCroy משתמש בחומרה ובמרכיבי מערכת ההפעלה החזקים ביותר הקיימים. אנחנו משתמשים ב-Intel® CoreTM 2 Quad(ארבע ליבות) שכל אחת מהן פועלת ב-3 גיגה-הרץ. זהו מעבד 64-ביט עם 12 מגה-ביט של מטמון ברמה 2 ואפיק חזיתי הפועל ב-1.33 גיגה-הרץ. יש לו יחידה בעלת נקודה צפה והוא תומך בהרחבות סט ההוראות Streaming SIMD (single-instruction/multiple data) 4  או SSE4. הוא כולל עד 8 Gb של זיכרון ראשי DDR II. המעבר מזיכרון הרכישה לזיכרון הראשי משתמש בגישה ישירה לזיכרון (DMA) ובארבעה נתיבים של חיבורים טוריים PCIe gen I. חיבורים אלה מעבירים את הנתונים לתוך הזיכרון הראשי בקצב של עד per second 800 Mpoints ללא התערבות המעבד. מאחר ש-LeCroy משתמשת במערכת ההפעלה Microsoft® VistaTM 64 bit, יישום האוסילוסקופ יכול לפנות לכל הזיכרון הקיים ויותר (מערכות הפעלה 32-ביט הפונות אל עד 4 גיגה-ביט מקסימום עם רק 1 גיגה-ביט זמין עבור יישום אחד).
באשר לשיטות העיבוד, LeCroy משתמשת בשיטה קניינית העושה שימוש מיטבי בזיכרון מטמון. כדי להבין נכונה את השימוש הזה במטמון, כדאי להבין כיצד המיקרו-מעבד והארכיטקטורות המבוססות על המיקרו-מעבד התפתחו במרוצת הזמן.
לפני כארבעים שנה, כאשר נולד המיקרו-מעבד, למחשב המובנה הפשוט היה אפיק זיכרון יחיד. ככלל, הייתה לו תכנית באכסון בלתי-נדיף, לרוב EPROM, ושטח אכסון מסוים ב-SRAM נדיף. אפיק הזיכרון פעל במהירות שקל לחזות המוכתבת על-ידי שעון המערכת. בימים אלה, אם רצית לקבוע את ביצועי המערכת שלך, יכולת פשוט למנות את מספר ההוראות ומספר מחזורי השעון לכל הוראה עבור משימה נתונה ולהכפיל את סה”כ המחזורים בתקופת השעון. היתרון היה שמהנדס התכנון יכול היה לחזות את הביצועים במלואם. החיסרון היה שהיה באמת רק דרך אחת שהוא יכול היה לנצל כדי להאיץ את התהליך – להקטין את מספר ההוראות.
במשך הזמן, חוק Moore הביא לשינויים דרמטיים בהספק ה-CPU. חוק Moore חוזה הכפלה של צפיפות הטרנזיסטורים כל 18 חודש, דבר המוביל להכפלה של מהירות העיבוד כל שלוש שנים. שתי ההגדלות האקספוננציאליות במהירות ובצפיפות הולידו מעבדים הפועלים מהר יותר ומטפלים בהוראות יותר מורכבות. הטיפול בהוראות מורכבות הוביל למזיזי חביות (barrel shifters) על הכרטיס, ליחידות בעלות נקודות צפות ולהוראות חזקות עבור מולטי-מדיה ועיבוד אותות דיגיטלי. מעבד בעל ארבע ליבות הפועל ב-3 גיגה-הרץ, כמו זה המשמש ב-אוסילוסקופים  WavePro 7Ziו-WaveMaster 8Zi של LeCroy המשתמשים בשיפורים בסט ההוראות הפועלים על ארבעה מרכיבי נתונים בו-זמנית בהוראה אחת לליבה, יכול בפוטנציה לפעול ב-40 מיליארד פעולות של נקודה צפה לשנייה.
התקדמות חוק Moore הובילה לעליות בלתי-יאומנו בביצועי ה-CPU, אולם ביצועים אלה לא תורגמו תמיד להיקפי השבב כמתואר על-ידי מהירות אפיק החזית או המהירות של גישה לזיכרון הראשי.
הפתרון לבעיית מהירות זו טמון בזיכרון המטמון.
ארכיטקטורות של זיכרון המטמון מחייבות בקר מטמון בעל כמות יחסית קטנה של זיכרון פנימי למעבד. הוא פועל לניהול ההעברות בין חומרת העיבוד הצמאה והזיכרון הראשי האיטי יחסית. בכל גישה לזיכרון שהמעבד מנסה לבצע, בקר המטמון בודק כדי לברר אם הנתונים המבוקשים קיימים בתוך המטמון. אם כן, הנתונים מואצים מזיכרון המטמון אל המעבד. אם לא, קורה “איבוד-מטמון” ואנחנו אומרים שהמעבד נתקע. בקר המטמון מעכב את העיבוד ופונה לזיכרון הראשי כדי לקבל את הנתונים החסרים. לרוב, כדי לשמור על זרימה חלקה של הדברים, המטמון פונה ליותר זיכרון מאשר נדרש בפעולה המכונה “מילוי קו-מטמון”. בפעולה זו, פונים למרכיבי נתונים מרובים מסביב המרכיב המבוקש במוד העברת פרץ (burst). בדרך זו בקר המטמון שומר על הנתונים שהתקבלו לאחרונה בזיכרון המטמון שלו. רוב ארכיטקטורות המטמון החדישות מיישמות מטמון “כותב בחזרה”. ארכיטקטורה זו מעכבת את הכתיבה עד שהיא נחוצה. במהלך איבוד-מטמון, בקר המטמון צריך לסלק את מרכיבי הנתונים הישנים ביותר כדי לפנות מקום עבור הנתונים החדשים ובמהלך פרק זמן זה מבוצעות גם כתיבות הנתונים.
במאמר זה אין מקום להסביר את כל הניואנסים של תכנוני ארכיטקטורת מטמון, אולם די לציין שביצועי המערכת עשויים להיות בלתי חזויים בעליל. היעדר החיזוי מבוסס על כיצד מעבדים את הנתונים. מההסבר הקודם, ניתן לראות שארכיטקטורת מטמון גורמת לכך שהביצועים מוגבלים על-ידי הספק ומהירות ה-CPU הפנימי רק כאשר מרכיבי נתונים קרובים מופעלים לעתים מאוד קרובות. הביצועים יוגבלו על-ידי מהירות המעבר מהזיכרון הראשי אל מטמון ה-CPU כאשר מרכיבי הנתונים המופעלים הם שונים לעתים קרובות או ממוקמים הרחק זה מזה. קביעת התדר או המרחק של מרכיבי הנתונים ניתנת להיעשות על-ידי קביעה פשוטה האם הנתונים המופעלים מתאימים לזיכרון המטמון. כמובן עבור אוסילוסקופ דיגיטלי הפועל בצורות-גל ארוכות מרכיבי הנתונים לא יתאימו לעולם במטמון המוגבל, אך המטרה היא להגביל את מספר ההעברות בין הזיכרון הראשי וזיכרון המטמון ככל האפשר כדי למטב את מהירות העיבוד.
זיכרון מטמון הוא דבר מופלא ויש לו את היכולת של מהירויות עיבוד דרמטיות. הבעיה היא שהשימוש המיטבי של מטמון נמצא בסתירה ישירה עם הקלות של תכנות יישומי עיבוד זיכרון ארוכים. אנסה לתאר את המצב כאן בעזרת דוגמה:
חשוב על עיבוד המבוצע על צורת-גל של אוסילוסקופ. נעיין בעיבוד בתור שורה של שלושה צעדים. הסוג האמיתי של העיבוד איננו חשוב לצורכי הדיון, אם כן נומר שקודם כל אנחנו נפעיל את פונקציית A לצורת-גל, ואח”כ פונקציית B ובעקבותיה פונקציית C. לצורכי דיון זה, נניח שפונקציות אלו אונריות (unary) ותואמות לכל מרכיב בצורת-הגל. הדרך המקובלת והקלה ביותר לבצע עיבוד זה היא ליצור חוצץ (buffer) נתוני ביניים ואז, עבור כל נקודה בצורת הגל, להשתמש בפונקציית עיבוד A בכל קריאת נקודה מצורת-הגל במבוא ולאכסן את התוצאה בחוצץ. לאחר מכן, עבור כל נקודה בחוצץ מפעילים פונקציית B ומאכסנים אותה בחזרה לתוך החוצץ. לבסוף, עבור כל נקודה בחוצץ, מפעילים פונקציית C ומאכסנים אותה בחזרה בחוצץ.
אם נזכור את פעולת זיכרון המטמון, אפשר לראות שבעוד התוכנה לביצוע עיבוד זה היא יחסית ישירה, היא איננה ממוטבת מבחינת זיכרון המטמון, במיוחד כאשר מפעילים אותה על צורות-גל ארוכות. כדי להבין זאת, עיין בעובדה שבמהלך העיבוד של פונקציית A, יהיה צורך לקרוא כל מרכיב מהזיכרון הראשי לתוך המטמון. זה בלתי נמנע. בהנחה של ארכיטקטורת מטמון חדישה, אם צורת-הגל היא קטנה דיה כדי להתאים למטמון, היא תישאר שם אפילו אם כותבים את הזיכרון בתוך החוצץ לאחר הפעלת פונקציית A. זה אומר שאף אם הוראות התוכנה מאכסנות את התוצאה בתוך החוצץ, בקר המטמון יעצור כתיבה זו עד שיידרש למשוך דבר-מה מהחוצץ. שוב, רק אם צורת הגל יכולה להתאים לתוך המטמון, כאשר מפעילים פונקציות B ו-C, כל נקודת נתונים קיימת במטמון והקריאה, העיבוד והאכסון של צורת הגל בחזרה בחוצץ לא תיצור את פעילות האפיק. מאחר שהאפיק הוא הרבה יותר איטי מאשר ה-CPU, ה-CPU פועל במהירות השיא שלו. תאור זה מראה מצב ממוטב. בדוגמה זו של צורת-גל קטנה, הנתונים נקראים פעם אחת מהזיכרון הראשי לתוך המטמון ואולי נכתבים פעם אחת מהמטמון לתוך הזיכרון הראשי אפילו אם קריאות וכתיבות נתונים רבות היו מקודדות בתוכנה.
עתה נתבונן במקרה של זיכרון ארוך. כמו במקרה של הזיכרון הקצר, כאשר מפעילים את פונקציית A, הנתונים מועברים מהזיכרון הראשי למטמון בכניסה הראשונה. כאשר מפעילים את פונקציית A ומאכסנים אותה בתוך החוצץ, עדיין לא נוצרת כל פעילות של האפיק. אולם, ככל שהתהליך מתמשך וניגשים לנתונים מצורת-הגל במבוא, לעתים במטמון  אוזל המקום ועליו לפנות מקום עבור נתונים חדשים. בנקודת זמן זו, הכתיבה המוקדמת יותר של החוצץ צריכה להיפתר והנתונים נכתבים לזיכרון הראשי (כלומר הם מוצאים מחוץ למטמון) כדי לפנות מקום עבור הנתונים החדשים. בכל קריאת נתונים שבהמשך, יש לדחוף החוצה נתונים ישנים מהמטמון כדי לפנות מקום עבור הדרישה לנתונים חדשים. זה אומר שכל גישה לנתונים כדי להפעיל פונקציית A גורמת לפעולת כתיבה וקריאה בין הזיכרון הראשי והמטמון – רק בגלל שצורת-הגל לא התאימה למטמון.
עיין עתה בפונקציית B. בתחילת העיבוד של פונקציית B, המטמון מכיל את חלק הסיום של תוצאת פונקציית A. זה אומר שהמרכיבים הראשונים של חוצץ הנתונים אינם בתוך המטמון. לכן, כל מרכיב נתונים המעובד על-ידי פונקציית B גורם גם לפעולת קריאה וכתיבה בין הזיכרון הראשי והמטמון.
בניגוד לצורת-הגל הקצרה והתנהגות הזיכרון הארוך, צורת-הגל הקצרה (בהנחה שהיא מתאימה למטמון) דורשת גישה אחת של קריאה וכתיבה עבור כל מרכיב נתונים המעובד, ללא תלות במספר הפעולות המופעלות על כל מרכיב. צורת-הגל הארוכה (בהנחה שהיא לא מתאימה למטמון) זקוקה לקריאה אחת וכתיבה אחת לכל פונקציית עיבוד מופעלת. חשוב לעיין בהשפעתה. לא רק שיש יותר מעברים בין המטמון לבין הזיכרון הראשי, אלא ברוב המקרים, מספר ההעברות יהווה צוואר הבקבוק הכללי של ביצועי המערכת. במקרים של צורות-גל ארוכות, מהירות העברת האפיק תקבע בלעדית את הביצועים. במקרים של צורות-גל קצרות, מהירות המעבד וניצול ליבת המעבד יקבעו את הביצועים. הדבר האחרון רצוי מאחר שהוא הרבה יותר מהיר.
בשימוש באוסילוסקופים, דרישות העיבוד הפכו ליותר ויותר תובעניות ואורכי צורת-הגל יותר ויותר ארוכים. זה אומר שעבור מקרי עיבוד רציניים, האוסילוסקופ צריך לבצע פעולות מדורגות ומורכבות על צורות-גל מאוד ארוכות. אם כן, כיצד תשיג סוג של ביצועים של צורת-גל קצרה כאשר יכולת המעבד שולטת על צורות-גל ארוכות היכן שצוואר הבקבוק של מהירות האפיק שואף לשלוט?  התשובה היא חלק מהארכיטקטורה של LeCroy X-Stream.
ההתנהגות של עיבוד X-Stream ניתנת לסיכום בקצרה כדלקמן: עבור צורות-גל ארוכות, צורת-הגל מפורקת לצורות-גל רבות וקצרות יותר. צורות-גל יותר קטנות אלה מעובדות בצורה הממטבת את ניצול המטמון. לבסוף, תוצאות צורת-הגל היותר קטנה מורכבות בחזרה לתוך תוצאת צורת-גל ארוכה סופית.
כל זה נשמע פשוט מאוד, אך למעשה הארכיטקטורה הדרושה כדי להשיג זאת היא מאוד מורכבת. ל-LeCroy מספר פטנטים בטכנולוגיה זו. זוהי הסיבה שהאוסילוסקופים של LeCroy עלו בביצועים על המכשירים המתחרים במהירות העיבוד בכמה וכמה מונים.
LeCroy השיקה את ארכיטקטורת ה-X-Stream ב-2002 עם ה-WaveMaster. בהשקה זו LeCroy ייצרה את סקופ העיבוד המהיר ביותר הקיים. זה היה ה-X-Stream  – בעל העיבוד המהיר. מאז, נערכו שיפורים ארכיטקטוניים רבים אשר שיאם היה ב-X-Stream II אשר הושק עם סדרת ה-WavePro 7 Zi. בעוד ה-X-Stream I הצטיין בעיבוד מהיר,X-Stream II  בולט בהיענות שלו. מרכיבי המפתח של ה-X-Stream II כוללים:
1.הצבת חוצץ דינמי לשיפור המצב בו ארכיטקטורת הזרימה כושלת.
2.מודים מוקדמים המאפשרים תצוגות מהירות, מוקדמות של תוצאות צורות-גל במהלך כיול הסקופ וה-”זום”.
3.ניתוק העיבוד המאפשר עצירה במהלך כיול הסקופ.
הצבת חוצץ דינמי כוללת הצבת החוצצים בזרם העיבוד במקומות אסטרטגיים כדי לשפר את תפוקת העיבוד. כדי להבין תופעה זו, זכור שדגם העיבוד המקובל מכיל חוצצים בכל שלב של התהליך. ניתן לראות זאת כחוצץ הממוקם בין כל מרכיב עיבוד בודד. בדגם הזרימה בו משתמש LeCroy, משתמשים בכל מקום בחוצצים קטנים המתאימים למטמון, אולם חוצץ המכיל את התוצאות המלאות של העיבוד יוצב רק בסוף זרימת העיבוד, אם בכלל. ב-X-Stream II, מבוצע מיטוב במצבים בהם זרמי עיבוד מרובים עוברים דרך מרכיבי עיבוד משותפים, כמתואר באיורים. במקרים רבים, עיבוד נתונים פעמים רבות בצורה הידידותית למטמון עדיין ממטב את מהירות העיבוד, אולם כאשר העיבוד הוא נמרץ ומורכב, זה איננו המקרה.
במקרים אלה, הארכיטקטורה של LeCroy X-Stream II מציבה חוצצים בצורה דינמית בתוך זרם העיבוד כדי למנוע חישובים מרובים. בדרך זו, X-Stream II היא מזיגה חכמה בין שיטות מסורתיות ושל זרימה אך בכל המקרים היא ממטבת את התפוקה.
המיטובים של X-Stream II להיענות קשורים ליכולת הן לחזות את תוצאות העיבוד והן לשתק את העיבוד. הדרך בה שני אלה פועלים יחדיו היא שכאשר נעשה שינוי בהצבת הסקופ, התוכנה מתחילה בו-זמנית את החישוב של תוצאות חדשות וגם תוצאה חזויה המבוססת על שינוי ממדי התמונה על המסך.
אם החיזוי נגמר לפני העיבוד, המשתמש רואה את החיזוי ואחריו התוצאה המעודכנת של העיבוד כאשר הוא מסתיים לבסוף. אם העיבוד מסיים ראשון, המשתמש רואה את התוצאה של העיבוד בלבד. אם במהלך החישוב של העיבוד המשתמש משנה את הכיוון, העיבוד משותק ומופעל מחדש תוך השימוש בשינויים החדשים והמשתמש בלבד רואה את תוצאת החיזוי. התוצאה של התנהגות זו חשובה כאשר המשתמש מנסה לכוון את הסקופ או מבצע שינויים רבים בכיוונים המבוססים על תוצאות המדידות. דבר זה עוזר באמת כאשר העיבוד מורכב  וצורך זמן וצורות-הגל הן ארוכות. בשימוש בשיטות העיבוד המסורתיות הקיימות בסקופים אחרים, המשתמש צריך להמתין שהעיבוד יסתיים לפני שיראה את תצוגת התוצאות ויבצע שינויים אחרים בכיוון. במקרים מסוימים, העיבוד יכול לדרוש יותר מעשר שניות ואם המשתמש מבקש לבצע שינויי כיוון מרובים, עליו להמתין לתוצאות פרק הזמן הארוך של כל עיבוד בטרם יבצע שינוי כיוון נוסף. סוג זה של פעולה עלול להיות מתסכל ביותר.
בסיכום, עיבוד אוסילוסקופים מהיר הוא שילוב של החומרה הנכונה ומערכת ההפעלה ושיטות העיבוד המתאימות. X-Stream II היא טכנולוגיה של שיטת עיבוד המרחיבה את שיטות העיבוד הידידותיות-למטמון אשר LeCroy השיקה ב-X-Stream I והמוסיפה הצבת חוצץ דינמי עבור מיטוב מהירות, תוך הוספת חיזויי התוצאות ויכולת שיתוק העיבוד עבור היענות משופרת של האוסילוסקופ.

*הכתבה נמסרה באדיבות חברת להט טכנולוגיות. נציגתה הבלעדית של חברת לקרוי בישראל.

תגובות סגורות