pbtl problem-based teaching and learning

49
PBTL PBTL Problem-Based Problem-Based Teaching Teaching and and Learning Learning 蕭 蕭 蕭 蕭 蕭 蕭 蕭蕭蕭蕭蕭蕭 蕭蕭蕭 蕭蕭蕭蕭蕭蕭 蕭蕭蕭

Upload: judah-mclaughlin

Post on 30-Dec-2015

30 views

Category:

Documents


0 download

DESCRIPTION

PBTL Problem-Based Teaching and Learning. 蕭 天 泉 南台科技大學 資工系. 對象 : 初學者. 希望達成的目標 :. 1. 培養解題分析能力. 2. 訓練從 CCS 之 help 檔自尋答案. 加法運算. 蕭 天 泉 南台科技大學 資工系. [ 一 ] : 問題敘述. 兩數相加 : 寫 c54x 程式執行下列加法運算 1. z = c1 + c2; c1, c2 為整數常數 2. z = x + c2; c2 為整數常數 , x 為 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: PBTL Problem-Based Teaching and Learning

PBTLPBTLProblem-BasedProblem-Based TeachingTeaching andand LearningLearning

蕭 天 泉蕭 天 泉南台科技大學 資工系南台科技大學 資工系

Page 2: PBTL Problem-Based Teaching and Learning

對象 對象 : : 初學者初學者

希望達成的目標 希望達成的目標 ::

1. 1. 培養解題分析能力培養解題分析能力

2. 2. 訓練從 訓練從 CCS CCS 之 之 help help 檔自尋答案檔自尋答案

Page 3: PBTL Problem-Based Teaching and Learning

加法運算加法運算

蕭 天 泉蕭 天 泉南台科技大學 資工系南台科技大學 資工系

Page 4: PBTL Problem-Based Teaching and Learning

[[ 一一 ] :] : 問題敘述問題敘述 兩數相加兩數相加 : : 寫 寫 c54x c54x 程式執行下列加法運算程式執行下列加法運算

1. z = c1 + c21. z = c1 + c2 ; c1, c2 ; c1, c2 為整數常數為整數常數

2. z = x + c22. z = x + c2 ; c2 ; c2 為整數常數為整數常數 , x, x 為為 dma (data memory address) dma (data memory address) 資料資料

3. z = x + y3. z = x + y ; x, y ; x, y 為 為 dma dma 資料資料

Page 5: PBTL Problem-Based Teaching and Learning

[[ 二二 ] :] : 學習目標學習目標

1. ADD1. ADD commandcommand

2. Immediate addressing2. Immediate addressing

3. Absolute addressing3. Absolute addressing

4. Direct addressing4. Direct addressing

Page 6: PBTL Problem-Based Teaching and Learning

[[ 三三 ] : ] : 解題分析解題分析

1. 1. 上述題目所需之指令為加法運算上述題目所需之指令為加法運算 , (, ( 指令為 指令為 ADD) ADD) 及儲存及儲存

2. 2. 查查 CCSCCS 中之 中之 Arithmetic Instructions Arithmetic Instructions 及及 Load/Store InstructionsLoad/Store Instructions

3. ADD3. ADD 指令共有十種格式指令共有十種格式 , , 依上述資料型態選依上述資料型態選 用適當格式用適當格式

Page 7: PBTL Problem-Based Teaching and Learning

ADD ADD 指令指令1: ADD Smem, src1: ADD Smem, src2: ADD Smem, TS, src2: ADD Smem, TS, src3: ADD Smem, 16, src [,dst]3: ADD Smem, 16, src [,dst]4. ADD Smem, [SHIFT,] src [,dst]4. ADD Smem, [SHIFT,] src [,dst]5: ADD Xmem, SHIFT1, src5: ADD Xmem, SHIFT1, src6: ADD Xmem, Ymem, dst6: ADD Xmem, Ymem, dst7: ADD #lk, [SHIFT1,] src [,dst7: ADD #lk, [SHIFT1,] src [,dst8: ADD #lk, 16, src [,dst]8: ADD #lk, 16, src [,dst]9: ADD src [, SHIFT] [,dst]9: ADD src [, SHIFT] [,dst]10: ADD src, ASM [,dst]10: ADD src, ASM [,dst]

Page 8: PBTL Problem-Based Teaching and Learning

**************************** z = c1 + c2 z = c1 + c2

****************************

