2008年8月1日 星期五

Single Cycle,Multi Cycle vs Pipeline



  1. Single cycle:Basicly one instruction one Cycle, and critical path more long.

  2. Multi cycle:one instruction many Cycle, buf critical path shorter then Single cycle.Using FSM to implement one instruction.


    1. Break instruction execution into multiple cycles

    2. One clock cycle for each major task


      1. Instruction Fetch

      2. Instruction Decode and Register Fetch

      3. Execution, memory address computation, or branch computation

      4. Memory access / R-type instruction completion

      5. Memory read completion

    3. Share hardware to simplify datapath。

  3. pipeline:Instruction to go through a several clock. A clock to complete an Instruction, but exception of some special exceptions Instruction.


  • Single Cycle

  • 假設有一台全功能洗衣機,4項功能可以全自動做完
    (1)洗衣服(20分鐘)
    (2)脫水(20分鐘)
    (3)烘乾(30分鐘)
    (4)燙衣服(20分鐘)

    但是在Single Cycle缺點是,每一個功能所花的時間必需一樣,所以需取最大值30分鐘,
    而且這個"洗衣服的工作"必需從頭做到尾才行。
    所以要收衣服,就是一定要30+30+30+30=120分鐘後,去收衣服才行。

  • Multiple Cycle

  • 也是同樣的一台全功能洗衣機,也是一樣4個步驟。
    但它會變成不是全自動的,而是你必需每隔30分鐘去看一次,
    洗衣服的工作是否要進入下一個步驟
    洗衣服->脫水->烘乾->燙衣服
    這樣子的好處是如果有衣服不能烘或不能燙,那就可以跳過該步驟以節省時間。
    但還是一樣有浪費掉的時間,因為每個步驟所花的時間也是必需一樣的。

  • Multiple Cycle with Pipeline

  • 把原本的一台全功能洗衣機,變4台專職的機器
    (1)專門洗衣服的機器
    (2)專門脫水的機器
    (3)專門烘乾的機器
    (4)專門燙衣服的機器
    這樣子一來,當第一批衣服一洗完拿去脫水後,第二批衣服就可以開始洗了,可以加速洗衣服的速度。


    總結一下:
    Single Cycle主要目的是希望所有的指令皆在一個Cycle執行完畢,所以呢,最快的指令必需等待最慢的指令。
    Multi Cycle就是為了解決Single Cycle效率不夠好的情況,讓最快的指令不必去等待最慢的指令。
    Pipeline主要的目的是希望在同一個時間內能執行多道指令,增加效能。

    Enhancing Performance with Pipelining
    Lab2

    底下這個網頁不錯唷,有用Java做成的Single Cycle Datapath及Pipeline Datapath
    Computer Architecture Pipelined CPU Tutorial

    空中英語教室數位頻道

    底下的連結裏,有個"DAILY TV"每日影片,點進去安裝ActiveX後就可以看囉。
    它有提供當天的影片可以觀看,如果要看整個月的就要加入會員囉^^
    空中英語教室數位頻道

    2008年7月24日 星期四

    One CPU and HyperThreading and DuelCore介紹

    [轉貼]One CPU and HyperThreading and DuelCore

    Hyper-Threading 的中文翻譯成『超執行緒』, 同樣簡稱為『H.T.』。
    用比較淺顯的概念來說, Hyper-Threading 就是把1 個實體的CPU『模擬』成2 顆CPU、增加處理器運作效率, 藉以有效地善用資源、減少系統資源的浪費:
    既然Hyper-Threading 是『模擬』2 顆CPU 的效果, 故其效能是無法等同 2 顆真正的CPU, 或1 顆雙核心的CPU;但比起原先單一架構的處理器, 確實可提高不少的執行效率。

    雙核心
    目前CPU 已經發展到了多核心的架構, 而雙核心的CPU 已經逐漸變成主流。雙核心相當於將兩個CPU (核心)包裝在單一個CPU 晶片上。
    不同於剛剛提過的Hyper-Threading 技術, 是將單一核心的CPU 模擬成兩個核心, 而是真正雙實體核心的CPU, 其效能是遠超過使用Hyper-Threading 技術的單核心CPU 。

    以簡單的概念來解釋, 若將CPU 比喻為廚房, 那麼單核心就像只有一位廚師, 一次只能做一道菜, 必須做完一道菜之後才能再做下一道。
    若加上Hyper-Threading 技術, 那麼這個廚師就有能力一次做兩道菜, 只不過這個廚師必須分心輪流做這兩道菜。
    而雙核心就像是兩個廚師, 可以同時專心做兩道菜, 當然速度要比一個廚師快得多了。若是再加上Hyper-Threading 技術, 那麼這兩位廚師就可以同時做四道菜了!

    Intel 的介紹雙核心與Hyper-Threading(圖文語音並茂)

    資料來源:
    第二章 中央處理單元

    2008年7月20日 星期日

    EnhCommentify.vim : comment lines in a program

    在做porting時常有大量註解一段程式的需要,每次用/* */一個一個打或是#if 0 #endif超辛苦。
    如果能在vim裏能自動化這種功能就太棒了。

    結果真的有人寫了這種功能的plugin for vim名字叫EnhancedCommentify^^
    有興趣的人可以去下載來玩看看。

    把EnhancedCommentify.vim copy到/usr/share/vim/vim62/ <==(請依自己的實際路徑修改)
    安裝好之後,隨便開一個.c or .cpp檔案,先進visual mode選取一段文字,然後按下
    "\x" (反斜線+x)
    你就會發現這些文字全部被註解掉了!要恢復的話,同樣地選取起來,再按一下"\x"就可以了。


    官網
    下載網頁

    2008年7月16日 星期三

    大家一起來 網路標會錢滾錢

    看起來似乎不錯^^不過當你得標後,銀行會取得標的總金額1.5~3%@@但感覺上比一般民間的標會有保障的感覺^^

    大家一起來 網路標會錢滾錢

    撰文:楊秀清 <我的錢會滾錢>

    負薪資時代來臨,只有學會更多理財技能,才能為自己「加薪」本文用圖解方式,教你如何上網進行標會理財,炎炎夏日,節流之餘,一起來學開源術吧!
    美莉畢業不到3年,由於不懂理財,也懶得理財,每個月乖乖把薪水三分之一放定存,原本以為自己是個小富婆的她,今年看到新聞一直報導負利率、薪資負成長的消息,周遭生活物資漲不斷,她這才驚覺再不理財,恐怕成不了「富女」,反而會成為財產縮水的「負女」。
    近期她看媒體報導,有銀行推出保證履約的網路標會平台,腦中閃過童年時父母標會存錢賺利息的畫面,她想,既然銀行保證不會被倒會,不如用網路標會作為她理財的第一步,上網賺利息錢,再拿標會賺到的錢去投資理財,問題是怎樣才能參加網路標會?以及如何在網路標會平台上操作?
    目前國內只有永豐銀行推出MMA標會理財網,因此本文以該銀行網路標會平台為例,用Step by Step方式一次告訴你。

  • 步驟1 確認是否符合申請網路標會資格

  • 首先,美莉須先看看她符不符合申請成為MMA標會理財網正式會員的資格,條件如下:
     擁有中華民國身分證。
     必須在中華民國境內申請。
     年滿20歲以上。
     現職滿半年。
     有固定月收入。
     年所得40萬以上。
     每月收支結餘後,尚有能力進行儲蓄或投資者。
     信用狀況良好,無不良紀錄者。
     目前無使用現金卡者。

  • 步驟2 線上申請成為正式會員

  • 接著,美莉才能在MMA標會理財網線上申請成為正式會員,只有成為正式會員,才可以參與MMA標會理財網的標會組合、討論區和部落格互動,以及享有所有會員權利。
    不管是否曾與永豐銀行往來,只要上網申請並填寫資料,就會有專人協助你完成後續的相關程序,不過,該網站將保留最終核准與否的權利。線上申請成為該網站正式會員的操作步驟如下:
    首先,請上MMA標會理財網首頁(www.bidmoney.com.tw)→會員專區→加入會員→正式會員申請。
    Step 1:設定你的暱稱和密碼
    Step 2:填寫你的個人資料
    Step 3:填寫進階資料
    Step 4:填寫你的約定開戶資料
    Step 5:核准成功,收到啟用e-mail
    Step 6:登入網站、設定標會密碼
    Step 7:申請完成!可以參與標會囉!
    ◎美莉也可以先申請一般會員
    除了正式會員之外,如果美莉還不確認自己是否真的要參加網路標會,也可以先參加一般會員,先行體驗及暖身一下,待進一步了解網路標會的運作及功能之後,再申請升級為正式會員。
    申請一般會員無條件限制,可享有在討論區及部落格的互動權利,以及「追蹤」標會組合的權利,只要在線上註冊即完成。申請一般會員路徑:進入MMA標會理財網首頁(www.bidmoney.com.tw)→會員專區→加入會員→一般會員申請。

  • 步驟3 加入新的標會

  • →首頁→標會大街→加入標會組合→試算→試算結果→加入標會→首期競標出價選標金→確認加入
    Step 1:在MMA標會理財網首頁(www.bidmoney.com.tw)首頁登入會員後進入「標會大街」,你會看到系統預設出現的畫面就是目前「幕集中標會」,如果需要觀摩一下其他人已完成募集的標會,則可以選擇「完成募集標會」。在左側並提供「查詢標會」功能選項,你可以依據查詢種類、公佈日、會期、會錢等項目查詢,找到更適合自己的標會,也可以直接用標會編號來查詢。
    Step 2:選擇其中一組標會組合,並在「我要加入」之下點選「○ˇ 」。
    Step 3:接著畫面會自動跳出標會試算功能,為了方便跟大家分享彼此的理財目的,需要填寫你加入該標會組合的目的,並以此目的名稱作為你在該標會組合中的名稱,方便你進行理財目標管理,再選擇希望得標的意願強度,填寫標金出價多少,即可試算你的得標總標金。
    Step 4:參考試算結果,並加入標會
    Step 5:選擇本期是否參與競標,如不參加,則在「選擇競標金額」中選「本期不競標」,如要參與競標,則在「選擇競標金額」中選出你想設定的標金金額,再按「確認競標」即可。
    Step 6:即使你在Step 5選定競標出價金額,並確認競標,在此,你還可以修改競標金額,最後在確認競標金額無誤之後,點選「確認加入」即完成加入該標會組合的作業。另,只要在競標期間截止之前,已經競標出價的會員仍可以進行競標金額修改。

    ◎如何選擇速配的標會組合
    美莉看到的標會組合很多,不知如何選擇,她可依據以下的步驟,找出適合自己的標會組合。
    Step 1:登入正式會員後→標會大街→查詢,透過查詢功能尋找適合的標會
    Step 2:選擇其中一組標會組合,並按「標會編號」進入該標會。
    Step 3:輸入試算所需資料,並詳閱電子會單中標會組合的內容,也可以參考目前已加入會員的募集狀況:年齡、性別、投資目的、競標強度、是否已競標等,來判斷該標會組合的得標金水準,如果是想得標的人,應加入得標金可能會較低的標會組合,以降資金成本;如果是不想得標的人,應加入得標金可能會較高的標會組合,以賺多一點利息收入,這一點跟傳統標會是很類似的,都是你可以事前研判加入哪一標會對妳最有利的重要工具。
    Step 4:依募集狀況產生的試算結果,估算可運用的總標金,再根據試算結果決定是否加入標會、加入追蹤或是重新試算。

    2008年6月27日 星期五

    Linux-Tiny

    http://www.selenic.com/linux-tiny/

    About Linux-Tiny
    The -tiny tree is a series of patches against the 2.6 mainline Linux kernel to reduce its memory and disk footprint, as well as to add features to aid working on small systems. Target users are developers of embedded system and users of small or legacy machines such as 386s and handhelds.

    Just about all features are option via the kernel configuration system and are available as separate patches. Linux-tiny by default will build a kernel practically identical to mainline, but custom configurations with full console, disk, and network support can be booted on standard hardware with as little as 2MB of RAM.

    不知道情況是如何,改天要來試一下看看

    2008年6月8日 星期日

    Save Me From Myself

    Save Me From Myself歌詞-Christina Aguilera(克里斯汀娜.阿吉莱拉)
    http://www.youtube.com/watch?v=HYxmS4UNrWY

    It's not so easy loving me
    愛上我不是件容易事
    It gets so complicated
    這變得如此複雜
    All the things you've gotta be
    你面對的一切
    Everything's changin
    事事都在變
    But you're the truth
    就你不變
    I'm amazed by all your patience
    我好驚訝你竟都能耐心等候
    Everything I put you through
    那些我讓你經歷的一切


    And when I'm about to fall
    當我快跌倒時
    Somehow you're always waitin with
    你總能在那等著抓牢我
    Your open arms to catch me
    用你打開的雙臂
    You're gonna save me from myself
    你將拯救我
    from myself, yes
    You're gonna save me from myself
    你將拯救最深處的我


    My love is tainted by your touch
    你的輕觸感染了我愛戀的氛圍
    Well some guys have shown me aces
    是有些不錯的人
    But you've got that royal flush
    但你就是我的首選
    I know it's crazy everyday
    我知道每天都這麼瘋狂不定
    Well tomorrow maybe shaky
    也許明日搖搖欲墜
    But you never turn away
    但你從不轉身離去


    Don't ask me why I'm cryin
    別問我為什麼哭
    'Cause when I start to crumble
    因為每當我快崩潰時
    You know how to keep me smilin
    你總是讓我破涕為笑
    You always save me from myself
    你將拯救我
    from myself, myself
    You're gonna save me from myself
    你將拯救最深處的我


    I know it's hard, it's hard
    我知道真的很難 很難
    But you've broken all my walls
    但你已攻進我的心牆
    You've been my strength, so strong
    你是我的力量


    And don't ask me why I love you
    也別問我為什麼那麼愛你
    It's obvious your tenderness
    顯然你的溫柔體貼
    Is what I need to make me a better woman to myself
    是使我成為一個更棒的女人
    to myself, myself
    讓我自己
    You're gonna save me from myself
    你將拯救最深處的我

    一個小故事讓我們明白資金流通的意義

    “又是炎熱小鎮慵懶的一天。太陽高掛,街道無人,每個人都債台高築,靠信用度日。這時,從外地來了一位有錢的旅客,他進了一家旅館,拿出一張1000 元鈔票放在櫃檯,說想先看看房間,挑一間合適的過夜,就在此人上樓的時候---- 店主抓了這張1000 元鈔,跑到隔壁屠戶那裡支付了他欠的肉錢...