234267
Download
Skip this Video
Download Presentation
מבנה מחשבים ספרתיים 234267

Loading in 2 Seconds...

play fullscreen
1 / 24

מבנה מחשבים ספרתיים 234267 - PowerPoint PPT Presentation


  • 171 Views
  • Uploaded on

מבנה מחשבים ספרתיים 234267. תרגול מס\' 1 : מנהלות חזרה על ארכיטקטורת ה- MIPS. 32. R0 = 0. R1. R30. R31. 32. 32. F0. F1. F0. F2. F3. F2. F28. F29. F28. F30. F31. F30. רגיסטרים (אוגרים). ישנם 32 רגיסטרים לשימוש כללי. רגיסטר R0 ערכו קבוע ושווה 0.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' מבנה מחשבים ספרתיים 234267' - race


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
234267

מבנה מחשבים ספרתיים234267

תרגול מס\' 1:

מנהלות

חזרה על ארכיטקטורת ה- MIPS

234267 - October 2005

slide2

32

R0 = 0

R1

R30

R31

32

32

F0

F1

F0

F2

F3

F2

F28

F29

F28

F30

F31

F30

רגיסטרים (אוגרים)
  • ישנם 32 רגיסטרים לשימוש כללי. רגיסטר R0 ערכו קבוע ושווה 0.
  • כמו כן ישנם 16 רגיסטרים של 64 סיביות עבור פעולות float (0Fשמיש)
  • ניתן להשתמש בכל אחד מהם כשני רגיסטרים float של 32 סיביות.
slide3
אופני מיעון ב-MIPS
  • רגיסטר (register):האופרנד מאוחסן ברגיסטר
  • ADD $2,$3,$4; reg 2  reg3 + reg4
  • מיידי (Immediate):האופרנד הוא קבוע (מקודד בפקודה) בגודל 16 סיביות עם סימן
  • ADDI $2,$3,15; reg 2  reg3 + 15
  • בסיס + היסט (Base + Displacement):
  • -האופרנד נמצא בזיכרון
  • הכתובת בזיכרון = ערך שדה ההיסט + הערך שברגיסטר הבסיס
  • LW $2,105($3); reg 2  mem(Reg3 + 105)
  • יחסי למונה התוכנית (PC-relative):
  • הערך מחושב ע"י חיבור הערך שב-PC לערך שדה ה-immediate (16 סיביות). מיועד אך ורק עבור קפיצות מותנות (branches)
  • BEQ $3,$4,15000; if reg3 == reg4 then PC  PC + 4 + 4*15000
slide4
פקודות MIPS נוספות
  • גישה לזיכרון, אכסן (Store) מילה (32 סיביות) לכתובת קבועה) שימו לב ש- reg0 = 0)
  • SW $3,100($0); mem(100+reg0)  reg3
  • טעינת / העתקת ערך אוגר (אין פקודת MOV מיוחדת):
  • ADDI $4,$0,15; reg4  15 (שימו לב להרחבת הסימן)
  • ADD $4,$8,$0; reg4  reg8
  • Branch מותנה
  • BEQ $0,$1,Label1; if reg1 == 0 then jump to Label1
  • השוואת "קטן-מ" (פסאודו פקודה 2L,3$,2$ BLT)
  • SLT $1,$2,$3 if reg2 < reg3 then reg1  1 else reg1  0
  • BNE $0,$1,L2 if reg0 != reg1 then jump to L2
  • (מאחר ו-reg0=0 צמד הפקודות יגרום לקפיצה אם reg2<reg3 אחרת המשך כרגיל)
  • קפיצה בלתי מותנית (מיעון מוחלט) J 10000
  • קפיצה עקיפה (מיעון לפי ערך האוגר)JR $31
slide5
קידוד הפקודות
  • כל הפקודות בנות 32 סיביות – כלומר 4 בתים
  • כל סוג מגדיר את החלוקה הפנימית בתוך אותן 32 סיביות:
  • ישנם שלושה סוגי פקודות:
  • R-type - register instructions
  • I-type - immediate
  • J-type - jumps (unconditional)
  • שדה ה-op (opcode) קבוע בגודלו ונמצא תמיד. הוא חיוני כדי לדעת מהו סוג הפקודה וכיצד לבצע את החלוקה הפנימית השונה בין פורמט לפורמט
