SlideShare a Scribd company logo
Hafiz Hamza AshrafHafiz Hamza Ashraf
hafizhamza313@gmail.comhafizhamza313@gmail.com
PipeliningPipelining
CharacterizeCharacterize PipelinesPipelines
1)1) Hardware or software implementation – pipelining can be implemented inHardware or software implementation – pipelining can be implemented in
either software or hardware.either software or hardware.
2)2) Large or Small Scale – Stations in a pipeline can range from simplistic toLarge or Small Scale – Stations in a pipeline can range from simplistic to
powerful, and a pipeline can range in length from short to long.powerful, and a pipeline can range in length from short to long.
3)3) Synchronous or asynchronous flow – A synchronous pipeline operatesSynchronous or asynchronous flow – A synchronous pipeline operates
like an assembly line: at a given time, each station is processing somelike an assembly line: at a given time, each station is processing some
amount of information. A asynchronous pipeline, allow a station toamount of information. A asynchronous pipeline, allow a station to
forward information at any time.forward information at any time.
4)4) Buffered or unbuffered flow – One stage of pipeline sends data directly toBuffered or unbuffered flow – One stage of pipeline sends data directly to
another one or a buffer is place between each pairs of stages.another one or a buffer is place between each pairs of stages.
5)5) Finite Chunks or Continuous Bit Streams – The digital information thatFinite Chunks or Continuous Bit Streams – The digital information that
passes though a pipeline can consist of a sequence or small data itemspasses though a pipeline can consist of a sequence or small data items
or an arbitrarily long bit stream.or an arbitrarily long bit stream.
6)6) Automatic Data Feed Or Manual Data Feed – Some implementations ofAutomatic Data Feed Or Manual Data Feed – Some implementations of
pipelines use a separate mechanism to move information, and otherpipelines use a separate mechanism to move information, and other
implementations require each stage to participate in moving information.implementations require each stage to participate in moving information.
What is PipeliningWhat is Pipelining
 A technique used in advanced microprocessors whereA technique used in advanced microprocessors where
the microprocessor begins executing a secondthe microprocessor begins executing a second
instruction before the first has been completed.instruction before the first has been completed.
- A Pipeline is a series of stages, where some work isA Pipeline is a series of stages, where some work is
done at each stage. The work is not finished until it hasdone at each stage. The work is not finished until it has
passed through all stages.passed through all stages.
 With pipelining, the computer architecture allows theWith pipelining, the computer architecture allows the
next instructions to be fetched while the processor isnext instructions to be fetched while the processor is
performing arithmetic operations, holding them in aperforming arithmetic operations, holding them in a
buffer close to the processor until each instructionbuffer close to the processor until each instruction
operation can performed.operation can performed.
How Pipelines WorksHow Pipelines Works
 The pipeline is divided into segments andThe pipeline is divided into segments and
each segment can execute it operationeach segment can execute it operation
concurrently with the other segments.concurrently with the other segments.
Once a segment completes an operations,Once a segment completes an operations,
it passes the result to the next segment init passes the result to the next segment in
the pipeline and fetches the nextthe pipeline and fetches the next
operations from the preceding segment.operations from the preceding segment.
ExampleExample
Pipelining In computer
Instructions FetchInstructions Fetch
 The instruction Fetch (IF) stage is responsible forThe instruction Fetch (IF) stage is responsible for
obtaining the requested instruction from memory. Theobtaining the requested instruction from memory. The
instruction and the program counter (which isinstruction and the program counter (which is
incremented to the next instruction) are stored in theincremented to the next instruction) are stored in the
IF/ID pipeline register as temporary storage so that mayIF/ID pipeline register as temporary storage so that may
be used in the next stage at the start of the next clockbe used in the next stage at the start of the next clock
cycle.cycle.
Instruction DecodeInstruction Decode
 The Instruction Decode (ID) stage is responsible forThe Instruction Decode (ID) stage is responsible for
