معمارية ميبس
المحتويات
- ميزات لغة الميبس
- h=i-j; Label1: sub $s3, $s4, $s5
- أنواع التعليمات
- مبدأ تخزين البرنامج
- sub $s4, $s5, $s0
- ميزات ال RISC
- مقدمة عن تعليمات لغة الآلة
- 32 bits of data
- j Label Next instr. is at Label
- J-type
- 12
- j label
- عدد قليل من أنظمة العنونة
- Example
- بنية تحميل – تخزين
- 230 كلمة تعنون 0-4-8- 4-232
- sw $s1,100($s2) Memory[$s2+100] = $s1
- مثال
- 6
- bne $s1, $s3, Loop
- add $s0, $s1, $s2
- slt $t0, $s0, $s1
- دورة واحدة
- add $s3, $s0, $s1
- Assembly Language vs. Machine Language
- التعليمات يتم جلبها وتوضع في مسجل خاص
- مثلا العملية الحسابية
قبل الخوض في التفاصيل، معمارية الميبس (Microprocessor without Interlocked Pipelines معالج دون خط أنابيب مُشابك)، هو نوع من أنواع المعالجات من مجموعة الأوامر المختصرة للكمبيوتر (RISC) طورته شركة (MIPS Technologies). وفيما يلي تفاصيل أوسع عن ذلك.
ميزات لغة الميبس
تمتاز لغة الميبس بعدة مبادئ :
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
أنواع التعليمات
وعلى صعيد آخر، تعليمات ميبس الرياضية لها ثلاث معاملات والوجهة (النتيجة في أول مسجل) أولا
علاوةً على ذلك، بعض التعليمات قد تأخذ اما معامل (operand) واحد مثل: (Jump)، أو معاملان مثل (lw)، (sw)، أو ثلاثة معاملات مثل العمليات الحسابية (sub), (Add)
مبدأ تخزين البرنامج
beq $t0, $t1, Label # branch if equal
كذلك، القرار أو الشرط يغير التعليمات أي يغير تدفق التحكم ويغير التعليمة التالية التي سوف تنفذ.
bne $t0, $t1, Label # branch if not equal
sub $s4, $s5, $s0
- المعاملات يجب أن تكون مسجلات ويوجد 32 مسجل
- المبدأ الثاني : أصغر وأسرع
- Registers vs. Memory
- تنظم عناوين الذاكرة كمصفوفة مفهرسة بايت بايت
- 0
- 1
- 2
- 3
- 4
- 5
ميزات ال RISC
و التي تتميز ب :
وعلى صعيد آخر، و بشكل افتراضي فكل التعليمات منذ عام 1982 تستعمل البنية البديلة RISC
مقدمة عن تعليمات لغة الآلة
وفي السياق ذاته، هي لغة برمجة ذات مستوى منخفض تتعامل مباشرة مع بنية المعالج من سجلات ومع عناوين الذاكرة مباشرة أي أنها تتخاطب مع العتاد (الهاردوير)، وهي لغة بدائية ومقيدة جدا. البرنامج عبارة عن تعليمات. وهذه التعليمات تخرن في الذاكرة كتعليمة واحدة تلو الأخرى والتي تجلب وتنفذ في الوقت نفسه ينفذ Mips مجموعة من العمليات مثل التحميل من الذاكرة والتخزين في الذاكرة، وبعض العمليات المنطقية مثل AND، shift, OR. والعمليات الحسابية مثل add,sub
32 bits of data
المبدأ الثالث : تصميم جيد يطلب اتفاقية جيدة
التعليمات هي مجموعة بيتات والبرامج تكون مخزنة بالذاكرة
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 تعني التفريع عندما يكون المعامل الأول أصغر من المعامل الثاني عندها يتم توضيع القيمة واحد في مسجل النتيجة.
12
- ...
- 32 bits of data
- 32 bits of data
j label
- Example (if - then - else):
- if (i!=j) beq $s4, $s5, Label1
- h=i+j; add $s3, $s4, $s5
- else j Label2
عدد قليل من أنظمة العنونة
- وحدة تحكم سريعة.
- انظر كذلك
- تقنية حاسب مجموعة التعليمات المعقدة
Example
bne $s0, $s1, Label
(if): if (i==j) h = i + j;
بنية تحميل – تخزين
عدد قليل من التعليمات
عدد كبير من المسجلات بالإضافة ل:
230 كلمة تعنون 0-4-8- 4-232
- Not in all architectures!
- 0
- 4
- 8
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
مثال
- C code: A = B + C + D;
- E = F - A;
- MIPS code: add $t0, $s1, $s2
- add $s0, $t0, $s3
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
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]
add $s0, $s1, $s2
إضافةً إلى ذلك، هنا يجمع A و-B ممثلان ب(s$1) و(s$2) ويتم تخزين الحاصل في المسجل (register) المرمز (s$0)
slt $t0, $s0, $s1
وفي هذا الصدد، و في النهاية فان لغة الاسمبلي تزودنا بأشباه تعليمات 'pseudoinstructions'
من جهة ثانية، مثل تعليمة move $t0, $t1 في الاسمبلي هي عبارة عن add $t0,$t1,$zero
دورة واحدة
عدد قليل من شكل التعليمات ذات الطول الثابت.
add $s3, $s0, $s1
Label:....
تعليمات ميبس التفرعية غير الشرطية
Assembly Language vs. Machine Language
ومن جهة أخرى، تؤمن الاسمبلي عمليات أقوى من ميبس والهدف هو إنقاص عدد التعليمات المنفذة ولكن الخوف في بطئ دورة الساعة and/or
- في بعض الأوقات يشار اليها باسم RISC vs. CISC
- Reduced Instruction Set Computers
- Complex Instruction Set Computers
التعليمات يتم جلبها وتوضع في مسجل خاص
في هذا الإطار، البيتات في مسجل التحكم الحدث التالي تجلب التعليمة التالية وتتابع.
مثلا العملية الحسابية
يمكن وصفها في MIPS كالآتي:
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