مظفر بگ محمدی بهار 94 دانشگاه ایلام

Slides:



Advertisements
Similar presentations
Pipeline Example: cycle 1 lw R10,9(R1) sub R11,R2, R3 and R12,R4, R5 or R13,R6, R7.
Advertisements

1 Datapath and Control (Multicycle datapath) CDA 3101 Discussion Section 11.
فصل چهارم مدارهای ترکیبی.
Microprocessor Design Multi-cycle Datapath Nia S. Bradley Vijay.
Decision Tree.
ENEE350 Ankur Srivastava University of Maryland, College Park Based on Slides from Mary Jane Irwin ( )
معماری & کتاب Patterson & Henessi
Dr. Iyad F. Jafar Basic MIPS Architecture: Multi-Cycle Datapath and Control.
CMPE 421 Advanced Computer Architecture Supplementary material for Pipelining PART1.
Department of Computer and IT Engineering University of Kurdistan MIPS datapath (Multi-Cycle) By: Dr. Alireza Abdollahpouri.
Datapath and Control: MultiCycle Implementation. Performance of Single Cycle Machines °Assume following operation times: Memory units : 200 ps ALU and.
1 Processor: Datapath and Control Single cycle processor –Datapath and Control Multicycle processor –Datapath and Control Microprogramming –Vertical and.
Chapter 5 Instructor: Mozafar Bag-Mohammadi Spring 2010 Ilam University.
ECE-C355 Computer Structures Winter 2008 The MIPS Datapath Slides have been adapted from Prof. Mary Jane Irwin ( )
Arrangements of Lines C omputational Geometry By Samaneh shafi naderi
ECE/CS 552: Data Path and Control Instructor:Mikko H Lipasti Fall 2010 University of Wisconsin-Madison Lecture notes based on set created by Mark Hill.
Datapath and Control AddressInstruction Memory Write Data Reg Addr Register File ALU Data Memory Address Write Data Read Data PC Read Data Read Data.
RegDst 1: RegFile destination No. for the WR Reg. comes from rd field. 0: RegFile destination No. for the WR Reg. comes from rt field.
Chapter 4 From: Dr. Iyad F. Jafar Basic MIPS Architecture: Multi-Cycle Datapath and Control.
Design a MIPS Processor (II)
ECE/CS 552: Single Cycle Control Path
Single-cycle CPU Control
آشنايي با سيستم اعداد.
Chapter 5: A Multi-Cycle CPU.
IT 251 Computer Organization and Architecture
/ Computer Architecture and Design
ECE/CS 552: Multicycle Data Path
Systems Architecture I
Multi-Cycle CPU.
Extensions to the Multicycle CPU
[c.
Single Cycle Processor
D.4 Finite State Diagram for the Multi-cycle processor
Multi-Cycle CPU.
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
مظفر بگ محمدی دانشگاه ایلام
مظفر بگ محمدی بهار 94 دانشگاه ایلام
ویژگی های DHCP جلوگیری از Conflict سرعت بخشیدن به کارها مدیریت متمرکز
ساختمان داده‌ها الگوریتمهای کوتاهترین مسیر
دانشگاه ایلام مظفر بگ محمدی
چگونه بفهمیم آیا ژورنالی ISI است؟ ایمپکت فاکتور دارد یا خیر؟
مظفر بگ محمدی دانشگاه ایلام
فصل دوم جبر بول.
Route configuration for 5400W ADSL Router
آشنایی با پایگاه داده mysql
Multicycle Approach Break up the instructions into steps
The Multicycle Implementation
Bucket sort اكرم منوچهري زهرا منوچهري
The Multicycle Implementation
Systems Architecture I
پشته و صف پیوندی Give qualifications of instructors: DAP
Vishwani D. Agrawal James J. Danaher Professor
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
با تشکر از جناب آقای مهندس بگ محمدی
فصل ششم مدارهای ترتیبی.
دکتر مظفر بگ محمدی دانشگاه ایلام
مدار منطقي مظفر بگ محمدي
مدار منطقي مظفر بگ محمدي
مظفر بگ محمدی دانشگاه ایلام
Instructions: Language of the Computer
پشته و صف پیوندی Give qualifications of instructors: DAP
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
ساختمان داده ها گرافها.
COSC 2021: Computer Organization Instructor: Dr. Amir Asif
Instructor: Mozafar Bag-Mohammadi Spring 2006 University of Ilam
Processor: Multi-Cycle Datapath & Control
Multi-Cycle Datapath Lecture notes from MKP, H. H. Lee and S. Yalamanchili.
5.5 A Multicycle Implementation
Systems Architecture I
Presentation transcript:

مظفر بگ محمدی بهار 94 دانشگاه ایلام فصل 5 مظفر بگ محمدی بهار 94 دانشگاه ایلام

روش ما فقط از فلیپ فلاپها استفاده می کنیم. تمام آنها با یک لبه کار می کنند. (مثلا لبه ی پایین رونده) کلاک همه یکسان است. نیازی به رسم کلاک نیست. تمام اعمال مورد نظر در یک کلاک خاتمه می یابند.

روش ما (ادامه...) کلاک وارد هیچ گیتی نمی شود. طراحی صحیح:

مسیر داده – CPI برابر 1 فرض: یعنی هر دستورالعمل در یک کلاک انجام می شود. دستورالعملها: add, sub, and, or slt, lw, sw, & beq هر دستورالعمل را جدا طراحی می کنیم. بعد همه را به هم وصل می کنیم.

واکشی دستورالعملها فرض کنید: دستورالعمل را واکشی کنید، سپس PC را افزایش دهید. برای همه دستورات یکسان است. فرض کنید: PC هر سیکل به روزرسانی می شود. فعلا jump و انشعاب نداریم. بعد از انجام این دستور، دستور بعدی را واکشی می کنیم.

دستورالعملهای ALU and $1, $2, $3 # $1 <= $2 & $3 E.g. MIPS R-format Opcode rs rt rd shamt function 6 5 5 5 5 6

دستورالعملهای load/store lw $1, immed($2) # $1 <= M[SE(immed)+$2] E.g. MIPS I-format: Opcode rt rt immed 6 5 5 16

دستورالعملهای انشعاب beq $1, $2, addr # if ($1==$2) PC = PC + addr<<2 در حقیقت: newPC = PC + 4 target = newPC + addr << 2 # in MIPS offset from newPC if (($1 - $2) == 0) PC = target else PC = newPC

دستورالعملهای انشعاب

تجمیع همه

نمای کلی واحد کنترل دستورالعملهای تک سیکلی مسیر داده: منطق ترکیبی، حافظه ی دستورالعملها، رجیسترها، حافظه ی داده، PC، سه حافظه ی آخر در انتهای چرخه نوشته می شود. نیاز به کنترل دارد: از منطق ترکیبی استفاده می کنیم. ورودیها: دستور العملها (خروجی واحد حافظه ی دستورالعملها) صفر (برای دستور beq) خروجیها: خطوط کنترلی مولتی پلکسرها ALUop Write-enables

نمای کلی واحد کنترل کنترل سریع مثال: هر واحدی به چه داده ای نیاز دارد؟ هر چه تعداد ورودیها کمتر باشد، مدار سریعتر است. مثال: کنترل کننده ی عمومی نیازی ندارد بداند که کدام ALUop اجرا می شود.

کنترل ALU فرض کنید ALU از جدول زیر استفاده می کند: 000 and 001 or 010 add 110 sub 111 slt (set less than) others don’t care

کنترل ALU ALU-ctrl = f(opcode,function) برای ساده کردن ALU-ctrl دستورالعمل عمل کد دستورالعمل opcode بیتهای function add 000000 100000 sub 100010 and 100100 or 100101 slt 101010 lw 100011 xxxxxx sw 101011 beq 000100 ALU-ctrl = f(opcode,function) برای ساده کردن ALU-ctrl ALUop = f(opcode) 2 bits 6 bits

کنترل ALU ALU-ctrl = f(ALUop, function) 3 bits 2 bits 6 bits 10 add, sub, and, … 00 lw, sw 01 beq ALU-ctrl = f(ALUop, function) 3 bits 2 bits 6 bits می توان مدار مربوطه را با 5 گیت و تعدادی معکوس کننده ساخت.

کنترلهای عمومی R-format: opcode rs rt rd shamt function 6 5 5 5 5 6 I-format: opcode rs rt address/immediate 6 5 5 16 J-format: opcode address 6 26

کنترلهای عمومی از instruction[25:21] به عنوان رجیستر خواندنیreg1 استفاده کنید. از instruction[20:16] به عنوان رجیستر خواندنیreg2 استفاده کنید. از instruction[20:16] در دستور load و instruction[15:11] در بقیه ی دستورات به عنوان رجیستر نوشتن استفاده کنید. از یک مولتی پلکسر استفاده کنید. از instruction[31:26] به عنوان op[5:0] استفاده کنید.

کنترلهای عمومی خروجیها ALU-ctrl - اسلایدهای قبلی را ببینید. ALU src - R-format, beq vs. ld/st MemRead - lw MemWrite - sw MemtoReg - lw RegDst - lw dst in bits 20:16, not 15:11 RegWrite - all but beq and sw PCSrc - beq taken

کنترلهای عمومی خروجیهای عمومی PCsrc را با موارد زیر جابجا کنید: Branch beq PCSrc = Branch * Zero چه ورودیهایی برای تعیین سیگنالهای کنترلی فوق الذکر ضروری است؟ فقط Op[5:0]

سیگنالهای کنترلی مورد نیاز

کنترلهای عمومی RegDst = ~Op[0] ALUSrc = Op[0] Instruction Opcode RegDst ALUSrc rrr 000000 1 lw 100011 sw 101011 x beq 000100 ??? others RegDst = ~Op[0] ALUSrc = Op[0] RegWrite = ~Op[3] * ~Op[2]

کنترلهای عمومی اگر کل MIPS ISA را پیاده کنیم، به ساختار سازمان یافته تری نیاز داریم. تا بتوان گیتها را بین سیگنالهای کنترلی به اشتراک گذاشت. راه حل رایج: PLA کد دستورالعملهای MIPS طوری طراحی شده اند که ورودیهای PLA، مینترمها و خروجیها حداقل شوند.

اضافه کردن دستور Jump

سیگنالهای کنترلی مورد نیاز Jump

طراحی تک سیکلی چه مشکلی دارد؟ Instructions Cycles Program Instruction Time Cycle (code size) X (CPI) (cycle time) بحرانی ترین مسیر احتمالاً مال دستور lw است: I-mem, reg-read, alu, d-mem, reg-write دستورات دیگر سریعتر هستند: مثلاً دستورات rrr نیازی به d-mem ندارند. اگر کل ISA را پیاده کنیم تفاوت بین دستورات خیلی معنادارتر است. تقسیم اعداد اعشاری عدم وجود دستور در حافظه ی نهان (فصلهای بعدی)

پیاده سازی تک سیکلی راه حلها: کلاک متغییر؟ یک کلاک کوچک و ثابت کنترل و طراحی خیلی مشکل است. یک کلاک کوچک و ثابت تعداد کلاکهای مورد نیاز هر دستور (یعنی CPI) متفاوت خواهد بود.

پیاده سازی چند سیکلی اما: Clock cycle = max(i-mem, reg-read+reg-write, ALU, d-mem) از منطق ترکیبی در سیکلهای متفاوت مجددا استفاده می کنیم: یک حافظه یک ALU و عدم استفاده از بقیه ی جمع کننده ها اما: کنترل خیلی پیچیده تر خواهد بود به رجیسترهای جدیدی برای ذخیره ی نتایج نیاز داریم (مثل IR) . در سیکلهای بعدی مجددا استفاده می شود. منطقی که سیگنالها را محاسبه می کند نیز مجددا استفاده می شود.

یک مسیر داده چند سیکلی سطح بالا توجه: رجیستر دستورالعمل، رجیستر داده حافظه یک حافظه که دارای باس آدرس است. یک ALU که خروجی آن در رجیستر ALUOut ذخیره می شود.

توضیح باس سیمها را به اشتراک می گذاریم تا تعداد سیگنالها کاهش یابند. یک مولتی پلکسر توزیع شده داریم. چندین منبع روی یک باس هستند. باید مطمئن باشیم که در هر لحظه از زمان فقط یکی از آنها فعال هستند!

سیگنالهای کنترلی در طراحی چند سیکلی

مسیر داده ی چند سیکلی

گامهای طراحی چند سیکلی IR=MEM[PC] PC=PC+4 A=RF(IR[25:21]) Step Description Sample Actions IF Fetch IR=MEM[PC] PC=PC+4 ID Decode A=RF(IR[25:21]) B=RF(IR[20:16]) ALUout=PC+SE(IR[15:0]) << 2 EX Execute ALUout = A + SE(IR[15:0]) # lw/sw ALUout = A op B # rrr ALUout=A-B # beq if (zero==1) PC = ALUout # beq PC=PC[31-28]:SE(IR[26:0])<<2 # jmp Mem Memory MEM[ALUout] = B # sw MDR = MEM[ALUout] #lw WB Writeback RF(IR[15:11]) = ALUout # rrr Reg(IR[20:16]) = MDR # lw

کنترل طراحی چند سیکلی تابعی از Op[5:0] و حالت فعلی به عنوان یک ماشین حالت متناهی (FSM) یا یک میکرو-برنامه یا میکرو-کد (بعدا) outputs Next State State Fn Output Fn Current state Inputs

ماشین حالت متناهی برای هر حالت تعریف کنید: سیگنالهای کنترلی مورد نیاز مسیر داده در این سیکل سیگنالهای کنترلی برای تعیین حالت بعدی تمام دستورات از IF شروع می شوند. تمام دستورات بعد از خاتمه، یک IF جدید را شروع می کنند: البته قبل از آن، PC را به صورت مناسب به روز رسانی می کنند.

مثال چند سیکلی: and Start IF ID EX MEM WB PCWrite PCSource = 10 ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01 ALUOp = 10 MemRead IorD = 1 MemWrite RegDst = 1 RegWrite MemtoReg = 0 RegDst = 0 MemtoReg = 1 Start ALUSrcA=0 IorD = 0 IRWrite ALUSrcB = 01 ALUOp = 00 PCSrc = 00 ALUSrcA = 0 ALUSrcB = 11 ALUSrcB = 10 LW | SW RRR BEQ J LW SW IF ID EX MEM WB مثال چند سیکلی: and

مثال چند سیکلی :and

FSM: تخصیص حالتها تخصیص حالت باعث تبدیل حالتهای منطقی به معادل دودویی آنها می شود. اهمیت موضوع؟ اگر تخصیص حالت را درست انجام دهیم، مدار کنترلی حاصله کوچکتر خواهد بود. پیدا کردن جواب بهینه سخت است. در ماشین طراحی شده 10 حالت داریم. می توان هر یک از اعداد 0 تا 15 را به هر کدام از حالتها تخصیص داد.

تخصیص حالت: سیگنال RegWrite State 0 PCWrite PCSource = 10 ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01 ALUOp = 10 MemRead IorD = 1 MemWrite RegDst = 1 RegWrite MemtoReg = 0 RegDst = 0 MemtoReg = 1 Start ALUSrcA=0 IorD = 0 IRWrite ALUSrcB = 01 ALUOp = 00 PCSrc = 00 ALUSrcA = 0 ALUSrcB = 11 ALUSrcB = 10 LW | SW RRR BEQ J LW SW IF ID EX MEM WB State 1 State 2 State 6 State 8 State 9 State 4 State 7 State 5 State 3 State 7 (0111b) State 9 (1001b) State 4 (0100b) State 8 (1000b) Original: 2 inverters, 2 and3s, 1 or2 New: No gates--just bit 3!

دستور lw Start IF ID EX MEM WB PCWrite PCSource = 10 ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01 ALUOp = 10 MemRead IorD = 1 MemWrite RegDst = 1 RegWrite MemtoReg = 0 RegDst = 0 MemtoReg = 1 Start ALUSrcA=0 IorD = 0 IRWrite ALUSrcB = 01 ALUOp = 00 PCSrc = 00 ALUSrcA = 0 ALUSrcB = 11 ALUSrcB = 10 LW | SW RRR BEQ J LW SW IF ID EX MEM WB

دستور lw

دستور sw Start IF ID EX MEM WB PCWrite PCSource = 10 ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01 ALUOp = 10 MemRead IorD = 1 MemWrite RegDst = 1 RegWrite MemtoReg = 0 RegDst = 0 MemtoReg = 1 Start ALUSrcA=0 IorD = 0 IRWrite ALUSrcB = 01 ALUOp = 00 PCSrc = 00 ALUSrcA = 0 ALUSrcB = 11 ALUSrcB = 10 LW | SW RRR BEQ J LW SW IF ID EX MEM WB

دستور sw

دستور (beq T) Start IF ID EX MEM WB PCWrite PCSource = 10 ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01 ALUOp = 10 MemRead IorD = 1 MemWrite RegDst = 1 RegWrite MemtoReg = 0 RegDst = 0 MemtoReg = 1 Start ALUSrcA=0 IorD = 0 IRWrite ALUSrcB = 01 ALUOp = 00 PCSrc = 00 ALUSrcA = 0 ALUSrcB = 11 ALUSrcB = 10 LW | SW RRR BEQ J LW SW IF ID EX MEM WB

دستور (beq T)

دستور (beq NT)

دستور j Start IF ID EX MEM WB PCWrite PCSource = 10 ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01 ALUOp = 10 MemRead IorD = 1 MemWrite RegDst = 1 RegWrite MemtoReg = 0 RegDst = 0 MemtoReg = 1 Start ALUSrcA=0 IorD = 0 IRWrite ALUSrcB = 01 ALUOp = 00 PCSrc = 00 ALUSrcA = 0 ALUSrcB = 11 ALUSrcB = 10 LW | SW RRR BEQ J LW SW IF ID EX MEM WB

دستور j

خلاصه پیاده سازی پردازنده پیاده سازی چند سیکلی بعدی: microprogramming مسیر داده کنترل پیاده سازی چند سیکلی بعدی: microprogramming