معمارية الميبس (Microprocessor without Interlocked Pipelines معالج دون خط أنابيب مُشابك)، هو نوع من أنواع المعالجات من مجموعة الأوامر المختصرة للكمبيوتر (RISC) طورته شركة (MIPS Technologies).[1][2]
هي لغة برمجة ذات مستوى منخفض تتعامل مباشرة مع بنية المعالج من سجلات ومع عناوين الذاكرة مباشرة أي أنها تتخاطب مع العتاد (الهاردوير)، وهي لغة بدائية ومقيدة جدا. البرنامج عبارة عن تعليمات. وهذه التعليمات تخرن في الذاكرة كتعليمة واحدة تلو الأخرى والتي تجلب وتنفذ في الوقت نفسه ينفذ Mips مجموعة من العمليات مثل التحميل من الذاكرة والتخزين في الذاكرة، وبعض العمليات المنطقية مثل AND، shift, OR. والعمليات الحسابية مثل add,sub
أنواع التعليمات
بعض التعليمات قد تأخذ اما معامل (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, $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):