תמיד יהיו מחלקות של עומסי עבודה ואלגוריתמים שידחפו לקצה את יכולות פלטפורמות המחשוב המסורתיות. דוגמה מצוינת לכך הם אלגוריתמים הצורכים כוח חישובי יקר להצפנת מפתח פומבי (
publickey) לתמיכה בפרוטוקול SSL, במיוחד תהליך ה-handshake שמאפשר לשרת ומשתמש הקצה (client) להקים את הקשר. כתוצאה מכך, אנשי ה-IT נוטים לשלב לעיתים מזומנות תוספות ייחודיות המבוססות על מודולים להאצה כדי להגדיל את הביצועים ולמנוע עומס יתר על השרתים.
כעת ישנה אלטרנטיבה ע”י שימוש
ב-
ASICs ייחודיים לעומסי עבודה הצורכים כוח חישוב רב. לשרתים המבוססים על פלטפורמות תקשורת מהדור הבא של ® Intel, שם קוד CrystalForest, יש יכולות חדשות להאצת קריפטוגרפיה סימטרית ואסימטרית, דחיסת מידע ועומסי עבודה אחרים. הפלטפורמה משלבת את טכנולוגיית Intel®QuickAssist הכוללת מודלי האצה הניתנים לגישה ע”י קבוצה מאוחדת של פונקציות (APIs) ע”פ תקן תעשייתי. הם מספקים קונבנציות פיתוח וסמנטיקה בצורה עקבית על פני מספר יישומים של מאיצים, וע”י כך מגינים על השקעות תוכנה לעתיד. בנוסף מספקת הפלטפורמה ביצועי עיבוד חבילות
(packetprocessing) יוצאים מן
הכלל ע”י שימוש בספריות של
Intel®DataPlaneDevelopmentKit שעברו אופטימיזציה לביצועים. מאמר זה מספק סקירה של טכנולוגית
Intel®QuickAssist ומתאר 4 תסריטים ליישום שמדגישים את הגמישות הזמינה ליצרני ציוד, יצרני תוכנה בלתי תלויים (ISVs) ומומחי IT. השימוש בטכנולוגיה זו להאצת עומסי עבודה מאפשר ל-Telcocentraloffices ול-datacenters להקטין משמעותית את עלויות הציוד שלהם ולשפר את חלוקת עומסי העבודה בין השרתים.
טכנולוגיית
®Intel
QuickAssist
למרות שטכנולוגיה זו תומכת במספר מכניזמים לפלטפורמות מבוססות
Intel כדי לתקשר עם מאיצים, מאמר זה מתמקד ביכולות ההאצה בפלטפורמת CrystalForest כלומר באמצעות ה-chipset של המעבדים שניתנים גם לשימוש כהתקני PCIe לביצועים גבוהים יותר. הם ניתנים לגישה על ידי Intel®QuickAssistAPIs שמבצעת קריאות למודולים של מאיצי חומרה המובנים בפלטפורמה, כפי שמתואר באיור-1. המודולים הייחודיים להאצה הנמצאים ב-chipset מריצים עומסי עבודה ספציפיים כולל קריפטוגרפיה סימטרית וא-סימטרית, ודחיסה. ממשק ה-API מאפשר גישה קלה למודולים המואיצים ע”י תוכנת קוד פתוח או מסחרית/קניינית. לכן, גמישות זו יכולה לקצר זמן הגעה לשוק (TTM) ע”י הקטנת סיבוכיות ומאמץ הפיתוח.
תמיכת תוכנת
קוד פתוח
כיום, טכנולוגיית
Intel®QuickAssist מאיצה עומסי עבודה של קריפטוגרפיה ודחיסת מידע. עומסי העבודה נתמכים ע”י מסגרות (frameworks) ויישומי קוד פתוח, כפי שמתואר בטבלה-1. השימוש במערכות קוד פתוח מאפשר למפתחים להעריך בצורה מהירה את הביצועים של המודולים המאיצים.
יתרונות
כיום יצרני ציוד ומומחי
IT יכולים לבחור ממבחר גדול של מודולים ייחודיים להאצה המשתרעים על טווח רחב של ביצועים. בהשוואה למודולים רבים, טכנולוגיית Intel מציעה ביצועים שווים או טובים יותר, בזמן שמציעה יתרונות אחרים. ניתן בקלות יחסית להגדיל ביצועים בגלל שקיבולת המאיצים ניתנת להגדלה ע”י הוספת מעבדים ו\או chipsets למערכת. לדוגמא, במערכות כרטיסי – blade, שילוב המאיצים במעבדים עצמם מונעת את הצורך להוספת מודולים להאצה ובכך מקטינים עלות, מורידים את ההספק הכללי הנדרש וכן את הגודל הפיזי של המערכת (footprint). בנוסף השימוש ב- APIs של Intel®QuickAssist משמר את ההשקעה בתוכנה לאורך דורות של פלטפורמות.
אפשריות ליישום
טכנולוגיית
Intel®QuickAssist מציעה רמה גבוהה של גמישות בהינתן שהיא תומכת במגוון עומסי עבודה, תומכת בתוכנת קוד פתוח ומבוצעת גם ב-kernelspace וגם ב-userspace כדי להכיל טוב יותר את היישום המסופק ע”י קהילת הקוד הפתוח. לדוגמא, IPSec ו-IPComp רצים בד”כ ב-kernelspace בעוד פרוטוקולים רבים אחרים בקוד פתוח רצים ב- userspace. יישומים ייעודיים יכולים לרוץ או kernelspace או ב-userspace.
Userspace: הזיכרון מוקצה לתוכנת היישום ע”י מערכת ההפעלה.
Kernel
space: הזיכרון משמש כדי להריץ את ה-kernel של מערכת ההפעלה והתוכנה שמנהלת את המשאבים בפלטפורמה, כמו לדוגמא הדרייברים (devicedrivers).
ההשקעה במימוש והביצוע
יצרני ציוד ומומחי
IT יכולים לממש את טכנולוגיית Intel®QuickAssist בכמה דרכים, כפי שמתואר באיור-2. האופציות למימוש תומכות ביישומי קוד פתוח או מסחריות וגם אם העיבוד נעשה ב-kernelspace או ב-userspace. כמה עדכוני קוד פתוח בצורת patches (גם למרחב ה-kernel וגם ל-user) מסופקים ע”י מהנדסי Intel, וכתוצאה מכך האינטגרציה של תוכנת הלקוח פשוטה יותר. מצד שני, אופטימיזציות לביצועים אפשריות ליישומים מסחריים או קניינים, שיכולים לדרוש התאמות לממשק ה-APIs של Intel®QuickAssis. בנוסף, אופטימיזציות אלו יכולות להיות מועברות לדורות הבאים של טכנולוגיית Intel®QuickAssist. דוגמאות ליישומים מובאות בהמשך ומודגמות באיור-3.
תסריט 1: יישום קוד פתוח,
user-space
האתגר: ספק תוכנה (
ISV) רוצה להגדיר צופן שיבצע הצפנה ופענוח של CBC ,CFB ,OFB או ECB.
פתרון: הורד את
OpenSSL (קוד פתוח)
ואת פונקציות ה-APIs הקשורות, הנקראות EVP. הוסף ע”י include את openssl/evp.h ובצע link לספרית libcrypto (lcrypto)o בצע קומפילציה עם תוכנת התיאום (shim) ש- Intel מספקת שתפקידה לקשר ל-APIs של Intel®QuickAssis דרך מימוש המנוע של OpenSSL, אשר בתורו קורא לדרייבר שמפעיל את החומרה ורץ ב-userspace.
תסריט-2:
יישום קוד פתוח,
kernel space
(IPsec & IPComp)
אתגר:
ISV רוצה להשתמש בגרסאות קוד פתוח של תוכנת IPsec ו- IPComp, כאשר חלק מניהול הפרוטוקול מבוצע ב-kernelspace.
פתרון: השתמש בפונקציות
APIs קוד פתוח, כמו OCF–Linux, שהיא סביבת תוכנה מבוססת OpenBSD/FreeBSD המתואמת (ported) ללינוקס (OCF).
גרסה מתואמת זו מטרתה לספק האצת הצפנה אסינכרונית מלאה ל-kernel של לינוקס וליישומים הרצים בלינוקס. Intel תומכת עם ממשק APIs של Intel®QuickAssist בעבודה ב-kernelspace, ותוכנת תיאום-shim ודרייבר הבנויים ב-kernel. בסצנריו זה, רצף החבילות (packets) נשאר בד”כ ב-kernelspace, והקוד ב-userspace מטפל בהודעות ניהול (controlmessages).
תסריט-3:
פיתוח יישום קנייני,
user space
אתגר: יצרן ציוד רוצה להאיץ פונקציות אבטחה הנקראות ע”י יישום האבטחה הספציפי שלו הפועל ב-
userspace.
פתרון: לשנות את יישום האבטחה הפועל ב-
userspace לבצע קריאות לפונקציות ה-API של Intel®QuickAssist
(נדרשת מידת השקעה בתהליך למידת
ה-APIs).
תסריט-4:
פיתוח יישום קנייני,
kernelspace
אתגר: יצרן ציוד רוצה לקרוא למודולים המאיצים בחומרה של
Intel ישירות
מה-kernelspace.
פתרון: פצל את יישום האבטחה המסוים כך שהקריאות למאיצי חומרה יתבצעו
מה-
kernelspace
האצת קצב עיבוד חבילות ב-
User Space
Intel
פיתחה את – IntelDataPlaneDevelopmentKit (או IntelDPDK) להאצת ביצועי עיבוד חבילות (packets) על פלטפורמות מבוססות IntelArchitecture.
Intel
DPDK מכילה מספר ספריות אשר קוד המקור שלהן זמין למפתחים לשימוש ו/או לשינוי בפתרונות רשת מיוצרים. למספר מעבדים ו-chipsets, קיימות דוגמאות המשתמשות במודלים של “run–to–completion” ו\או “pipeline” המאפשרים ליישומים של יצרני ציוד לשמור על בקרה מלאה. IntelDPDK מאיצה באופן דרמטי את עיבוד החבילות על מעבדי Intel עד פי-7 ולכן מאפשרת רמה גבוהה יותר של תפוקה.
אלטרנטיבה להוספת מודולים להאצה
טכנולוגית
IntelQuickAssist מציגה סביבה או מסגרת להוספת האצת עומסי עבודה ברמת הפלטפורמה. היא מספקת את הגמישות על מנת לאפשר ליצרני ציוד ומומחי IT למצוא את האיזון הנכון בין מאמץ הפתוח לבין הביצועים. במקרים בהם IntelQuickAssist מונעת את הצורך להוסיף מודולים האצה, מתאפשרת הורדת מחיר, הקטנת ההספק וכן הקטנת גורם הצורה ומצד שני ניתן להגדיל את יכולת ההרחבה (scalability) וההתאמה (portability) של פתרון האצת עומסי העבודה.