Professional Documents
Culture Documents
תאריך17.03.2020 :
הוראות לנבחן :בבחינה 4חלקים .משקלו של כל חלק ניתן בצמוד אליו .החלק הראשון כולל שאלות
ברירה .משקלו של החלק הוא 48נקודות והוא כולל 12שאלות ברירה במשקל 4נקודות כל אחת .החלק
השני כולל שאלה על לוגיקה צירופית .משקל החלק הוא 18נקודות .החלק השלישי כולל שאלה על ה-
datapathשל ה MIPS-ומשקלו 26נקודות .החלק הרביעי כולל שאלות באסמבלי של ה MIPS-ומשקלן
הכולל הוא 18נקודות.
אין בחירה בין השאלות ,אולם סכום הנקודות אותו ניתן לצבור במבחן זה הוא .110הציון המקסימלי אותו
ניתן לקבל במבחן זה הוא( 100 :כלומר ,סכום נקודות גדול מ 100-יחשב כ.)100-
יש לענות בטופס הבחינה על כל החלקים במקום המיועד לכך .יש לציין מספר תעודת זהות על טופס
הבחינה ולצרף אותו למחברת הבחינה .מחברת הבחינה לא תיבדק.
חומר עזר :דפי נוסחאות מצורפים למבחן ומחשב כיס שאינו ניתן לתכנות
A ⊕ B ⊕ C̅ = A
̅⊕B
א) ̅ ⊕ C
A ⊕ B ⊕ C̅ = A
̅⊕B
ב) ̅̅ ⊕ C
̅̅̅̅̅̅̅̅̅̅̅̅̅̅
A⊕B⊕C= A ̅·B·C+A·B
̅ · C + A · B · C̅ + A
̅·B
ג) ̅̅ · C
̅̅̅̅̅̅̅̅̅̅̅̅̅̅ = ̅ ⊕ C
A⊕B ̅̅̅̅̅̅̅̅
ד) ̅A ⊕ B ⊕ C
ת.ז:.
0xFFFFEEEE א)
0xEEEEFFFF ב)
0xFFFEEEEE ג)
0x0000EEEE ד)
ברגיסטר $2יהיה הערך lui $2, 0xFFFF תשובה :אחרי ביצוע הפקודה
.0xFFFF0000
כשנוסיף לו 0xEEEEבעזרת פקודת ה add -יבוצע גם Sign Extensionובעצם
נוסיף .0xFFFFEEEEלכן:
0xFFFF0000
0xFFFFEEEE
========
0xFFFEEEEE
ת.ז:.
1·2-126 א)
1·2-127 ב)
2-23·2-126 ג)
2-23·2-127 ד)
ג'
ת.ז:.
ד'
ת.ז:.
31
Xלא יכול להיות גדול מ 15 32 - א)
Xיכול להיות קטן מ (-60) - ב)
1
0 < X < 12 Xיכול להיות בתחום ג)
8
Xלא יכול להיות בתחום 3 < X < 12 ד)
5/31 ב)
8/125 ג)
1/6 ד)
ת.ז:.
C G
K ][Q2,Q1,Q0]=[0,0,0 א)
][Q2,Q1,Q0]=[1,1,0 ב)
][Q2,Q1,Q0]=[1,0,0 ג)
][Q2,Q1,Q0]=[0,1,0 ד)
ת.ז:.
תשובה :כאן קודם כל בודקים תנאי ליציאה מהלולאה ולכן זוהי לולואת .while
ת.ז:.
א) 42
ב) 162
ג) 216
ד) 44
פתרון:
ת.ז:.
ת.ז:.
פתרון:
ת.ז:.
כלומר:
] )GPR[R1] = M[ GPR[R2] + sext(imm
3( )15.1נקודות) מהם השדות בפקודה ותפקידם .ציירו את מבנה השדות השונים והסבירו
את תפקידיהם.
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
ת.ז:.
8( )15.2נקודות) תארו את ביצוע הפקודה על גבי הציור שלהלן .סמנו בקו עבה את
מסלול ה dataבו משתמשים (סמנו את כל הקוים הפעילים) והסבירו את אותות הבקרה.
את אותות הבקרה יש לקבוע לפי המופיע בציור.
ב) הפקודות של המחשב המקורי ) (add, sub, or, and, slt, beq, lw, swתבוצענה
כהלכה
הפקודה bltתמומש באמצעות פקודה מטיפוס ,)I-type( Iכש Rs-יהיה האוגר Rt ,R1יהיה
נאוגר R2וה imm -המספר שב 16הסיביות הימניות בפקודה .כלומר:
+-----------+--------+-------+-----------------------------+
|| blt opcode R1 | R2 | imm |
+----------_+--------+-------+-----------------------------+
( 5נקודות) הסבירו את השנויים שיש לבצע ב CPU -במסלול ה Data-כדי לתמוך בפקודה
החדשה( .כל שנוי – עבור מה נדרש) .הוסיפו אותם על הציור והסברו את מטרתם:
ת.ז:.
5( )15.4נקודות) האם נדרשו אותות בקרה חדשים (הנוספים לאלה של המחשב המקורי)?
אם כן ,פרטו את האותות האלה ואת תפקידיהם .רשמו גם קווי בקרה קיימים שהוספתם
להם תפקידים נוספים.
ת.ז:.
כלומר חבר לערך שב R1 -את sign extensionשל ה imm -ורשום אותו בחזרה ל .R1 -וכנ"ל
ל.R2 -
הסבר -אם ניתן לבצע את הפקודה ,הסבר כיצד ואם לא הסבר מדוע לא:
(יש מקום גם בעמ' הבא)
ת.ז:.
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
;sum = 0
)for (i=0;i<size;i++
{
) if (array[i] & 1 == 1
;]sum += array[i
}
# definitions:
# $4=Arra[0] ptr, $5=size $6=sum,
# $7=ptr, $8=i, $9=1,
# $10=temp1= data read from array
# $11=temp2= result of cpmarison
# initialize
addi $6, $0, 0 # sum=0;
addi $7, $4, 0 # ptr=array
addi $8, $0, 0 # i=0
addi $9, $0, 1 # $9=1
loop:
beq $8, $5, end # if i=size end the loop
addi $8, $8, 1 # i++
lw $10,0($7) # $10=array[i]
addi $7, $7, 4 # increment array ptr
and $11, $10, $9 # $11 = array[i] & 1
beq $11, $0, loop # if not 1, goto loop
add $6, $6, $10 # else, sum += array[i];
j loop
end:
!בהצלחה