2008年8月5日 星期二

ARM的CPU比較表

Processor Family

#of pipeline stages

Memory Organization

Clock Rate

MIPS/MHz

ARM6

3

Von Neumann

25MHz


ARM7

3

Von Neumann

66MHz

0.9

ARM8

5

Von Neumann

72MHz

1.2

ARM9

5

Harvard

200MHz

1.1

ARM10

6

Harvard

400MHz

1.25

StrongARM

5

Harvard

233MHz

1.15

ARM11

8

Von Neumann/Harvard

550MHz

1.2


所謂的 Von Neumann 架構與 Harvard 架構。兩者的不同點在於:傳統的 Von Neuman 架構(由 Von Neuman 於 1940 年代提出),程式與資料共用相同的匯流排(bus),而 Harvard 架構的程式與資料走的是不同的匯流排(也可能有不只一條的資料匯流排)。Harvard 架構明顯的好處就是在於讀取程式碼的同時也可以進行資料的存取。8051 是典型的 Von Neuman 架構,ALE(Address Latch Enable)控制信號就是特徵之一。現代的 DSP 則多是採用 Harvard 架構以加速其在算數運算上的能力。(文字說明來源:http://www.ialbert.net/index.php?load=read&id=34)

ARM中斷流程

程式的執行過程中,CPU經常會收到硬體中斷的訊號,告知硬體有些事情需要去處理,比如:OS的System Clock...等等。而ARM的外部硬體中斷訊號由IRQ及FIQ兩支訊號腳來控制,當IRQ(Interrupt Request)或FIQ(Fast Interrupt Request),當IRQ或FIQ被觸發時,則ARM CPU將會強制的進入IRQ或FIQ模式,在ARM裏IRQ有r13/r14/spsr是banked register,FIQ則有r8/r9/r10/r11/r12/r13/r14/spsr,所以沒有banked register的部份,程式就必需自行處理保存資料,所以FIQ可提供比IRQ還要好的效能。

先看一下中斷向量表IVT:interrupt vector table
在x86的IVT範圍是:0x00000000~0x000003FF
而ARM的IVT則是0x00000000~0x0000001F
0x00000000 硬體重置SVC 10011
0x00000004 未定義指令Undefined Mode 11011
0x00000008 軟體中斷指令(SWI) SVC 10011
0x0000000C 預先擷取中止Abort Mode 10111
0x00000010 資料中止Abort Mode 10111
0x00000014 保留reserved 11011
0x00000018 IRQ IRQ Mode 10010
0x0000001C FIQ FIQ Mode 10001
0x0000001F 保留reserved

說明如下:
  1. 重置向量 (Reset Interrupt Vector) :重置向量是處理器開電後執行的第一道指令的位址,這條指令將使處理器跳躍到初始化程式碼處。

  2. 未定義指令向量(Undefined Interrupt Vector):未定義指令向量是在處理器不能對第一道指令解碼時使用。通常當我們在開發新的DSP指令時,可以使用這個部份來進行模擬測試

  3. 軟體中斷向量(Software Interrupt Vector:Trap):軟體中斷向量是執行 SWI 指令時被呼叫的。 SWI 指令經常用於呼叫一個作業系統常式的機制(System Call)。

  4. 預先存取中止向量(Prefetch Abort Interrupt Vector):發生在試圖從一個未獲得正確存取許可權的位址去存取時,而實際上中止發生在解碼階段。

  5. 資料中止向量(Data Abort Interrupt Vector):和預先存取中止向量類似,發生在一道指令試圖存取未獲得正確存取許可權的資料記憶體時。

  6. 中斷請求向量(Interrupt Request Vector):用於外部硬體中斷處理器的正常執行流,只有當 CPSR 中的 IRQ 位元未被遮罩時才發生。

  7. 快速中斷請求向量(Fast Interrupt RequestVector):和中斷請求向量累類似,是為了要求更快速的中斷反應時間,有當 CPSR 中的 FIQ 位元未被遮罩時才發生。

微處理器進入中斷時(硬體本身的中斷處理動作):
(1)自動將原程式中下一個準備要執行的指令位址儲存至R14(Link Register)
(2)將CPSR複製到適當的SPSR
(3)依中斷的要求設定CPSR mode bits
(4)強迫PC擷取相對應的中斷向量指令。

微處理器從中斷返回時(硬體本身的中斷處理動作):
(1)將Link Register減去相對應之偏移值後寫入PC
(2)將SPSR值搬回CPSR
(3)如果在中斷進入點設定了interrupt disable flags,此時還原。

當系統重置有效後會使微處理器執行(硬體本身的中斷處理動作):
(1)將目前之PC及CPSR覆蓋R14_svc及SPSR_svc
(2)CPSR[4:0]=0b10011(進入supervisor模式)、CPSR[5]=0(在ARM模式下執行)、CPSR[6]=1(disable FIQ)、CPSR[7]=1(disable IRQ)
(3)強迫PC擷取位址0x0之中斷向量指令
(4)回到ARM模式下繼續執行。

所以通常在0x0~0x1F我們會放如下的程式碼:
b HandlerReset
b HandlerUndef
b HandlerSWI
b HandlerPabort
b HandlerDabort
b .;保留沒有使用
b HandlerIRQ
b HandlerFIQ

當相對應的中斷發生時,CPU切換模式,然後fetch IVT裏面的程式,然後跳到你自己定義的位址去執行你要處理的事情。到目前為止處理的步驟我們通常稱之為一級中斷向量表,但一個中斷向量表應該都不夠用,因為像IRQ,通常硬體不可能只會有一個,所以還會有一個中斷控制器(interrupt controller)去管更多的硬體,而這麼多的硬體中斷則由二級中斷向量表去處理,也就是進入HandlerIRQ後,要再去判斷現在是什麼硬體發出中斷的,再跳去該硬體的中斷服務常式去處理。

我們拿個u-boot loader來當範例看一下IRQ的部份
底下是IVT定義,_start當然是0x0開始囉!
_start: b reset
ldr pc,=HandleUndef
ldr pc,=HandleSWI
ldr pc,=HandlePabort
ldr pc,=HandleDabort
b .
ldr pc,=HandleIRQ;你要自己定義HandleIRQ的實際位置在那裏
ldr pc,=HandleFIQ

real_vectors的位置也是自己定義,但要跟上面的HandleXXXX對映起來
real_vectors:
ldr pc,=reset
ldr pc,=undefined_instruction
ldr pc,=software_interrupt
ldr pc,=prefetch_abort
ldr pc,=data_abort
ldr pc,=not_used
ldr pc,=irq
ldr pc,=fiq

這裏的IRQ處理取得IRQ的堆疊指標,備份暫存器,執行真正的IRQ ISR,恢復暫存器值
irq:
get_irq_stack
irq_save_user_regs
bl do_irq
irq_restore_user_regs

底下的部份就是上面irq裏使用的程式碼
.macro irq_save_user_regs
sub sp, sp, #S_FRAME_SIZE
stmia sp, {r0 - r12} @ Calling r0-r12
add r8, sp, #S_PC
stmdb r8, {sp, lr}^ @ Calling SP, LR
str lr, [r8, #0] @ Save calling PC
mrs r6, spsr
str r6, [r8, #4] @ Save CPSR
str r0, [r8, #8] @ Save OLD_R0
mov r0, sp
.endm

.macro irq_restore_user_regs
ldmia sp, {r0 - lr}^ @ Calling r0 - lr
mov r0, r0
ldr lr, [sp, #S_PC] @ Get PC
add sp, sp, #S_FRAME_SIZE
subs pc, lr, #4 @ return & move spsr_svc into cpsr
.endm

.macro get_irq_stack @ setup IRQ stack
ldr sp, =STACK_BOTTOM @IRQ_STACK_START
/*ldr sp, =IRQ_STACK_START @IRQ_STACK_START*/
.endm
上圖是一張我蠻喜歡的圖,呈現了ARM裏面各中斷與各模式的關係圖上面這張則是介紹當IRQ引發後(1)先跳到0x18的位址(2)由0x18再轉跳到ISR去。

Studio ClassRoom - swim/swam/swum

  1. swum(swim過去分詞)/swam(swim過去式)
    He swam the 200-meter in record time.
    有個比較誇張的講法,如果說某個人swam before he could walk在學會走路前就會游泳,那就表示他生來就很會游泳,就是游泳高手的意思。

  2. to sink or swim
    滅頂或游泳/不想下沉就游泳吧!指的是,你處在兩種情況,一個是成功另一個是失敗,所以是生是死全由自己決定,成敗全靠自己,不假他人。
    I am here alone to sink or swim by myself.
    我獨自在這,成敗全靠自己了。(來自Fun單字例句)


  3. in record time空前的,創紀錄的
    The project was completed in record time.
    工程在從未有過的短時間內完成了。
    The ship sailed across the Pacific in record time.
    那艘船航行橫跨太平洋的時間創下了紀錄。

    ESL Flash Quiz - Swim Verbs


    stellar 主要的;顯著的
    Ron gave a stellar performance in the community play.

    make a splash
    splash是指潑以及濺出來的水花,所以make a splash就是指引起轟動。
    Claire hopes to make a splash in the music world with her latest CD.
    George Clooney made a splash in the TV series "ER."
    喬治克隆尼在急診室的春天這部電視影集中一炮而紅。
    Her first album made quite a splash.She even got nominated for a Grammy.
    它的第一張專輯造成極大的轟動,甚至被提名葛萊梅獎。

    in one's blood
    blood在這裏是指血統或家室門第,所以in one's blood指某種天賦是家傳的。
    Teaching is definitely in Katie's blood, with her father,mother and two sisters all in the teaching profession.
    Many of this family are actors or actresses. Acting is in their blood.
    那個有許多家人是演員或女演員,演戲是他們家傳的天賦。
    Both of illian's parents are musicians, so it obviously in her blood.
    Illian的父母都是音樂家,所以她的音樂才華很明顯的是家傳的。

    fantasize
    指幻想或夢想,fantaize的名詞是fantasy
    At age seven, John began to fantasize about playing professional basketball.
    His dream came true when he turned 21.
    He fantasized about winning the lottery.
    他以前幻想自己贏到樂透。
    Tina fantasizes about being a super model.
    Tina幻想自己是超級名模。
    She retreated to a world of fantasy.
    她退縮到她幻想的世界之中。

2008年8月4日 星期一

Studio ClassRoom - claim

  1. claim 聲稱,聲明
    一個claim往往是沒有被證實的。
    Four of the five claim of this product have been proven faulty.
    這個產品的五個項目中有四個被發現是不實的。
    I have never claimed to be an expert in this field.
    我從來沒有聲稱是這方面的專家。
    He claimed that he was right.
    他聲稱他是正確的。
    He claims that it is so.
    他主張是如此的。

  2. lay claim to
    claim也可以是一個法律上的用語,就是所有權,或是要公開所有權就是用lay claim to
    He set up a claim to the throne. 他自稱王位是屬於他的。
    Five Asian countries lay claim to the islands.
    五個亞洲國家聲稱這些島嶼是自己的領土。
    If the land really belongs to you, why don't you lay claim to it?
    如果這塊土地真正屬於你的,為什麼你不據理力爭呢?
    He has a claim to the property of his deceased uncle.
    他有權繼承他叔父的遺產。
    They have no claim on us.
    他們沒有向我們要求的權利。

  3. claim to fame 使他成名的某一件事;主要成就
    但是一般人大概都很少有機會能夠出名,所以一般人就會用一個小的事件當做自己的claim to fame
    比如說你在某一家餐廳坐在某個名人的隔壁桌那就有可能是你的claim to fame。

    Natural beauty is its claim to fame.
    自然美景是它飽享盛名的原因。

  • creep 躡手躡足地走;緩慢地行進
    During rush hour,cars creep along this highway.
    We crept out of the room, so we wouldn't wake up the baby.
    我們躡手躡腳的走出房間,免得把寶寶吵醒。
    The sales of this product has crept up in the last few month.
    這項產品的銷售量在過去幾個月當中已經逐漸的成長。

  • protection
    This hat will give your face protection from the sun.

  • shade 陰暗處,遮陰處
    Let's have our picnic in the shade.
    It's too hot to sit in the sun.
    The teacher told the kids to stay in the shade to avoid dehydration.
    老師告訴小朋友們要留在陰暗處避免脫水。
    The trees in the part offer wonderful shade for people passing by.
    這些公園裏的樹替過路的人提供了很棒的遮陰處。
    She read by the water under the shade of a beach umbrella.
    他在海灘傘的遮陰下閱讀

  • abosrt 吸收;抽象事物
    Ken used a towel to absorb the water he spilled on the table.
    The medicine will be absorbed in a few minutes.
    這個藥物在幾分鐘內就可以被吸收了。
    These walls absorb heat during the day, and release it during the night.
    這些牆壁白天吸收熱氣,晚上就釋放出來。
    There's too much new information for me to absorb in such a short time.
    這麼短的時間要吸收這麼多的資訊。

  • UV [ultraviolet]
    ultraviolet rays 紫外線
    an ultraviolet lamp 紫外線燈

2008年8月3日 星期日

霹靂神州II蒼玄泣 29無情的劍,30多情的人

  1. 精采武學:
    柳生劍影:萬神訣
    劍閣宮主曌雲裳:傲凌雙峰寒勝雪
    劍閣二宮主樓無痕:一夜春風凌波影‧劍挽梅花不許謝
    西門寒照:銀河落九天
    天來眼:陰流沙
    蒼:伏天王.降天一‧天海白虹現蒼音
    閻魔旱魃:凶燕迴翼
    魚紋老鋏:江山一痕
    任劍誰:鑄鐵手


  2. 法術陣法:
    紅樓劍閣:飛天四仙陣


  3. 武器:
    曌雲裳配劍:鳳帝
    月華之鄉鎮寶之劍:月華之劍(能吸收真氣,能找尋其真氣主人下落,因當初殘留蒼的氣息,介此引赭杉軍入局)
    紅樓劍閣鎮閣神劍:歲月輪
    追命雙彎


  4. 藥草醫術:
    萬蠱換血術:血藥
    引靈之法
    聚靈法
    枯血症:削肉,造肉(神蠶),生血(藥丹),化靈,引氣(聚氣,生靈)


  5. 物品:
    無極寒冰(不二做請任劍誰將其鑄成一把劍,醫治夜愁雨用)
    玉匣枕(屍體不會腐敗,維持死者現狀,風肆險窺視此物品,後來才發現原來明聖天書藏在裏面)
    神農村:禁書祕典


  6. 異獸:
    食元魔


  7. 文學詩句:
    柳生劍影:劍勢未盡而自盡,劍意欲張而自馳,不讓劍盡得其意。
    西門寒照:莫笑老翁猶氣岸,君看‧幾人白髮上華顏顛,戲前臺前追兩謝;馳射‧風情猶拍古人肩!
    黑羽恨長風出場詩:山關留痕忘歳月,獨少一劍恨天涯。
    百里黃泉思念雪柔之旁白:花月不知心內事,憶人盡在不言中。
    泰逢虧百里黃泉所吟:有美人兮,見之不忘,一日不見兮,思之如狂。
    蒼:倚箏天波觀浩渺,蒼音抓濤洗星辰,白虹貫日掃魔蕩,明月當空照古今。


字詞解譯:
頡頏(ㄒㄧㄝˊ ㄏㄤˊ)之意原為抗衡,即是完全平等的對抗之意。
---------------------------------------------------------------------------
萬血邪籙,開啟神州之柱,識界玄貘,變化天地之序
紅樓劍閣,論定劍鋒之最,棄天魔帝,造就毀滅之端

霹靂神州II蒼玄泣 31浴血奮戰32無悔之劍

  1. 精采武學:

  2. 不二做:風龍捲、人劍合一‐旋風流、猛電雷疾斬
    北窗伏龍白忘機:一指清風
    魚紋老鋏:秋水橫波、魚龍百變
    天來眼:鬼哭狼嚎
    拜江山:封傾山河
    任劍誰:切齒怒目橫向天
    孟白雲:白雲蔽日、白雲飛虹
    斷風塵:一仞千山
    天草二十六:逆草迴影
    天草、伊達:雙劍連擊、天下無敵

  3. 法術陣法:

  4. 紅樓劍陣:劍起-流雲劍陣
    紅樓劍陣:劍轉-飄花劍陣
    紅樓劍陣:霜花練帶陣

  5. 武器:

  6. 冰劍[無極寒冰煉製]

  7. 藥草:

  8. 血凝花

  9. 物品:

  10. 金牌:石濃萬兩金

  11. 文學詩句:

  12. 北窗伏龍白忘機:飄紅英兮紛紛,步芳草兮銷魂。[破飄花劍陣所吟之詩]
    任劍誰出場詩:一生一敗一聲癡,封劍石中再不問,百年難磨今朝恨,再將虎魄換劍魂。
    魚紋老鋏出場詩:天無日,光霞萬里,唯吾劍明,地無陵,曠野萬里,秋水掃平。
    道隱鳳凰鳴入塵詩:煙迷千疊峰,簫開一色空,當風疑仙客,虛無縹緲中。
    道隱鳳凰鳴出場詩:身懷一襟朗月,劍藏七尺乾坤,慣看滿城煙雨,回首不入烽雲。

    ---------------------------------------------------------------------------
    萬血邪籙,開啟神州之柱,識界玄貘,變化天地之序
    紅樓劍閣,論定劍鋒之最,棄天魔帝,造就毀滅之端

Studio ClassRoom - Ketchup & kick off & top something off

  1. ketchup
    有些美國人決不會將番茄醬加在熱狗上,因為他們覺得番茄醬味道太重,不適合跟熱狗待在一起。所以他們大部份在熱狗上加芥茉,酸黃瓜,洋蔥,起士,墨西哥辣豆。

    frank,frankfurter,wieners
    熱狗除了叫hotdog之外,也可以叫frank,frank是frankfurter的簡稱,這是因為熱狗的起源地就在德國的Frankfurt(法蘭克福)
    熱狗也叫做wiener,這個典故是維也納以豬肉與牛肉混合的熱狗聞名的。

  2. kick off - 指開始某個活動
    A large opening ceremony kicks off the Olympics. The game kicked off several minutes ago. 比賽幾分鐘之前開始了。
    kick off with something - 以某件事作為開始 The art festival kicked off with a Shakespearean play. 這個藝術節以莎翁的劇為開始。 Let's kick off our meeting with our monthly sales report. 我們用本月的業務報告來開始我們的會議。

  3. top something off - 以某件事作為最圓滿的結束
    Let's have some dessert to top this meal off. We topped our filed trip off with a visit to the icecream store. 我們到冰淇淋店為我們的戶外教學畫上最美麗的句點。 They topped the evening off with a jet-boat ride. 他們搭汽船一遊為這個夜晚畫上最美麗的句點。

-------------------------------------------------------------------------------------
ketchup字源
在英語中番茄醬叫做 ketchup,這個詞過去不是指番茄醬,而是指特別的調味汁或者魚汁。關於這個詞的來源有多種理論。一種理論是它來自馬來語;另一種理論是它來自於粵語,這種理論認為馬來語中的詞也來自粵語。關於來自粵語中的哪個詞現在還有爭議,一種說法是來自「茄汁」,另一種說法是來自「鮭汁」。
此詞至日語後,音譯作「ケチャップ」(kechappu)。後又因日本統治臺灣,臺灣話亦直接承接此字至今。

蕃茄醬Ketchup與「茄汁」有關聯!

說法有二:

一、和中國清朝早期移民美國的華人有關

早期移民美國的華人多為中國南部閩粵一帶的居民,到了美國生活為美國建設鐵路多有貢獻,其中從事廚役、洗衣者居多。當中國移民中大量使用便宜又美味的蕃茄所熬煮的茄汁運用在魚、肉類的料理。老美覺得好吃又不知道那紅汁液是什麼,所以好奇的尋問中國人,中國移民不大會說英文,又不知道要怎麼告訴美國人,只好用自己的語言說是「茄汁」(ketsiap),再演變成英語 ketchup。

二、和馬來文化有關

馬來文化中有許多利用茄汁所烹煮出來酸酸甜甜醬料,運用在魚料理上。在英國殖民時代,英國人對馬來的南洋料理有所認識,故將馬來文 kechap的發音轉化為英語的ketchup。

然而又因馬來的吃食文化,深受中國東南一帶料理的影響,其源自於中國明朝「三寶太監」鄭和下西洋。當時遺留下來定居馬來的閩粵華人,其吃食文化和當地吃食文化結合而演生今日的馬有吃食文化。所以馬來文kechap和閩粵「茄汁」發音近似。但是此說法比較難以考據其正確性,原因是現今馬來文化是多民族融合的結果,無法確切考證馬來的kechap是否和閩粵「茄汁」發音有確切的相關性。

資料來源
http://zh.wikipedia.org/w/index.php?title=%E7%95%AA%E8%8C%84%E9%86%AC&variant=zh-tw
http://hk.myblog.yahoo.com/iam-boboma/article?mid=374

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

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