slide6
קידוד הפקודות
  • בפקודות מסוג R
  • שדה ה-op תמיד שווה 0 ואילו שדה ה-func אומר מהי הפקודה
  • שדות ה-rs וה-rt עבור רגיסטר המקור, ושדה ה-rd עבור רגיסטר המטרה.
  • שדה ה-shamt (shift amount) מיועד לפקודה הזזת סיביות (SLL,SRL,SRA) בלבד
slide7
קידוד הפקודות
  • בפקודות מסוג I
  • בפקודות loadופקודות עם שדה imm שדה ה-rs עבור רגיסטר הבסיס ושדה ה-rt עבור רגיסטר המטרה
  • בפקודות storeשדה ה- rs עבור רגיסטר הבסיס ושדה ה-rt מכיל את הערך לאחסון בזיכרון
  • בפקודות branch, rs ו-rt עבור רגיסטרי המקור והקבוע מקודד את כתובת הקפיצה ביחס ל-PC
slide8
קידוד הפקודות
  • בפקודות מסוג J
  • קופצים אל הכתובת המתחילה משמאל ב-4 סיביות מה-PC (ה-segment בזיכרון)שלאחריהן 26 הסיביות שבשדה ה-address ו-2 סיביות אחרונות מימין שהן תמיד 00מאחר וכל הפקודות נמצאות בכתובות המתחלקות ב-4.

Current PC

00

+

0000

Target (26 bits)

00

28

31

27

2

1

0

Target address

00

slide9
קונפיגורציות של ה-MIPS
  • Single Cycle
    • כל פקודה מבוצעת במחזור שעון יחיד בעל זמן מחזור ארוך מאוד
  • Multicycle
    • חלוקת הפקודות למספר שלבים ועבור כל פקודה לבצע בכל שלב חלק מהפעולות. רוב הפקודות עדיין משתמשות ב-4 מחזורי שעון לפחות (קצרים יותר). אין שיפור משמעותי
  • Pipeline
    • מחלקים את ה- datapathהסדרתי לשלבים
    • כאשר פקודה מסוימת מסיימת את השלב הראשון ועוברת לשלב השני, פקודה חדשה נכנסת לשלב הראשון וכן הלאה
    • מתקבל מצב בו בכל מחזור שעון כל פקודה מתקדמת בשלב אחד. כלומר, בכל מחזור מסתיימת פקודה אחת ופקודה חדשה נכנסת לביצוע.
slide10
השלבים הבסיסיים בביצוע פקודות
  • כל פקודה (למעט נקודה צפה) ניתנת לחלוקה ל-5 שלבים בסיסיים:
  • 1. Fetch
  • שליפת הפקודה לביצוע מהזיכרון
  • קידום מונה התוכנית לפקודה הבאה לביצוע.
  • אכסון הפקודה ברגיסטר זמני (IR)
instruction fetch

0

0

0

m

u

x

m

u

x

m

u

x

1

1

1

+

  • WB

Control

+

  • M

Shift

left 2

  • EX

ALU

Zero

Instruction

Memory

result

0

m

u

x

  • Read Address

PC

1

6

Sign

extend

ALU

Control

32

32

16

  • Imm
  • Rt
  • Rd
Instruction Fetch

PCSrc

ID/EX

MEM/WB

IF/ID

EX/MEM

RegWrite

  • WB
  • WB
  • M

MemWrite

MemRead

Branch

RegWrite

NewPC

NewPC

4

RegDst

ALUSrc

ALUop

Data

Memory

Read

reg 1

MemtoReg

Read

data 1

Read

reg 2

Write Address

Register File

Read

data 2

Read

Data

Write

reg

Read Address

Instruction

Write

data

Write Data

[15-0]

ALUresult

[20-16]

  • Rd\Rt
  • Rd\Rt

[15-11]

RegDst