decoding the instruction and sending out the variousdecoding the instruction and sending out the various
control lines to the other parts of the processor. Thecontrol lines to the other parts of the processor. The
instruction is sent to the control unit where it is decodedinstruction is sent to the control unit where it is decoded
and the registers are fetched from the register file.and the registers are fetched from the register file.
ExecutionExecution
 The Execution (EX) stage is where any calculations areThe Execution (EX) stage is where any calculations are
performed. The main component in this stage is theperformed. The main component in this stage is the
ALU. The ALU is made up of arithmetic, logic andALU. The ALU is made up of arithmetic, logic and
capabilities.capabilities.
Memory and IOMemory and IO
 The Memory and IO (MEM) stage is responsible forThe Memory and IO (MEM) stage is responsible for
storing and loading values to and from memory. It alsostoring and loading values to and from memory. It also
responsible for input or output from the processor. If theresponsible for input or output from the processor. If the
current instruction is not of Memory or IO type than thecurrent instruction is not of Memory or IO type than the
result from the ALU is passed through to the write backresult from the ALU is passed through to the write back
stage.stage.
Write BackWrite Back
 The Write Back (WB) stage is responsibleThe Write Back (WB) stage is responsible
for writing the result of a calculation,for writing the result of a calculation,
memory access or input into the registermemory access or input into the register
file.file.
Operation TimingsOperation Timings
 Estimated timings for each ofEstimated timings for each of
the stages:the stages:
InstructionInstruction
FetchFetch
2ns2ns
InstructionInstruction
DecodeDecode
1ns1ns
ExecutionExecution 2ns2ns
MemoryMemory
and IOand IO
2ns2ns
Write BackWrite Back 1ns1ns
Advantages/DisadvantagesAdvantages/Disadvantages
Advantages:Advantages:
 More efficient use of processorMore efficient use of processor
 Quicker time of execution of large number ofQuicker time of execution of large number of
instructionsinstructions
Disadvantages:Disadvantages:
 Pipelining involves adding hardware to the chipPipelining involves adding hardware to the chip
 Inability to continuously run the pipelineInability to continuously run the pipeline
at full speed because of pipeline hazardsat full speed because of pipeline hazards
which disrupt the smooth execution of thewhich disrupt the smooth execution of the
pipeline.pipeline.
Pipeline HazardsPipeline Hazards
 Data Hazards – an instruction uses the result of theData Hazards – an instruction uses the result of the
previous instruction. A hazard occurs exactly when anprevious instruction. A hazard occurs exactly when an
instruction tries to read a register in its ID stage that aninstruction tries to read a register in its ID stage that an
earlier instruction intends to write in its WB stage.earlier instruction intends to write in its WB stage.
 Control Hazards – the location of an instruction dependsControl Hazards – the location of an instruction depends
on previous instructionon previous instruction
 Structural Hazards – two instructions need to access theStructural Hazards – two instructions need to access the
same resourcesame resource
Data HazardsData Hazards
StallingStalling
 Stalling involves halting the flow of instructions until theStalling involves halting the flow of instructions until the
required result is ready to be used. However stallingrequired result is ready to be used. However stalling
wastes processor time by doing nothing while waitingwastes processor time by doing nothing while waiting
for the result.for the result.
Pipelining In computer
Type of PipeliningType of Pipelining
 Software PipeliningSoftware Pipelining
1) Can Handle Complex Instructions1) Can Handle Complex Instructions
2) Allows programs to be reused2) Allows programs to be reused
 Hardware PipeliningHardware Pipelining
1) Help designer manage complexity – a1) Help designer manage complexity – a
complex task can be divided into smaller,complex task can be divided into smaller,
more manageable pieces.more manageable pieces.
2) Hardware pipelining offers higher2) Hardware pipelining offers higher
performanceperformance
Type of Hardware PipelinesType of Hardware Pipelines
 Instruction Pipeline -Instruction Pipeline - AnAn instruction pipelineinstruction pipeline is veryis very
