2.0 - תיאור היחידה האריתמטית(המכפל)
אנו מחלקים את הביטים לקבוצות ומבצעים כפל כמו בבסיס כך שמתקיים:
את המספר נחלק לשתי קבוצות של בטים ואת המספר נחלק לארבע קבוצות של ביטים.
לאחר שמתבצע כפל של קבוצה מסויימת, המכפלה נכנסת לקופסה השחורה של המכפיל ויוצאת אל המזיזים() אשר מזיזים בהתאם למיקום של המכפלה, אם נניח מכפילים את הביטים הראשונים של עם הביטים הראשונים של אז לא צריך הזזה בכלל, אך אם מכפילים את הביטים הראשונים של עם הביטים שנמצאים אחרי הביטים הראשונים ב- (כלומר, הביטים ) אז אנו צריכים להשתמש ב-.
לאחר שאנו בוחרים את המיקום לביטים שהתקבלו, אנו מחברים אותם עם הקודמים באמצעות המחבר של ביטים ואז התוצאה נשמרת ברגיסטר.
2.1 - מכונת מצבים
נגדיר:
ואז נסתכל על מכונת המצבים הבאה, כאשר בכל מצב, אם המצב או הקלט לא משתנה:

2.2 - שינוי למכונת המצבים

2.3 - מימוש בקוד
אם נכתוב תוכנה שכזו במחשב נדרש להרבה פחות מחשבה שכן לא נצטרך לדאוג לחוטים ולמכונת מצבים ונוכל לשלוט בהכל עם לולאות פשוטות יחסית.
הנה האלגוריתם ב-:
Algorithm 1 8Nx8N Multiplier
Input: 2, 8N bit unsigned integers: a, b
Output: 1 8N bit unsigned integer that represents a*b
1:
2:for to do
3:for to do
4: // Uses the 16x8 Multiplier given for the .
5:
6:end for
7:end for
מה שאנו עושים מאוד דומה לאיך שהמערכת עובדת בחומרה, אנו מחלקים את המספרים שלנו ל- ו- ביטים ואז כופלים כל אחד מהם בכל אחד אחר באמצעות המעבד שיכול להכפיל(ראו את השורה עם ההערה מימין)
לאחר מכן, אנו מחברים לסכום את המספר החדש שלנו ומזיזים אותו את כמות הביטים הרצויה באינטרבלים של או בהתאם לקבוצה שבחרנו ב- וב-. (להסבר מפורט יותר ראו את סעיף 2.0 וההסבר על ה--ים)
נשים לב כי אנו מבצעים הכפלות, פעמים ולכן, יש סך הכל, הכפלות ולכן, הסיבוכיות הזמן הינה .
2.4 - כתיבת קוד אסמבלי

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

סימולציה עבור המערכת המהירה