slide12
השלבים הבסיסיים בביצוע פקודות
  • 2. Decode
  • פענוח הפקודה ויצירת את אותות הבקרה שילוו את הפקודה בהמשך
  • שליפת ערכי הרגיסטרים המתאימים מתוך Register File
  • Sign Extension: הרחבה של האופרנד המקודד מ-16 סיביות ל-32 סיביות
instruction decode

0

0

0

m

u

x

m

u

x

m

u

x

ID/EX

1

1

1

IF/ID

  • WB
  • M

+

  • EX

Control

+

Shift

left 2

4

ALU

Zero

Instruction

Memory

result

0

m

u

x

  • Read Address

PC

1

6

Sign

extend

ALU

Control

16

32

Instruction Decode

PCSrc

MEM/WB

EX/MEM

RegWrite

  • WB
  • WB
  • M

MemWrite

MemRead

Branch

RegWrite

NewPC

NewPC

RegDst

ALUSrc

ALUop

Data

Memory

Read

reg 1

MemtoReg

Read

data 1

Read

reg 2

Write Address

Register File

Read

data 2

Read

Data

Write

reg

Read Address

Instruction

Write

data

Write Data

32

[15-0]

  • Imm

ALUresult

  • Rt

[20-16]

  • Rd\Rt
  • Rd\Rt
  • Rd

[15-11]

RegDst

slide14
השלבים הבסיסיים בביצוע פקודות
  • 3. Execute
  • ביצוע הפעולה הנדרשת על בסיס הערכים בערוצי המידע:
    • עבור פעולת ALU– ביצוע הפעולה הנדרשת
    • עבור גישה לזיכרון – חישוב הכתובת האפקטיבי
    • עבור הסתעפות (branch) – חישוב כתובת היעד וחישוב תנאי הקפיצה
      • מבצעים את החישוב על 2 האופרנדים מהרגיסטרים הנכנסים ל-ALU הראשי אשר מבצע פעולת חיסור
        • אם התוצאה היא 0 נדלק דגל ZERO וכך ידוע האם יש לקפוץ (BEQ)
      • חישוב כתובת היעד של הקפיצה
execute

0

0

0

m

u

x

m

u

x

m

u

x

ID/EX

1

1

1

IF/ID

  • WB
  • M

+

  • EX

Control

+

Shift

left 2

4

ALU

Zero

Instruction

Memory

result

0

m

u

x

  • Read Address

PC

1

6

Sign

extend

ALU

Control

16

32

EXecute

PCSrc

MEM/WB

EX/MEM

RegWrite

  • WB
  • WB
  • M

MemWrite

MemRead

Branch

RegWrite

NewPC

NewPC

RegDst

ALUSrc

ALUop

Data

Memory

Read

reg 1

MemtoReg

Read

data 1

Read

reg 2

Write Address

Register File

Read

data 2

Read

Data

Write

reg

Read Address

Instruction

Write

data

Write Data

32

[15-0]

  • Imm

ALUresult

  • Rt

[20-16]

  • Rd\Rt
  • Rd\Rt
  • Rd

[15-11]

RegDst

slide16
השלבים הבסיסיים בביצוע פקודות
  • 3. Memory
  • קריאה / כתיבה לזיכרון בפקודות Store / Load
  • החלטה האם לקפוץ בפקודות branch (עדכון PC)
  • שימו לב - Control Hazard
  • בכל שלב נכנסות פקודות חדשות ל- pipeline. עד שהבנו שצריך לקפוץ, אולי נכנסו פקודות שכלל אינן צריכות להתבצע
  • 4. Write back:
  • אכסון התוצאה (מ-ALU או מהזיכרון) לרגיסטר היעד.
memory writeback

0

0

0

m

u

x

m

u

x

m

u

x

ID/EX

1

1

1

IF/ID

  • WB
  • M

+

  • EX

Control

+

Shift

left 2

4

ALU

Zero

Instruction

Memory

result

0

m

u

x

  • Read Address

PC

1

6

Sign

extend

ALU

Control

16

32

MEMory \ WriteBack

PCSrc

MEM/WB

EX/MEM

