วันเสาร์ที่ 22 มีนาคม พ.ศ. 2557

WEEK9 สถาปัตยกรรม โทรศัพท์

ประมวลผลการทำงานด้วย ARM 11 Processor ความเร็วในการประมวลผล 434 MHz

ARM11 Processor Family

ARM11 Processor Family Image
The ARM11™ processor family provides the engine that powers many smartphones in production today and is also widely used in consumer, home, and embedded applications. It delivers extreme low power and a range of performance from 350 MHz in small area designs up to 1 GHz in speed-optimized designs in 45 and 65 nm. ARM11 processor software is compatible with all previous generations of ARM processors, and introduces 32-bit SIMD for media processing, physically tagged caches to improve OS context switch performance,TrustZone for hardware-enforced security, and tightly coupled memories for real-time applications.
อ้างอิง : http://www.arm.com/products/processors/classic/arm11/index.php

Hazards
The VFP11 coprocessor incorporates full hazard detection with a fully-interlocked pipeline protocol. No compiler scheduling is required to avoid hazard conditions. The source and destination scoreboards process interlocks caused by unavailable source or destination registers or by unavailable data. The scoreboards stall instructions until all data operands and destination registers are available before the instruction is issued to the instruction pipeline.
The determination of hazards and interlock conditions is different in full-compliance mode and RunFast mode. RunFast mode guarantees no bounce conditions and has a less strict hazard detection mechanism, enabling instructions to begin execution earlier than in full-compliance mode.
There are two VFP11 pipeline hazards:
  • A data hazard is a combination of instructions that creates the potential for operands to be accessed in the wrong order.
    • Read-After-Write (RAW) data hazard occurs when the pipeline creates the potential for an instruction to read an operand before a prior instruction writes to it. It is a hazard to the intended read-after-write operand access.
    • Write-After-Read (WAR) data hazard occurs when the pipeline creates the potential for an instruction to write to a register before a prior instruction reads it. It is a hazard to the intended write-after-read operand access.
    • Write-After-Write (WAW) data hazard occurs when the pipeline creates the potential for an instruction to write to a register before a prior instruction writes to it. It is a hazard to the intended write-after-write operand access.

WEEK9

Hazard (computer architecture)


  • Data hazards

    Data hazards occur when instructions that exhibit data dependence modify data in different stages of a pipeline. Ignoring potential data hazards can result in race conditions (sometimes known as race hazards). There are three situations in which a data hazard can occur:
    1. read after write (RAW), a true dependency
    2. write after read (WAR), an anti-dependency
    3. write after write (WAW), an output dependency
    Consider two instructions i1 and i2, with i1 occurring before i2 in program order.
  • Read After Write (RAW)

    (i2 tries to read a source before i1 writes to it) A read after write (RAW) data hazard refers to a situation where an instruction refers to a result that has not yet been calculated or retrieved. This can occur because even though an instruction is executed after a previous instruction, the previous instruction has not been completely processed through the pipeline.
    Example
    For example:
    i1. R2 <- R1 + R3
    i2. R4 <- R2 + R3
    The first instruction is calculating a value to be saved in register R2, and the second is going to use this value to compute a result for register R4. However, in a pipeline, when we fetch the operands for the 2nd operation, the results from the first will not yet have been saved, and hence we have a data dependency.
    We say that there is a data dependency with instruction i2, as it is dependent on the completion of instruction i1.

    Write After Read (WAR)

    (i2 tries to write a destination before it is read by i1) A write after read (WAR) data hazard represents a problem with concurrent execution.
    Example
    For example:
    i1. R4 <- R1 + R5
    i2. R5 <- R1 + R2
    If we are in a situation that there is a chance that i2 may be completed before i1 (i.e. with concurrent execution) we must ensure that we do not store the result of register R5 before i1 has had a chance to fetch the operands.

    Write After Write (WAW)

    (i2 tries to write an operand before it is written by i1) A write after write (WAW) data hazard may occur in a concurrent execution environment.
    Example
    For example:
    i1. R2 <- R4 + R7
    i2. R2 <- R1 + R3
    We must delay the WB (Write Back) of i2 until the execution of i1.

    Structural hazards

    A structural hazard occurs when a part of the processor's hardware is needed by two or more instructions at the same time. A canonical example is a single memory unit that is accessed both in the fetch stage where an instruction is retrieved from memory, and the memory stage where data is written and/or read from memory. They can often be resolved by separating the component into orthogonal units (such as separate caches) or bubbling the pipeline.

    Control hazards (branch hazards)

    Branching hazards (also known as control hazards) occur with branches. On many instruction pipeline microarchitectures, the processor will not know the outcome of the branch when it needs to insert a new instruction into the pipeline (normally the fetch stage).
  • อ้างอิง http://en.wikipedia.org/wiki/Hazard_(computer_architecture)