* Immediate & Absolute addressing* Immediate & Absolute addressing

(2) LD #c1, A(2) LD #c1, A

(1) ADD #c2, A(1) ADD #c2, A ; A = (A) ; A = (A) + (#c2)+ (#c2)

(3) STL A, *(z)(3) STL A, *(z) ;store (AL) into;store (AL) into ;location z;location z

Page 9: PBTL Problem-Based Teaching and Learning

************************** z = x + c2 z = x + c2

**************************

* Immediate, direct, absolute addressing* Immediate, direct, absolute addressing

(3) LD #c2,A ; A = #c2(3) LD #c2,A ; A = #c2

(2) LD #x, DP(2) LD #x, DP

(1) ADD @x, A(1) ADD @x, A ; A = A + (x) ; A = A + (x)

(4) STL(4) STL A, *(z) A, *(z)

Page 10: PBTL Problem-Based Teaching and Learning

******************************** z = x + y z = x + y

********************************

(4) LD #y, DP(4) LD #y, DP

(3) LD @y, A ;A = (y)(3) LD @y, A ;A = (y)

(2) LD #x, DP(2) LD #x, DP

(1) ADD @x, A ;A = (A) (1) ADD @x, A ;A = (A) + (x)+ (x)

(5) STL A, *(z)(5) STL A, *(z)

Page 11: PBTL Problem-Based Teaching and Learning

加法運算加法運算The EndThe End

Page 12: PBTL Problem-Based Teaching and Learning

乘法運算乘法運算

蕭 天 泉蕭 天 泉南台科技大學 資工系南台科技大學 資工系

Page 13: PBTL Problem-Based Teaching and Learning

[[ 一一 ] :] : 問題敘述問題敘述 兩數相乘兩數相乘 : : 寫 寫 c54x c54x 程式執行下列乘法運程式執行下列乘法運算算

1. z = c1 * c21. z = c1 * c2 ; c1, c2 ; c1, c2 為整數常數為整數常數

2. z = x * c22. z = x * c2 ; c2; c2 為整數常數為整數常數 , x , x 為為 dma dma (data memory address) (data memory address) 資料資料

3. z = x * y3. z = x * y ; x, y ; x, y 為為 dma dma 資料資料

Page 14: PBTL Problem-Based Teaching and Learning

[[ 二二 ] :] : 學習目標學習目標

1. MPY1. MPY commandcommand

2. 2. 定義 定義 .mmregs .mmregs

3. Indirect addressing3. Indirect addressing

Page 15: PBTL Problem-Based Teaching and Learning

[[ 三三 ] : ] : 解題分析解題分析

1. 1. 上述題目所需之指令為乘法運算上述題目所需之指令為乘法運算 , (, ( 指令為 指令為 MPY) MPY) 及儲存及儲存

2. 2. 查查 CCSCCS 中之 中之 Arithmetic Instructions Arithmetic Instructions 及 及

Load/Store InstructionsLoad/Store Instructions

3. MPY 3. MPY 指令共有四種格式指令共有四種格式 , , 依上述資料型態依上述資料型態 選用適當格式選用適當格式

Page 16: PBTL Problem-Based Teaching and Learning

MPY MPY 指令指令 1. MPY command1. MPY command 1: MPY[R] Smem, dst 1: MPY[R] Smem, dst 2: MPY Xmem ,Ymem, dst 2: MPY Xmem ,Ymem, dst 3: MPY Smem, #lk, dst 3: MPY Smem, #lk, dst 4: MPY #lk, dst4: MPY #lk, dst

ExecutionExecution

1: (TREG) x (Smem) --> dst1: (TREG) x (Smem) --> dst 2: (Xmem) x (Ymem) --> dst2: (Xmem) x (Ymem) --> dst (Xmem) -->TREG(Xmem) -->TREG 3: (Smem) x lk --> dst3: (Smem) x lk --> dst (Smem) --> TREG(Smem) --> TREG 4: (TREG) x lk --> dst4: (TREG) x lk --> dst

Page 17: PBTL Problem-Based Teaching and Learning

**************************** z = c1 * c2 z = c1 * c2

****************************

** 可否仿照加法運算 可否仿照加法運算 ????(2) LD #c1, A(2) LD #c1, A

(1) MPY #c2, A(1) MPY #c2, A ; A = (A) * (#c2); A = (A) * (#c2)