RegWrite

  • WB
  • WB
  • M

MemWrite

MemRead

Branch

RegWrite

NewPC

NewPC

RegDst

ALUSrc

ALUop

Data

Memory

Read

reg 1

MemtoReg

Read

data 1

Read

reg 2

Write Address

Register File

Read

data 2

Read

Data

Write

reg

Read Address

Instruction

Write

data

Write Data

32

[15-0]

  • Imm

ALUresult

  • Rt

[20-16]

  • Rd\Rt
  • Rd\Rt
  • Rd

[15-11]

RegDst

slide19

0

0

0

m

u

x

m

u

x

m

u

x

ID/EX

1

1

1

IF/ID

  • WB
  • M

+

  • EX

Control

+

4

Shift

left 2

ALU

Zero

Instruction

Memory

result

0

m

u

x

  • Read Address

PC

1

6

Sign

extend

ALU

Control

16

32

אותות הבקרה

PCSrc

MEM/WB

RegWrite

EX/MEM

  • WB
  • WB
  • M

Branch

MemWrite

MemRead

RegWrite

NewPC

NewPC

RegDst

ALUSrc

ALUop

Data

Memory

MemtoReg

Read

reg 1

Read

data 1

Read

reg 2

Write Address

Register File

Read

data 2

Read

Data

Write

reg

Read Address

Instruction

Write

data

Write Data

32

[15-0]

ALUresult

  • Imm

[20-16]

  • Rt
  • Rd\Rt
  • Rd\Rt
  • Rd

[15-11]

RegDst

control lines
דוגמאות לערכי control lines עבור פקודות שונות:
  • דוגמא לקידוד offset של פקודת branch
  • שאלה: אנו נמצאים בכתובת 700 (כתובת פקודת ה-branch) ורוצים לקפוץ לכתובת 800. מה עלינו לקודד?
  • Displacement = 800 – 704 = 96 bytes
  • 96 / 4 = 24 instructions
  •  24
slide22
שאלה:
  • ברצוננו להוסיף פקודה בשם addconstלסט הפקודות של ה- MIPS. הפקודה תבצע חיבור של רגיסטר לקבוע חסר סימן (unsigned)
  • תחביר הפקודה addconst R1,R2,const והפעולה המתבצעת היא R1=R2+const
  • הקבוע const הינו מספר חיובי בטווח (216-1) - [0
  • קידוד הפקודה החדשה הוא מסוג:
  • R
  • I
  • J
  • לא ניתן לממש פקודה כזאת במעבד מסוג RISC
  • אף תשובה אינה נכונה
  • במידה וניתן לממש את הפקודה, מה השינוי שנדרש במבנה ה- MIPS ?
slide23

0

0

m

u

x

m

u

x

ID/EX

1

1

IF/ID

  • WB
  • M

+

  • EX

+

4

Shift

left 2

ALU

Zero

Instruction

Memory

result

0

m

u

x

  • Read Address

PC

1

6

ALU

Control

16

16

PCSrc

EX/MEM

MEM/WB

RegWrite

  • WB
  • WB

Control

  • M

MemWrite

Branch

MemRead

RegWrite

RegDst

ALUSrc

ALUop

Data

Memory

Read

reg 1

MemtoReg

Read

data 1

Read

reg 2

Write Address

0

Register File

Read

data 2

Instruction

m

u

x

Read

Data

Write

reg

1

Read Address

2

Write

data

Write Data

Sign

extend

32

32

[15-0]

zero

extend

32

[20-16]

  • Rd\Rt
  • Rd\Rt

[15-11]

RegDst

slide24
אתר הקורס:
  • http://webcourse.cs.technion.ac.il/234267
  • תרגילי בית:

יינתנו 5 תרגילי בית במהלך הסמסטר

25% תקף (75% בחינה סופית)

הגשה בזוגות

5 נקודות יורדו על כל יום איחור

  • ספרי קורס:
  • Hennessy & Patterson - Computer Architecture: A Quantitative Approach.
  • Hennessy & Patterson - Computer Organization and Design: The Hardware/ Software Interface
ad