similar to a manufacturing assembly line.similar to a manufacturing assembly line.
1st stage receives some parts, performs its assembly task,1st stage receives some parts, performs its assembly task,
and passes the results to the second stage;and passes the results to the second stage;
2nd stage takes the partially assembled product from the2nd stage takes the partially assembled product from the
first stage, performs its task, and passes its work to thefirst stage, performs its task, and passes its work to the
third stage;third stage;
3rd stage does its work, passing the results to the last3rd stage does its work, passing the results to the last
stage, which completes the task and outputs its results.stage, which completes the task and outputs its results.
 Data Pipeline – data pipeline is designed to pass dataData Pipeline – data pipeline is designed to pass data
from stage to stage.from stage to stage.
Instruction Pipelines ConflictInstruction Pipelines Conflict
 It divided into two categories.It divided into two categories.
 Data ConflictsData Conflicts
 Branch ConflictsBranch Conflicts
 When the current instruction changes a register that theWhen the current instruction changes a register that the
next one needed, data conflicts happens.next one needed, data conflicts happens.
 When the current instruction make a jump, branchWhen the current instruction make a jump, branch
conflicts happens.conflicts happens.
ReferencesReferences
 http://www.cs.sjsu.edu/~lee/cs147/fall2003http://www.cs.sjsu.edu/~lee/cs147/fall2003
/23147L25Pipelining.ppt/23147L25Pipelining.ppt
 http://murray.newcastle.edu.au/users/studhttp://murray.newcastle.edu.au/users/stud
ents/1999/c9311421/pipe.html#s5ents/1999/c9311421/pipe.html#s5
 You can comment or mail for any questionYou can comment or mail for any question
at:at:
 hafizhamza313@gmail.comhafizhamza313@gmail.com
 www.drhamza.webs.comwww.drhamza.webs.com
ThanksThanks

More Related Content

PPTX
INSTRUCTION LEVEL PARALLALISM
PPTX
CISC & RISC Architecture
PPSX
CISC & RISC ARCHITECTURES
PDF
ARM 32-bit Microcontroller Cortex-M3 introduction
ODP
APB protocol v1.0
PPTX
Module 1 - ARM 32 Bit Microcontroller
PDF
Dual port ram
PDF
COMPUTER ORGANIZATION NOTES Unit 7
INSTRUCTION LEVEL PARALLALISM
CISC & RISC Architecture
CISC & RISC ARCHITECTURES
ARM 32-bit Microcontroller Cortex-M3 introduction
APB protocol v1.0
Module 1 - ARM 32 Bit Microcontroller
Dual port ram
COMPUTER ORGANIZATION NOTES Unit 7

What's hot (20)

PPT
Flynns classification
PPT
pipelining
PPTX
Presentation on risc pipeline
PPTX
Instruction sets of 8086
PPTX
Arm chap 3 last
PPTX
Micro program example
PPTX
instruction format and addressing modes
PPT
Serial Peripheral Interface(SPI)
PDF
Arm cm3 architecture_and_programmer_model
PPT
chapter3 - Basic Processing Unit.ppt
PPTX
Microcontroller(18CS44) module 1
PPTX
Data Hazard and Solution for Data Hazard
PPTX
RISC - Reduced Instruction Set Computing
PPT
Unit 3-pipelining & vector processing
PPTX
Pipelining powerpoint presentation
PPT
Computer architecture pipelining
PPTX
Input output interface
PPTX
Design of control unit.pptx
PPTX
Assembly Language
Flynns classification
pipelining
Presentation on risc pipeline
Instruction sets of 8086
Arm chap 3 last
Micro program example
instruction format and addressing modes
Serial Peripheral Interface(SPI)
Arm cm3 architecture_and_programmer_model
chapter3 - Basic Processing Unit.ppt
Microcontroller(18CS44) module 1
Data Hazard and Solution for Data Hazard
RISC - Reduced Instruction Set Computing
Unit 3-pipelining & vector processing
Pipelining powerpoint presentation
Computer architecture pipelining
Input output interface
Design of control unit.pptx
Assembly Language
Ad

