Skip to content

יובל ל־Z80 ולקחים ממחשוב מוגבל משאבים

יובל ל־Z80 ולקחים ממחשוב מוגבל משאבים

Zilog Z80 שהוצג ב־1976 מציין יובל ב־2026. זו התייחסות לשנת היובל, לא טענה שהמאמר נכתב ביום ההשקה המדויק. הארכיטקטורה הקטנה עדיין שימושית ללימוד עבור מפתחי רשת, ענן ומערכות.

מקורות: Zilog founding and Z80 development oral-history panel

Z80 מלמד על מגבלות, אוגרים ותזמון פקודות צפוי, אך אינו אב ישיר לכל מעבד מודרני. TI-83 ומערכות משובצות מוקדמות הם דוגמאות Z80; ב־Game Boy יש מערכת פקודות Sharp SM83 קרובה אך שונה, לא אסמבלי Z80 מלא. נבחן ארכיטקטורה ושגרת כפל קטנה בלי לטעון לבדיקת אמולטור או חומרה.

מקורות: Zilog founding and Z80 development oral-history panel; Pan Docs project CPU comparison; Zilog Z80 CPU User Manual UM008011-0816

ההתחלה: הפרידה מ־Intel

פדריקו פג׳ין ורלף אונגרמן הקימו את Zilog ב־1974 לאחר שעזבו את Intel. לפג׳ין היה תפקיד מרכזי ב־4004 וב־8080, ו־Z80 תוכנן להרחיב תאימות ל־8080 ולפשט מימוש מערכות. העדות של המייסדים מפורטת יותר מייחוס ההקמה לתסכול אישי שלא בוסס.

מקורות: Zilog founding and Z80 development oral-history panel

Z80 המקורי הופיע ב־1976, עם דגמים מוקדמים של 2.5 מגהרץ וגרסאות מהירות בהמשך. ספק יחיד של +5 V ותמיכה מובנית בכתובת ובבקרת רענון DRAM פישטו תכנון לעומת 8080 מרובה המתחים. התמיכה ברענון לא הייתה בקר זיכרון שלם: זיכרון חיצוני, פענוח ותזמון עדיין נדרשו.

מקורות: Zilog founding and Z80 development oral-history panel; Zilog Z80 CPU User Manual UM008011-0816

Z80 סייע למערכות כגון TRS-80 ו־ZX Spectrum. ה־Game Boy המאוחר הוא דוגמה קרובה לעולם 8 הסיביות, אך Sharp SM83 משמיט תכונות Z80 ומוסיף אחרות; אין להחליף ביניהם קוד והנחות ארכיטקטוניות בחופשיות.

מקורות: Zilog founding and Z80 development oral-history panel; Pan Docs project CPU comparison

בתוך הסיליקון: אוגרים חלופיים וארכיטקטורה

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

ל־Z80 נתיב נתונים של 8 סיביות ומרחב כתובות זיכרון של 16 סיביות: 64 KiB שיכולים לכלול RAM ו־ROM; החלפת בנקים מאפשרת לחשוף יותר לאורך זמן. אוגרי A, F, B, C, D, E, H, L כוללים זוגות BC, DE ו־HL של 16 סיביות. לא כל זוג תומך בכל מצב מיעון.

מקורות: Zilog Z80 CPU User Manual UM008011-0816

Zilog הוסיפה גם מערך אוגרים חלופי: A', F', B', C', D', E', H' ו־L'.

ראשיים:    AF  BC  DE  HL
חלופיים:   AF' BC' DE' HL'
אוגרים נוספים, לא בני זוג חלופיים: IX, IY, SP, PC, I, R
EXX מחליף BC/DE/HL; הפקודה EX AF,AF' מחליפה AF בנפרד.

מקורות: Zilog Z80 CPU User Manual UM008011-0816

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

מקורות: Zilog Z80 CPU User Manual UM008011-0816

EXX מחליף BC, DE, HL בזוגות החלופיים; EX AF, AF' מחליף בנפרד צובר ודגלים. להחלפת כל האוגרים האלה נדרשות שתי הפקודות. כל אחת אורכת 4 מחזורי T בתזמון המתועד, לפני המתנות או פסיקות. יש לתכנן פסיקות מקוננות ובעלות על המערך החלופי.

מקורות: Zilog Z80 CPU User Manual UM008011-0816

Z80 בפועל: סחיטת ביצועים מ־8 סיביות

במערכת הפקודות הבסיסית של Z80 אין פקודת כפל כללית. להכפלת ערך ללא סימן בן 8 סיביות ב־10 אפשר להשתמש בחיבורים ובהזזות; קיימים גם אלגוריתמי תוכנה אחרים. הדוגמה מדויקת לקלט 0 עד 25; מעבר לכך מתקבלת המכפלה מודולו 256.

