معمارية ميبس

عمارة مجموعة التعليمات

معمارية الميبس (Microprocessor without Interlocked Pipelines معالج دون خط أنابيب مُشابك)، هو نوع من أنواع المعالجات من مجموعة الأوامر المختصرة للكمبيوتر (RISC) طورته شركة (MIPS Technologies).[1][2]

مقدمة عن تعليمات لغة الآلة

هي لغة برمجة ذات مستوى منخفض تتعامل مباشرة مع بنية المعالج من سجلات ومع عناوين الذاكرة مباشرة أي أنها تتخاطب مع العتاد (الهاردوير)، وهي لغة بدائية ومقيدة جدا. البرنامج عبارة عن تعليمات. وهذه التعليمات تخرن في الذاكرة كتعليمة واحدة تلو الأخرى والتي تجلب وتنفذ في الوقت نفسه ينفذ Mips مجموعة من العمليات مثل التحميل من الذاكرة والتخزين في الذاكرة، وبعض العمليات المنطقية مثل AND، shift, OR. والعمليات الحسابية مثل add,sub

معالج MIPS وفيه تظهر أربع خطوط أنابيب

أنواع التعليمات

بعض التعليمات قد تأخذ اما معامل (operand) واحد مثل: (Jump)، أو معاملان مثل (lw)، (sw)، أو ثلاثة معاملات مثل العمليات الحسابية (sub), (Add)

تعليمات ميبس الرياضية لها ثلاث معاملات والوجهة (النتيجة في أول مسجل) أولا

مثلا العملية الحسابية يمكن وصفها في MIPS كالآتي:

add $s0, $s1, $s2

هنا يجمع A و-B ممثلان ب(s$1) و(s$2) ويتم تخزين الحاصل في المسجل (register) المرمز (s$0)

ميزات لغة الميبس

تمتاز لغة الميبس بعدة مبادئ :

مثال

C code: A = B + C + D;E = F - A;MIPS code: add $t0, $s1, $s2add $s0, $t0, $s3sub $s4, $s5, $s0المعاملات يجب أن تكون مسجلات ويوجد 32 مسجل

المبدأ الثاني : أصغر وأسرع

Registers vs. Memory

تنظم عناوين الذاكرة كمصفوفة مفهرسة بايت بايت0123456...8 bits of data8 bits of data8 bits of data8 bits of data8 bits of data

ولكن معظم المعطيات تستخدم 4 بايت230 بايت تعنون من 0 وحتى 232-1230 كلمة تعنون 0-4-8- 4-232Not in all architectures!

04812...32 bits of data32 bits of data32 bits of data

المبدأ الثالث : تصميم جيد يطلب اتفاقية جيدة

التعليمات هي مجموعة بيتات والبرامج تكون مخزنة بالذاكرةالتعليمات يتم جلبها وتوضع في مسجل خاصالبيتات في مسجل التحكم الحدث التالي تجلب التعليمة التالية وتتابع.

مبدأ تخزين البرنامج

القرار أو الشرط يغير التعليمات أي يغير تدفق التحكم ويغير التعليمة التالية التي سوف تنفذ.bne $t0, $t1, Label # branch if not equalbeq $t0, $t1, Label # branch if equal

Example

(if): if (i==j) h = i + j;

bne $s0, $s1, Labeladd $s3, $s0, $s1Label:....تعليمات ميبس التفرعية غير الشرطيةj labelExample (if - then - else):

if (i!=j) beq $s4, $s5, Label1h=i+j; add $s3, $s4, $s5else j Label2h=i-j; Label1: sub $s3, $s4, $s5Label2:...

مثال أخر:

Example (loop):

Loop: ----i=i+j;if(i!=h) go to Loop---Loop: ---add $s1, $s1, $s2 #i=i+jbne $s1, $s3, Loop

بعض الأمثلة :

Instruction Meaning

add $s1,$s2,$s3 $s1 = $s2 + $s3

sub $s1,$s2,$s3 $s1 = $s2 – $s3

lw $s1,100($s2) $s1 = Memory[$s2+100]

sw $s1,100($s2) Memory[$s2+100] = $s1

bne $s4,$s5,L Next instr. is at Label if $s4 $s5

beq $s4,$s5,L Next instr. is at Label if $s4 = $s5

j Label Next instr. is at Label

و هذه هي شيفرات التعلميات:

the 16 b and 26 b addresses are word addresses

op rs rt rd shamt funct

op rs rt 16 bit address

op 26 bit address

R-type

I-type

J-type

Slt تعني التفريع عندما يكون المعامل الأول أصغر من المعامل الثاني عندها يتم توضيع القيمة واحد في مسجل النتيجة.slt $t0, $s0, $s1

و في النهاية فان لغة الاسمبلي تزودنا بأشباه تعليمات 'pseudoinstructions'مثل تعليمة move $t0, $t1 في الاسمبلي هي عبارة عن add $t0,$t1,$zero

Assembly Language vs. Machine Language

تؤمن الاسمبلي عمليات أقوى من ميبس والهدف هو إنقاص عدد التعليمات المنفذة ولكن الخوف في بطئ دورة الساعة and/or

في بعض الأوقات يشار اليها باسم RISC vs. CISCReduced Instruction Set ComputersComplex Instruction Set Computers

ميزات ال RISC

و بشكل افتراضي فكل التعليمات منذ عام 1982 تستخدم البنية البديلة RISCو التي تتميز ب :

  1. دورة واحدة
  2. عدد قليل من شكل التعليمات ذات الطول الثابت.
  3. بنية تحميل | تخزين
  4. عدد كبير من المسجلات بالإضافة ل:
  5. عدد قليل من التعليمات
  6. عدد قليل من أنظمة العنونة
  7. وحدة تحكم سريعة.

انظر أيضا

المراجع