Similar to Pipelining In computer (20)

PPT
Unit 3
PPTX
Pipeline & Nonpipeline Processor
PPTX
Pipelining of Processors
PPTX
pipelining
PDF
Computer SAarchitecture Lecture 6_Pip.pdf
PPT
Pipelining
PPT
PPT
Pipelining slides
PPTX
Pipelining of Processors Computer Architecture
PPT
Pipeline hazard
PPTX
pipeline in computer architecture design
PDF
Pipelining 16 computers Artitacher pdf
PPT
Pipelining in computer architecture
PPTX
complete DLD.pptxbjngjjgujjhhujhhhuujhguh
PPT
Pipelining
PPTX
pipelining.pptx
PPTX
3 Pipelining
PPT
Instruction pipelining
PPT
Chapter6 pipelining
PPTX
Design pipeline architecture for various stage pipelines
Unit 3
Pipeline & Nonpipeline Processor
Pipelining of Processors
pipelining
Computer SAarchitecture Lecture 6_Pip.pdf
Pipelining
Pipelining slides
Pipelining of Processors Computer Architecture
Pipeline hazard
pipeline in computer architecture design
Pipelining 16 computers Artitacher pdf
Pipelining in computer architecture
complete DLD.pptxbjngjjgujjhhujhhhuujhguh
Pipelining
pipelining.pptx
3 Pipelining
Instruction pipelining
Chapter6 pipelining
Design pipeline architecture for various stage pipelines
Ad

More from Talesun Solar USA Ltd. (13)