מקורות: Zilog Z80 CPU User Manual UM008011-0816

מכיוון ש־10=8+2, מכפילים את A בשניים, שומרים 2A ב־B, מכפילים עוד פעמיים לקבלת 8A ומוסיפים B. זו המחשה להחלפת פעולה יקרה בפשוטות; גם מהדרים מודרניים עשויים לעשות זאת. השגרה משנה את B ואת הדגלים בנוסף ל־A.

מקורות: Zilog Z80 CPU User Manual UM008011-0816

כך מפתח היה כותב זאת באסמבלי Z80:

; Input: A unsigned, 0..25 for an exact 8-bit result.
; Output: A = (original A * 10) modulo 256.
; Clobbers: B and flags. Requires a valid caller stack for RET.
MultiplyBy10:
    add a, a
    ld  b, a
    add a, a
    add a, a
    add a, b
    ret

מקורות: Zilog Z80 CPU User Manual UM008011-0816

יש חמש פקודות אוגרים של 4 מחזורי T ו־RET של 10: יחד 30 מחזורים, ללא CALL של הקורא. ב־4 מגהרץ אידאליים מדובר ב־7.5 מיקרו־שניות. מצבי WAIT, פסיקות, תחרות באפיק והבדלי חומרה יכולים להאריך את הזמן. אין הקצאת heap, אך RET עדיין קורא כתובת חזרה מהמחסנית. זהו חישוב תזמון, לא מדידה.

מקורות: Zilog Z80 CPU User Manual UM008011-0816

מה Z80 מלמד על הנדסת תוכנה מודרנית

לימוד Z80 אינו רק נוסטלגיה; הוא משפיע ישירות על הגישה לארכיטקטורה מודרנית. הנה שלושה לקחים לעבודה היומיומית:

1. התאמה לחומרה ומגבלות

תקציבי ROM ו־RAM קטנים מחייבים תשומת לב לקוד ולנתונים: גם עשרה בתים יכולים לחרוג מהקיבולת שנותרה במכשיר מסוים. לשירותים מודרניים עשוי להיות נפח גדול יותר, אך מאות מגה־בתים רק לניתוח כל JSON אינם דרישה אוניברסלית או מדודה.

מקורות: Zilog Z80 CPU User Manual UM008011-0816

המשמעת הולידה אלגוריתמים ממוטבים. הבנת הטיפול של החומרה בנתונים יוצרת ״התאמה מכנית״ — תוכנה העובדת עם החומרה ולא נגדה. היום זה מתבטא במבנים ידידותיים למטמון ב־Go או Rust, בהימנעות מהקצאות במסלולים עמוסים ובהבנת מטמוני L1 ו־L2.

2. התפתחות אסמבלי ומהדרים

לימוד הקצאת אוגרים ובחירת פקודות במעבדים קטנים מסביר פשרות מהדרים. Z80 מרחיב את קו 8080; גם ל־8086 שבבסיס x86 היסטוריה קשורה ל־8080, אך כינוי x86 צאצא ישיר של Z80 הופך ומפשט את הקשר. פלט JIT של Node.js או .NET מכוון למעבד ולסביבה הנוכחיים, לא לצינור 8 סיביות שעבר בירושה ממש.

מקורות: Zilog founding and Z80 development oral-history panel; Zilog Z80 CPU User Manual UM008011-0816

3. מחשוב קצה ותחיית IoT

מערכות קצה ו־IoT עדיין מתגמלות שימוש זהיר במשאבים, ב־Cortex-M, RISC-V או בארכיטקטורה אחרת. זהו שיקול הנדסי משותף, לא הוכחת מוצא ישיר מ־Z80. מערכות ותיקות עשויות לשמר מעבדים ישנים, אך Z80 רגיל אינו מוקשח לקרינה מעצמו; התאמה לרפואה או לתעופה דורשת ראיות לרכיב ולמערכת המדויקים.

מקורות: Zilog Z80 CPU User Manual UM008011-0816

סיכום: המורשת נמשכת

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

מקורות: Zilog founding and Z80 development oral-history panel

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

מה סיפור ה־Z80 שלכם?

כתבתם BASIC ב־ZX Spectrum, בניתם בקרי Z80 או חקרתם את הארכיטקטורה הקרובה של Game Boy? שתפו בתגובות כיצד אסמבלי ומגבלות חומרה השפיעו על עבודתכם, או העבירו למפתח מערכות נוסף.

מקורות: Pan Docs project CPU comparison

מקורות ראשוניים

Post a Comment

Previous Post Next Post