تعليمات الـ MIPS
معمارية الميبس (Microprocessor without Interlocked Pipelines معالج دون خط أنابيب مشابك) هو نوع من أنواع المعالجات من مجموعة الاوامر المختصرة للكمبيوتر (RISC) طورته شركة (MIPS Technologies).
مقدمة عن تعليمات لغة الالة
هي لغة برمجة ذات مستوى منخفض تتعامل مباشرة مع بنية المعالج من سجلات ومع عناوين الذاكرة مباشرة أي أنها تتخاطب مع الهاردوير, وهي لغة بدائية ومقيدة جدا. البرنامج عبارة عن تعليمات. وهذه التعليمات تخرن في الذاكرة كتعليمة واحدة تلو الأخرى والتي تجلب وتنفذ في الوقت نفسه ينفذ Mips مجموعة من العمليات مثل التحميل من الذاكرة والتخزين في الذاكرة، وبعض العمليات المنطقية مثل AND، shift, OR. والعمليات الجسابية مثل add,sub
أنواع التعليمات
بعض التعليمات قد تأخذ اما معامل (operand) واحد مثل: (Jump)، أو معاملان مثل (lw)، (sw)، أو ثلاثة معاملات مثل العمليات الحسابية (sub), (Add)
تعليمات ميبس الرياضية لها ثلاث معاملات والوجهة (النتيجة في أول مسجل) أولا
مثلا العملية الحسابية يمكن وصفها في MIPS كالآتي:
<source lang="asm"> add $s0, $s1, $s2 </source>
هنا يجمع A و-B ممثلان ب(s$1) و(s$2) ويتم تخزين الحاصل في المسجل (register) المرمز (s$0)
ميزات لغة الميبس
تمتاز لغة الميبس بعدة مبادئ :
المبدأ الأول : سهولة الترتيب
مثال :
C code: A = B + C + D; E = F - A; MIPS code: add $t0, $s1, $s2 add $s0, $t0, $s3 sub $s4, $s5, $s0 المعاملات يجب أن تكون مسجلات ويوجد 32 مسجل
المبدأ الثاني : أصغر وأسرع
Registers vs. Memory
تنظم عناوين الذاكرة كمصفوفة مفهرسة بايت بايت 0 1 2 3 4 5 6 ... 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data
ولكن معظم المعطيات تستخدم 4 بايت 230 بايت تعنون من 0 وحتى 232-1 230 كلمة تعنون 0-4-8- 4-232 Not in all architectures!
0 4 8 12 ... 32 bits of data 32 bits of data 32 bits of data
المبدأ الثالث : تصميم جيد يطلب اتفاقية جيدة
التعليمات هي مجموعة بيتات والبرامج تكون مخزنة بالذاكرة التعليمات يتم جلبها وتوضع في مسجل خاص البيتات في مسجل التحكم الحدث التالي تجلب التعليمة التالية وتتابع.
مبدأ تخزين البرنامج
القرار أو الشرط يغير التعليمات أي يغير تدفق التحكم ويغير التعليمة التالية التي سوف تنفذ. bne $t0, $t1, Label # branch if not equal beq $t0, $t1, Label # branch if equal
Example
(if): if (i==j) h = i + j;
bne $s0, $s1, Label add $s3, $s0, $s1 Label:.... تعليمات ميبس التفرعية غير الشرطية j label Example (if - then - else):
if (i!=j) beq $s4, $s5, Label1 h=i+j; add $s3, $s4, $s5 else j Label2 h=i-j; Label1: sub $s3, $s4, $s5 Label2:...
مثال أخر:
Example (loop):
Loop: ---- i=i+j; if(i!=h) go to Loop --- Loop: --- add $s1, $s1, $s2 #i=i+j bne $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. CISC Reduced Instruction Set Computers Complex Instruction Set Computers
ميزات ال RISC
و بشكل افتراضي فكل التعليمات منذ عام 1982 تستخدم البنية البديلة RISC و التي تتميز ب :
- دورة واحدة
- عدد قليل من شكل التعليمات ذات الطول الثابت.
- بنية تحميل | تخزين
- عدد كبير من المسجلات بالإضافة ل:
- عدد قليل من التعليمات
- عدد قليل من أنظمة العنونة
- وحدة تحكم سريعة.
المراجع
- MIPS Assembly Language Programming by Robert Britton
The Mips Programmer's Handbook (The Morgan Kaufmann Series in Computer* Architecture and Design) by Erin Farquhar and Philip J. Bunce
انظر أيضا
cs:Architektura MIPS cv:MIPS de:MIPS-Architektur MIPS architecture]] es:MIPS (procesador) fi:MIPS-arkkitehtuuri fr:Architecture MIPS he:ארכיטקטורת MIPS hu:MIPS CPU it:Architettura MIPS ja:MIPSアーキテクチャ ko:MIPS 아키텍처 lv:MIPS arhitektūra nl:MIPS (CPU) no:MIPS (RISC-arkitektur) pl:Architektura MIPS pt:Arquitetura MIPS ru:MIPS (архитектура) sv:MIPS (processorarkitektur) tr:MIPS mimarisi vi:MIPS zh:MIPS架構