PPTX
What is http?
PPTX
Inner Join In Ms Access
PPTX
History of Database
PPTX
How to delect data with the help of
PPTX
Sale management
PPTX
PPTX
Entity relationship diagram
PPTX
Vehicular ad hoc network
PPT
Satellite network
PPT
Instruction cycle
PPTX
What is http?
Inner Join In Ms Access
History of Database
How to delect data with the help of
Sale management
Entity relationship diagram
Vehicular ad hoc network
Satellite network
Instruction cycle

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
KodekX | Application Modernization Development
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Modernizing your data center with Dell and AMD
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
cuic standard and advanced reporting.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
The AUB Centre for AI in Media Proposal.docx
KodekX | Application Modernization Development
Building Integrated photovoltaic BIPV_UPV.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Reach Out and Touch Someone: Haptics and Empathic Computing
The Rise and Fall of 3GPP – Time for a Sabbatical?
Modernizing your data center with Dell and AMD
“AI and Expert System Decision Support & Business Intelligence Systems”
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Understanding_Digital_Forensics_Presentation.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Advanced methodologies resolving dimensionality complications for autism neur...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Review of recent advances in non-invasive hemoglobin estimation
cuic standard and advanced reporting.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Spectral efficient network and resource selection model in 5G networks
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Pipelining In computer

  • 1. Hafiz Hamza AshrafHafiz Hamza Ashraf hafizhamza313@gmail.comhafizhamza313@gmail.com
  • 3. CharacterizeCharacterize PipelinesPipelines 1)1) Hardware or software implementation – pipelining can be implemented inHardware or software implementation – pipelining can be implemented in either software or hardware.either software or hardware. 2)2) Large or Small Scale – Stations in a pipeline can range from simplistic toLarge or Small Scale – Stations in a pipeline can range from simplistic to powerful, and a pipeline can range in length from short to long.powerful, and a pipeline can range in length from short to long. 3)3) Synchronous or asynchronous flow – A synchronous pipeline operatesSynchronous or asynchronous flow – A synchronous pipeline operates like an assembly line: at a given time, each station is processing somelike an assembly line: at a given time, each station is processing some amount of information. A asynchronous pipeline, allow a station toamount of information. A asynchronous pipeline, allow a station to forward information at any time.forward information at any time. 4)4) Buffered or unbuffered flow – One stage of pipeline sends data directly toBuffered or unbuffered flow – One stage of pipeline sends data directly to another one or a buffer is place between each pairs of stages.another one or a buffer is place between each pairs of stages. 5)5) Finite Chunks or Continuous Bit Streams – The digital information thatFinite Chunks or Continuous Bit Streams – The digital information that passes though a pipeline can consist of a sequence or small data itemspasses though a pipeline can consist of a sequence or small data items or an arbitrarily long bit stream.or an arbitrarily long bit stream. 6)6) Automatic Data Feed Or Manual Data Feed – Some implementations ofAutomatic Data Feed Or Manual Data Feed – Some implementations of pipelines use a separate mechanism to move information, and otherpipelines use a separate mechanism to move information, and other implementations require each stage to participate in moving information.implementations require each stage to participate in moving information.
  • 4. What is PipeliningWhat is Pipelining  A technique used in advanced microprocessors whereA technique used in advanced microprocessors where the microprocessor begins executing a secondthe microprocessor begins executing a second instruction before the first has been completed.instruction before the first has been completed. - A Pipeline is a series of stages, where some work isA Pipeline is a series of stages, where some work is done at each stage. The work is not finished until it hasdone at each stage. The work is not finished until it has passed through all stages.passed through all stages.  With pipelining, the computer architecture allows theWith pipelining, the computer architecture allows the next instructions to be fetched while the processor isnext instructions to be fetched while the processor is performing arithmetic operations, holding them in aperforming arithmetic operations, holding them in a buffer close to the processor until each instructionbuffer close to the processor until each instruction operation can performed.operation can performed.
  • 5. How Pipelines WorksHow Pipelines Works  The pipeline is divided into segments andThe pipeline is divided into segments and each segment can execute it operationeach segment can execute it operation concurrently with the other segments.concurrently with the other segments. Once a segment completes an operations,Once a segment completes an operations, it passes the result to the next segment init passes the result to the next segment in the pipeline and fetches the nextthe pipeline and fetches the next operations from the preceding segment.operations from the preceding segment.
  • 8. Instructions FetchInstructions Fetch  The instruction Fetch (IF) stage is responsible forThe instruction Fetch (IF) stage is responsible for obtaining the requested instruction from memory. Theobtaining the requested instruction from memory. The instruction and the program counter (which isinstruction and the program counter (which is incremented to the next instruction) are stored in theincremented to the next instruction) are stored in the IF/ID pipeline register as temporary storage so that mayIF/ID pipeline register as temporary storage so that may be used in the next stage at the start of the next clockbe used in the next stage at the start of the next clock cycle.cycle.
  • 9. Instruction DecodeInstruction Decode  The Instruction Decode (ID) stage is responsible forThe Instruction Decode (ID) stage is responsible for decoding the instruction and sending out the variousdecoding the instruction and sending out the various control lines to the other parts of the processor. Thecontrol lines to the other parts of the processor. The instruction is sent to the control unit where it is decodedinstruction is sent to the control unit where it is decoded and the registers are fetched from the register file.and the registers are fetched from the register file.
  • 10. ExecutionExecution  The Execution (EX) stage is where any calculations areThe Execution (EX) stage is where any calculations are performed. The main component in this stage is theperformed. The main component in this stage is the ALU. The ALU is made up of arithmetic, logic andALU. The ALU is made up of arithmetic, logic and capabilities.capabilities.
  • 11. Memory and IOMemory and IO  The Memory and IO (MEM) stage is responsible forThe Memory and IO (MEM) stage is responsible for storing and loading values to and from memory. It alsostoring and loading values to and from memory. It also responsible for input or output from the processor. If theresponsible for input or output from the processor. If the current instruction is not of Memory or IO type than thecurrent instruction is not of Memory or IO type than the result from the ALU is passed through to the write backresult from the ALU is passed through to the write back stage.stage.
  • 12. Write BackWrite Back  The Write Back (WB) stage is responsibleThe Write Back (WB) stage is responsible for writing the result of a calculation,for writing the result of a calculation, memory access or input into the registermemory access or input into the register file.file.
  • 13. Operation TimingsOperation Timings  Estimated timings for each ofEstimated timings for each of the stages:the stages: InstructionInstruction FetchFetch 2ns2ns InstructionInstruction DecodeDecode 1ns1ns ExecutionExecution 2ns2ns MemoryMemory and IOand IO 2ns2ns Write BackWrite Back 1ns1ns
  • 14. Advantages/DisadvantagesAdvantages/Disadvantages Advantages:Advantages:  More efficient use of processorMore efficient use of processor  Quicker time of execution of large number ofQuicker time of execution of large number of instructionsinstructions Disadvantages:Disadvantages:  Pipelining involves adding hardware to the chipPipelining involves adding hardware to the chip  Inability to continuously run the pipelineInability to continuously run the pipeline at full speed because of pipeline hazardsat full speed because of pipeline hazards which disrupt the smooth execution of thewhich disrupt the smooth execution of the pipeline.pipeline.
  • 15. Pipeline HazardsPipeline Hazards  Data Hazards – an instruction uses the result of theData Hazards – an instruction uses the result of the previous instruction. A hazard occurs exactly when anprevious instruction. A hazard occurs exactly when an instruction tries to read a register in its ID stage that aninstruction tries to read a register in its ID stage that an earlier instruction intends to write in its WB stage.earlier instruction intends to write in its WB stage.  Control Hazards – the location of an instruction dependsControl Hazards – the location of an instruction depends on previous instructionon previous instruction  Structural Hazards – two instructions need to access theStructural Hazards – two instructions need to access the same resourcesame resource
  • 17. StallingStalling  Stalling involves halting the flow of instructions until theStalling involves halting the flow of instructions until the required result is ready to be used. However stallingrequired result is ready to be used. However stalling wastes processor time by doing nothing while waitingwastes processor time by doing nothing while waiting for the result.for the result.
  • 19. Type of PipeliningType of Pipelining  Software PipeliningSoftware Pipelining 1) Can Handle Complex Instructions1) Can Handle Complex Instructions 2) Allows programs to be reused2) Allows programs to be reused  Hardware PipeliningHardware Pipelining 1) Help designer manage complexity – a1) Help designer manage complexity – a complex task can be divided into smaller,complex task can be divided into smaller, more manageable pieces.more manageable pieces. 2) Hardware pipelining offers higher2) Hardware pipelining offers higher performanceperformance
  • 20. Type of Hardware PipelinesType of Hardware Pipelines  Instruction Pipeline -Instruction Pipeline - AnAn instruction pipelineinstruction pipeline is veryis very similar to a manufacturing assembly line.similar to a manufacturing assembly line. 1st stage receives some parts, performs its assembly task,1st stage receives some parts, performs its assembly task, and passes the results to the second stage;and passes the results to the second stage; 2nd stage takes the partially assembled product from the2nd stage takes the partially assembled product from the first stage, performs its task, and passes its work to thefirst stage, performs its task, and passes its work to the third stage;third stage; 3rd stage does its work, passing the results to the last3rd stage does its work, passing the results to the last stage, which completes the task and outputs its results.stage, which completes the task and outputs its results.  Data Pipeline – data pipeline is designed to pass dataData Pipeline – data pipeline is designed to pass data from stage to stage.from stage to stage.
  • 21. Instruction Pipelines ConflictInstruction Pipelines Conflict  It divided into two categories.It divided into two categories.  Data ConflictsData Conflicts  Branch ConflictsBranch Conflicts  When the current instruction changes a register that theWhen the current instruction changes a register that the next one needed, data conflicts happens.next one needed, data conflicts happens.  When the current instruction make a jump, branchWhen the current instruction make a jump, branch conflicts happens.conflicts happens.
  • 23.  You can comment or mail for any questionYou can comment or mail for any question at:at:  hafizhamza313@gmail.comhafizhamza313@gmail.com  www.drhamza.webs.comwww.drhamza.webs.com ThanksThanks