מה ההבדל בין CISC ל RISC?


תשובה 1:

בדרך כלל RISC הוא "אחסן עומסים" לרשומות. בדרך כלל משתמשים בשלושה אוגרים כגון ADD R1 = R2 + R3, עומס ואחסון עשויים להיות חריגים עם שני רגיסטרים בלבד המשמשים בהוראות.

בדרך כלל CISC מאפשר חישוב עם ערכים מכתובות זיכרון, ואינו צריך להכניס אותם תחילה לרשומות. יתכנו גם מצבי פנייה (מורכבים) נוספים, המאפשרים מאגר אחד ליותר אוגרים לייצור כתובות.

בדרך כלל CISC הוא דו-אופרנדי, עם למשל ADD עם אותו מרשם (או כתובת זיכרון) המשמש ליעד, אך גם משמש לאחד המקורות.

זה היה אמור להיות עניין גדול, ו- RISC חוטי חיבור ו- CISC באמצעות מיקרו-קוד.

כעת המיקרו-ארכיטקטורה ל- CISC, לפחות x86 (אם לא כל ה- CISC הנמצאים בשימוש, כלומר מיינמת את המסגרות המרכזיות של יבמ היא ה- CISC היחיד שנותר בחיים; בקרי מיקרו עשויים להיות חריג) מפרקת הוראות למיקרופונים (פעולות דומות מיקרו / RISC) שיכולות לתזמן את ה- out of - סדר שלא כמו במיקרו-קוד המקורי.

RISC עשוי אפילו לעשות זאת, למשל ARM חדש יותר (לא בהתחלה), כך שההבדלים פחות מבעבר.

ל- ARM המקורי לא הייתה שום הוראות לחלוקת מספרים בשל היותה מורכבת מדי, קל וחומר לנקודה צפה. כעת המורכבות [המורכבות] עבור R ב- RISC חלה פחות מכיוון שנקודה צפה היא מורכבת מטבעה וכל המעבדים העיקריים של RISC תומכים אפילו בהנחיות שורש ריבועי וטריגונומטריה.


תשובה 2:

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

RISC מותאם למעבדים שיש להם * מטמון הוראות, וזה משנה את צוואר הבקבוק: מטמונים יכולים בקלות לספק לך 64 ו 128 ביטים של נתונים בכל מחזור - כל עוד הם מיושרים. לפתע, אתה יכול להריץ הוראות 1 או אפילו 2 בכל מחזור כל עוד אין תלות, לכן הוראות נקיות שרק גורמות לשינוי במצב יחיד הופכות להיות מהירות יותר.


תשובה 3:

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

RISC מותאם למעבדים שיש להם * מטמון הוראות, וזה משנה את צוואר הבקבוק: מטמונים יכולים בקלות לספק לך 64 ו 128 ביטים של נתונים בכל מחזור - כל עוד הם מיושרים. לפתע, אתה יכול להריץ הוראות 1 או אפילו 2 בכל מחזור כל עוד אין תלות, לכן הוראות נקיות שרק גורמות לשינוי במצב יחיד הופכות להיות מהירות יותר.