אוגר זיזה

בתחום המעגלים אלקטרוניים, אוגר זיזה (או אוגר הזזה, מאנגלית: Shift register) הוא אוגר המיושם על ידי שרשור של דלגלגים (Flip Flops; FF), בעלי אות שעון משותף, אשר הפלט של כל אחד מהדלגלגים, חוץ מהאחרון, מחובר לקלט של הדלגלג הבא בתור בשרשרת, ומהווים מעגל אשר מזיז בעמדה אחת את מערך הסיביות החד־ממדי המאוחסן בתוכו. האוגר מזיז פנימה את הנתונים הנוכחים בקלט ומזיז החוצה את הסיבית האחרונה במערך, בעת שינוי מצב השעון בקלט. בכלליות, אוגר הזזה יכול להיות רב־ממדי, כך שקלט "כניסת הנתונים" ודרגת הפלט הם בעצמם מערכי סיביות, על ידי הרצה של מספר אוגרי הזזה בעלי אורך־סיביות זהה במקביל. אוגרי הזזה יכולים להכיל קלט ופלט בצורה מקבילית וגם בצורה טורית. ישנם גם אוגרי הזזה דו־כיווניים אשר מאפשרים זיזה בשני הכיוונים: שמאל־לימין או ימין־לשמאל. הקלט הטורי והפלט האחרון של אוגר הזיזה יכולים להיות מחוברים יחדיו כדי ליצור אוגר זיזה מעגלי. קלט טורי, פלט טורי (Serial-in, serial-out; SISO), אלו הסוגים הפשוטים ביותר של אוגרי זיזה. מחרוזת הנתונים מיוצגת במבוא הנתונים (הקלט), ומוזזת ימינה דרגה אחת בכל פעם שמבוא השעון עובר למצב גבוה. בכל התקדמות, הסיבית השמאלית קיצונית מוזזת לתוך הפלט של הדלגלג הראשון. הסיבית בצד הימני מוזזת החוצה ואובדת. הנתונים מאוחסנים בדלגלגים לאחר כל שינוי, בפלט ה־Q. האוגר הוא בן 4 סיביות (חצי בית, nibble). כאשר האוגר מכיל 0;0;0;0, וכאשר הקלט הוא 1;0;1;1;0;0;0;0 מתקבלים המצבים שבטבלה. אם הקלט היה נמשך, היו מתקבלים בדיוק אותם הנתונים, מוזזים על ידי ארבעה מחזורים של מבוא השעון. סידור זה הוא שקול בחומרה למערך. בכל זמן, ניתן לאפס את כל האוגר על ידי מעבר של מצב רגל האיפוס R לגבוה. סידור זה מבצע קריאה הורסת – כל נתון אובד (נהרס) כאשר הוא מוזז החוצה מהסיבית הימנית ביותר. קלט־טורי, פלט־מקבילי (Serial-in, parallel-out; SIPO) היא תצורה שמאפשרת המרה ממצב טורי למקבילי. נתוני הקלט נכנסים בצורה טורית, בדיוק כמו ה־SISO. כאשר הנתונים נקלטו, הם יכולים להיקרא החוצה בכל רגלי הפלט בעת ובעונה אחת, או לזוז החוצה ולהתחלף בקודמיהם בשרשור. קלט־מקבילי, פלט־טורי (Parallel-in, serial-out; PISO) היא תצורה שבה קיימים מבואות הנתונים בקווים D1 עד D4, בצורה מקבילית. כדי לכתוב את הנתונים אל האוגר, מצב קו בקרת הזיזה חייב להיות נמוך ( w r i t e ¯ {\displaystyle {\overline {write}}} ). כדי להזיז את הנתונים, קו הבקרה מועבר לגבוה ( s h i f t {\displaystyle shift} ), והאוגרים מקבלים אות שעון. במצב זה אוגר ה־PISO מתפקד כאוגר הזזה SISO, עם D1 בתור מבוא הנתונים. בכל אופן, כל עוד מספר מחזורי השעון הוא לא יותר מאשר אורך מחרוזת־הנתונים, פלט הנתונים, Q, יהיה הנתונים המקביליים אשר נקראו לפי הסדר. אחד מהשימושים הנפוצים ביותר של אוגר הזיזה הוא להמיר בין ממשק טורי ומקבילי. שימושיות זו חשובה, כיוון שכמה מעגלים עובדים במקביל בקבוצות של סיביות, אך ממשקים טוריים פשוטים יותר להרכבה. אוגרי זיזה יכולים לשמש כמעגלי השהייה, או בתור מרחיבי דופק. כמה אוגרי זיזה דו־כיווניים יכולים להתחבר במקביל בתור מימוש מחסנית. בהשוואה לרבי־רטט חד־יציבים, לתזמון אין תלות בערכי הרכיבים, ודיוק התזמון מוגבל על ידי גרגריות השעון. למשל, במימוש של רונג'ה טוויסטר (אנ') - שבו חמישה אוגרי הזזה 74164 יצרו את הליבה של לוגיקת התזמון. במחשבים המוקדמים, אוגרי הזיזה נדרשו לעיבוד נתונים: שני מספרים לחיבור אוחסנו בשני אוגרי זיזה ובתזמון שעון הועברו אל היחידה אריתמטית־לוגית כאשר התוצאה הוזנה בחזרה אל המבואות של אחד מאוגרי הזיזה (הצובר). הרבה שפות מחשב כוללות פקודות 'הזזה ימינה' ו'הזזה שמאלה' של אוגרים, אשר מחלקות או מכפילות בשתיים מספרים בינארים באמצעות כל תזוזת מיקום ביעילות רבה. אוגרי הזזה גדולים מאוד של קלט־טורי פלט־טורי (בגודל של אלפי סיביות) שימשו באופן דומה בזיכרון קו משהה בכמה התקנים שנבנו בשנות השבעים המוקדמות. אחת הדוגמאות הידועות של אוגר זיזה הייתה במחשב הקולוסוס, מכונת שבירת קודים משנות הארבעים. זה היה התקן בן חמש דרגות, אשר נבנה משפופרות ריק ותירטרונים (טריודה). הזזת סיביות Linear Feedback Shift Register (LFSR) מדיה וקבצים בנושא אוגר זיזה בוויקישיתוף Shift Registers at AllAboutCircuits.com שרטוט