المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : أرجو أصحاب الخبرة مساعدتي: لدي سؤالين عن البنية الداخلية للمعالج و تحديدا ًpipelining



mtelej82
14-01-2008, 01:48
السلام عليكم و رحمة من الله و بركات..
أما بعد..
أتمنى من أصحاب الإختصاص إجابتي بشيء من التفصيل عن الأسئلة التالية, وبارك الله بكل من يساعدني, أما الأسئلة فهي:
السؤال الأول: ما هو العدد الأعظمي للأنابيب التي يمكن أن تكون ضمن معالج واحد(أعتقد 6 أنابيب) ولماذا لا ينصح بزيادة هذا العدد, أي ما هي العوامل التي تحد من زيادة عدد الأنابيب.
السؤال الثاني: هنالك قواعد لتحديد التعليمات التي توجه لكل انبوب وتسمى هذه القواعد بـ pairing rules أي قواعد الزوجية , أرجو بعض التوضيح عنها.
وإن كان بالإمكان (زيادة الخير خير) شرح مبدأ توقع التفرع في المعالج pentium I(1993) .
ولكم كل الشكر...

Brigadier
15-01-2008, 14:56
أتمنى من أصحاب الإختصاص إجابتي بشيء من التفصيل عن الأسئلة التالية, وبارك الله بكل من يساعدني, أما الأسئلة فهي:
السؤال الأول: ما هو العدد الأعظمي للأنابيب التي يمكن أن تكون ضمن معالج واحد(أعتقد 6 أنابيب) ولماذا لا ينصح بزيادة هذا العدد, أي ما هي العوامل التي تحد من زيادة عدد الأنابيب.
السؤال الثاني:

عدد ال pipelining الاقصى يعتمد على تقنيه تصنيع المعالج وعلى الغرض من المعالج وحسب استخدامه

المقنن له , لاينصح بزيادة حد معين منها في بعض المعالجات لانها تحتاج الى امور اكثر وتزيد التصنيع تعقيد وتفوق قدره المعالج والنقطه الاساسيه هي ان زيادتها يزيد وقت تنفيذ المعالجه الاولى,


An instruction pipeline is a technique used in the design of computers and other digital electronic devices to increase their instruction throughput (the number of instructions that can be executed in a unit of time).
Pipelining assumes that with a single instruction (SIMD) concept successive instructions in a program sequence will overlap in execution, as suggested in the next diagram (vertical 'i' instructions, horizontal 't' time).
Most modern CPUs are driven by a clock. The CPU consists internally of logic and flip flops. When the clock arrives, the flip flops take their new value and the logic then requires a period of time to decode the new values. Then the next clock pulse arrives and the flip flops again take their new values, and so on. By breaking the logic into smaller pieces and inserting flip flops between the pieces of logic, the delay before the logic gives valid outputs is reduced. In this way clock period can be reduced. For example, the RISC pipeline is broken into five stages with a set of flip flops between each stage.

Instruction fetch
Instruction decode and register fetch
Execute
Memory access
Register write back
Hazards: When a programmer (or compiler) writes assembly code, they make the assumption that each instruction is executed before execution of the subsequent instruction is begun. This assumption is invalidated by pipelining. When this causes a program to behave incorrectly, the situation is known as a hazard. Various techniques for resolving hazards such as forwarding and stalling exist.

A non-pipeline architecture is inefficient because some CPU components (modules) are idle while another module is active during the instruction cycle. Pipelining does not completely cancel out idle time in a CPU but making those modules work in parallel improves program execution significantly.

Processors with pipelining are organised inside into stages which can semi-independently work on separate jobs. Each stage is organised and linked into a 'chain' so each stage's output is inputted to another stage until the job is done. This organisation of the processor allows overall processing time to be significantly reduced.

Unfortunately, not all instructions are independent. In a simple pipeline, completing an instruction may require 5 stages. To operate at full performance, this pipeline will need to run 4 subsequent independent instructions while the first is completing. If 4 instructions that do not depend on the output of the first instruction are not available, the pipeline control logic must insert a stall or wasted clock cycle into the pipeline until the dependency is resolved. Fortunately, techniques such as forwarding can significantly reduce the cases where stalling is required. While pipelining can in theory increase performance over an unpipelined core by a factor of the number of stages (assuming the clock frequency also scales with the number of stages), in reality, most code does not allow for ideal execution


المصدر الموسوعه العالمية.