- Single cycle:Basicly one instruction one Cycle, and critical path more long.
- Multi cycle:one instruction many Cycle, buf critical path shorter then Single cycle.Using FSM to implement one instruction.
- Break instruction execution into multiple cycles
- One clock cycle for each major task
- Instruction Fetch
- Instruction Decode and Register Fetch
- Execution, memory address computation, or branch computation
- Memory access / R-type instruction completion
- Memory read completion
- Share hardware to simplify datapath。
- pipeline:Instruction to go through a several clock. A clock to complete an Instruction, but exception of some special exceptions Instruction.
假設有一台全功能洗衣機,4項功能可以全自動做完
(1)洗衣服(20分鐘)
(2)脫水(20分鐘)
(3)烘乾(30分鐘)
(4)燙衣服(20分鐘)
但是在Single Cycle缺點是,每一個功能所花的時間必需一樣,所以需取最大值30分鐘,
而且這個"洗衣服的工作"必需從頭做到尾才行。
所以要收衣服,就是一定要30+30+30+30=120分鐘後,去收衣服才行。
也是同樣的一台全功能洗衣機,也是一樣4個步驟。
但它會變成不是全自動的,而是你必需每隔30分鐘去看一次,
洗衣服的工作是否要進入下一個步驟
洗衣服->脫水->烘乾->燙衣服
這樣子的好處是如果有衣服不能烘或不能燙,那就可以跳過該步驟以節省時間。
但還是一樣有浪費掉的時間,因為每個步驟所花的時間也是必需一樣的。
把原本的一台全功能洗衣機,變4台專職的機器
(1)專門洗衣服的機器
(2)專門脫水的機器
(3)專門烘乾的機器
(4)專門燙衣服的機器
這樣子一來,當第一批衣服一洗完拿去脫水後,第二批衣服就可以開始洗了,可以加速洗衣服的速度。
總結一下:
Single Cycle主要目的是希望所有的指令皆在一個Cycle執行完畢,所以呢,最快的指令必需等待最慢的指令。
Multi Cycle就是為了解決Single Cycle效率不夠好的情況,讓最快的指令不必去等待最慢的指令。
Pipeline主要的目的是希望在同一個時間內能執行多道指令,增加效能。
Enhancing Performance with Pipelining
Lab2
Computer Architecture Pipelined CPU Tutorial
3 則留言:
文章寫得不錯 淺顯易懂 可惜網址已經找不到了
欵!對耶..不見了@@只好刪掉好了^^
寫的很清楚!
感謝您~
張貼留言