(3) STL A, *(z)(3) STL A, *(z) ;store (AL) into;store (AL) into ;location z;location z

** 上述為錯誤碼上述為錯誤碼

Page 18: PBTL Problem-Based Teaching and Learning

**************************** z = c1 * c2 z = c1 * c2

****************************

正確的方法正確的方法

(2) STM #c1,T ;(2) STM #c1,T ; 需定義需定義 mmregsmmregs(1) MPY #c2, A(1) MPY #c2, A ; A = (TREG) ; A = (TREG) * (#c2)* (#c2)

(3) STL A, *(z)(3) STL A, *(z) ;store (AL) into ;store (AL) into ;location z;location z

Page 19: PBTL Problem-Based Teaching and Learning

************************** z = x * c2 z = x * c2

**************************

LD #x, DPLD #x, DP

MPY @x, #c2, AMPY @x, #c2, A

STL A, *(z)STL A, *(z)

Page 20: PBTL Problem-Based Teaching and Learning

******************************** z = x * y z = x * y

********************************

(3) STM #y, AR3(3) STM #y, AR3

(2) STM #x, AR2(2) STM #x, AR2

(1) MPY *AR2, *AR3, A ;?? MPY (1) MPY *AR2, *AR3, A ;?? MPY @x, @y, A@x, @y, A

(4) STL A, *(z)(4) STL A, *(z)

Page 21: PBTL Problem-Based Teaching and Learning

******************************** z = x * y z = x * y

********************************

STM #y, AR3STM #y, AR3

STM #x, AR2STM #x, AR2

MPY *AR2, *AR3, A ;?? MPY @x, @y, AMPY *AR2, *AR3, A ;?? MPY @x, @y, A

STL A, *(z)STL A, *(z)

Page 22: PBTL Problem-Based Teaching and Learning

******************************** z = x * y z = x * y

********************************

注意 注意 : : 下列碼語法錯誤下列碼語法錯誤

MPY *AR1, *AR3, A MPY *AR1, *AR3, A

STM #x, AR1STM #x, AR1 ;AR1 ;AR1 不可使用不可使用

STM #y, AR3STM #y, AR3

STL A, *(z)STL A, *(z)

Page 23: PBTL Problem-Based Teaching and Learning

MPY commandMPY command

1: MPY[R] Smem, dst 1: MPY[R] Smem, dst

2: MPY Xmem ,Ymem, dst 2: MPY Xmem ,Ymem, dst

3: MPY Smem, #lk, dst 3: MPY Smem, #lk, dst

4: MPY #lk, dst4: MPY #lk, dst

Xmem, Ymem Dual data-memory operandsXmem, Ymem Dual data-memory operands只能使用 只能使用 AR2, AR3, AR4, AR5 AR2, AR3, AR4, AR5 四個四個 registersregisters

Page 24: PBTL Problem-Based Teaching and Learning

乘法運算乘法運算The EndThe End

Page 25: PBTL Problem-Based Teaching and Learning

乘加運算乘加運算 (( 一一 ))

蕭 天 泉蕭 天 泉南台科技大學 資工系南台科技大學 資工系

Page 26: PBTL Problem-Based Teaching and Learning

[[ 一一 ] :] : 問題敘述問題敘述 乘加運算乘加運算 : : 寫 寫 c54x c54x 程式執行下列乘法運算程式執行下列乘法運算

y = -5 x + 10y = -5 x + 10

for x = -5,-4,-3,-2,-1,0,1,2,3,4,5for x = -5,-4,-3,-2,-1,0,1,2,3,4,5

Page 27: PBTL Problem-Based Teaching and Learning

[[ 二二 ] :] : 學習目標學習目標

ADD ADD 及 及 MPY MPY 指令復習指令復習

學習迴圈控制學習迴圈控制

Page 28: PBTL Problem-Based Teaching and Learning

[[ 三三 ] : ] : 解題分析解題分析for i =0 to 10

y[i] = -5 * x[i] + 10

end

for i =0 to 10

A = -5 * x[i]

y[i] = A + 10

end

Page 29: PBTL Problem-Based Teaching and Learning

用 用 MPY,ADD MPY,ADD 及 及 RPTB RPTB 指令指令

MPY *AR2+, #(-5), A ;A=-5 * MPY *AR2+, #(-5), A ;A=-5 * x(i)x(i) ADD #10, A ;A = A + 10 ;A = A + 10

RPTB lp-1RPTB lp-1

STMSTM #x, AR2#x, AR2 STMSTM #y, AR3#y, AR3

STM #10, BRCSTM #10, BRC

STL A, *AR3+STL A, *AR3+

lp:lp:

Page 30: PBTL Problem-Based Teaching and Learning

乘加運算乘加運算 (( 一一 ))

The EndThe End

Page 31: PBTL Problem-Based Teaching and Learning

乘加運算乘加運算 (( 二二 ))

蕭 天 泉蕭 天 泉南台科技大學 資工系南台科技大學 資工系

Page 32: PBTL Problem-Based Teaching and Learning

[[ 一一 ] :] : 問題敘述問題敘述 乘加運算乘加運算 : : 寫 寫 c54x c54x 程式執行下列乘法運算程式執行下列乘法運算

1. z = x[0]*y[0] + x[1]*y[1] + ... 1. z = x[0]*y[0] + x[1]*y[1] + ... +x[N]*y[N]+x[N]*y[N]

Page 33: PBTL Problem-Based Teaching and Learning

2.2.

2

1

1

963

852

741

Z

)3(

)2(

)1(

)9()8()7(

)6()5()4(

)3()2()1(

)3(

)2(

)1(

y

y

y

xxx

xxx

xxx

z

z

z

Page 34: PBTL Problem-Based Teaching and Learning

3.3. Convolution Summation Convolution Summation

z[n] = h[0]x[n] + h[1]x[n-1] + … + h[N]x[n-N]= h[0]x[n] + h[1]x[n-1] + … + h[N]x[n-N]

N

i

inxihnz0

][][

Page 35: PBTL Problem-Based Teaching and Learning

[[ 二二 ] :] : 學習目標學習目標

學習迴圈控制學習迴圈控制

學習乘加指令 學習乘加指令 MACMAC

乘加運算的應用乘加運算的應用

學習學習 circular buffers circular buffers 概念概念

Page 36: PBTL Problem-Based Teaching and Learning

MAC MAC 指令指令

1: MAC[R] Smem, src1: MAC[R] Smem, src

2: MAC[R] Xmem, Ymem, src [,dst]2: MAC[R] Xmem, Ymem, src [,dst]

3: MAC #lk, src [,dst]3: MAC #lk, src [,dst]

4: MAC Smem, #lk, src [,dst]4: MAC Smem, #lk, src [,dst]

Page 37: PBTL Problem-Based Teaching and Learning

[[ 三三 ] : ] : 解題分析解題分析 z=x[0]*y[0]+x[1]*y[1]+...+x[9]*y[9]z=x[0]*y[0]+x[1]*y[1]+...+x[9]*y[9]

a = 0a = 0

for i = 0 to 9for i = 0 to 9

a = a + x[i]*y[i]a = a + x[i]*y[i]

endend

xx .int 1, 2, 3, 4, 5, 6, 7, 8, 9.int 1, 2, 3, 4, 5, 6, 7, 8, 9yy .int 1, 1, 1, 1,-1,-1,-1,-1.int 1, 1, 1, 1,-1,-1,-1,-1

Page 38: PBTL Problem-Based Teaching and Learning

1. 1. 用 用 MPY,ADD MPY,ADD 及 及 RPTB RPTB 指指令令

MPY *AR2+, *AR3+, MPY *AR2+, *AR3+, B ;B=x(i)*y(i)B ;B=x(i)*y(i)lp: ADD B, A ;A = A + B ;A = A + B

LD #0, A ;A = 0 ;A = 0

RPTB lpRPTB lp

STMSTM #x, AR2#x, AR2 STMSTM #y, AR3#y, AR3

STM #9, BRCSTM #9, BRC

STL A, *(z)STL A, *(z)

Page 39: PBTL Problem-Based Teaching and Learning

2. 2. 用 用 RPT RPT 及 及 MAC MAC 指令指令

STMSTM #x, AR2#x, AR2

STMSTM #y, AR3#y, AR3

STMSTM #z, AR4#z, AR4

LDLD #0,#0, AA

RPT #9RPT #9

MAC *AR2+, *AR3+, AMAC *AR2+, *AR3+, A

STL A, *AR4STL A, *AR4

Page 40: PBTL Problem-Based Teaching and Learning

3. 3. 用用 RPTZRPTZ 指令指令

RPTZ A, #9RPTZ A, #9

MAC *AR2+, *AR3+, AMAC *AR2+, *AR3+, A

Page 41: PBTL Problem-Based Teaching and Learning

[[ 四四 ] : ] : 解題分析 解題分析 (( 題二題二 )) for i = 0 to 2for i = 0 to 2

a = 0a = 0

for j = 0 for j = 0 to 2to 2 a = a + x[j]*x[j]a = a + x[j]*x[j]

endend

z[i] = az[i] = a

endend

Page 42: PBTL Problem-Based Teaching and Learning

資料的設定 資料的設定 (( 方式一方式一 ))

xx .int.int 1, 2, 3, 4, 5, 6, 7, 8, 91, 2, 3, 4, 5, 6, 7, 8, 9

yy .int 1, -1, 2, 1, -1, 2, 1, -1, 2.int 1, -1, 2, 1, -1, 2, 1, -1, 2

z .usect “result”, 3z .usect “result”, 3

Page 43: PBTL Problem-Based Teaching and Learning

資料的設定 資料的設定 (( 方式二方式二 ))

.sect “c1”.sect “c1”

xx .int.int 1, 2, 3, 4, 5, 6, 7, 8, 91, 2, 3, 4, 5, 6, 7, 8, 9

.sect “c2”.sect “c2”

yy .int 1, -1, 2.int 1, -1, 2

z .usect “result”, 3z .usect “result”, 3

Page 44: PBTL Problem-Based Teaching and Learning

STMSTM #x, AR2#x, AR2 STMSTM #y, AR3#y, AR3 STMSTM #z, AR4#z, AR4

STM STM #3, BK#3, BK

RPTB lp-1RPTB lp-1

RPTZ A, RPTZ A, #2#2 MAC *AR2+, MAC *AR2+, *AR3+0%, A*AR3+0%, A STL A, STL A, *AR4+*AR4+LpLp

STM STM #1, AR0#1, AR0

STM STM #2, BRC#2, BRC

** circular buffers y ** circular buffers y 之 之 address address 有限制有限制

Page 45: PBTL Problem-Based Teaching and Learning

The circular-buffer size register (BK) The circular-buffer size register (BK) specifies the size of the circular buffer.specifies the size of the circular buffer.A circular buffer of size R must start onA circular buffer of size R must start ona N-bit boundary (that is, the N LSBs ofa N-bit boundary (that is, the N LSBs ofthe base address of the circular buffer mustthe base address of the circular buffer mustbe 0), where N is the smallest integer that be 0), where N is the smallest integer that satisfies 2satisfies 2n n > R. > R.

Page 46: PBTL Problem-Based Teaching and Learning

Convolution SummationConvolution Summation

z[n] = h[0]x[n] + h[1]x[n-1] + … + h[N]x[n-N]= h[0]x[n] + h[1]x[n-1] + … + h[N]x[n-N]

z[n] = h[0]x[n] + h[1]x[n-1] + h[2]x[n-2] for n = 2 to 9= h[0]x[n] + h[1]x[n-1] + h[2]x[n-2] for n = 2 to 9

x .int x0, x1, x2, x3, x4, x5, x6, x7, x8, x9

h .int h2, h1, h0

Page 47: PBTL Problem-Based Teaching and Learning

STMSTM #x, AR2#x, AR2 STMSTM #h, AR3#h, AR3 STMSTM #z, AR4#z, AR4

STM STM #3, BK#3, BK

RPTB lp-1RPTB lp-1 RPTZ A, RPTZ A, #2#2 MAC *AR2+, MAC *AR2+, *AR3+0%, A*AR3+0%, A STL A, *AR4+STL A, *AR4+ MAR *+AR2(#-2) MAR *+AR2(#-2) LpLp

STM STM #1, AR0#1, AR0

STM STM #2, BRC#2, BRC

Page 48: PBTL Problem-Based Teaching and Learning

MACD MACD 指令常被用於指令常被用於 Convolution Summation Convolution Summation 之運算之運算

MACD Smem, pmad, srcMACD Smem, pmad, src

(Smem) x (pmad) -> (src)(Smem) x (pmad) -> (src) (Smem) -> TREG(Smem) -> TREG (Smem) -> Smem + 1(Smem) -> Smem + 1

Page 49: PBTL Problem-Based Teaching and Learning

謝謝各位謝謝各位

敬請指教敬請指教