+ All Categories
Home > Documents > ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending...

ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending...

Date post: 15-Oct-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
42
Young Won Lim 9/3/19 ISA Multiple Data Transfer (3A)
Transcript
Page 1: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

Young Won Lim9/3/19

ISA Multiple Data Transfer (3A)

Page 2: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

Young Won Lim9/3/19

Copyright (c) 2014 - 2019 Young W. Lim.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Please send corrections (or suggestions) to [email protected].

This document was produced by using LibreOffice.

Page 3: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

3 Young Won Lim9/3/19

Based on

ARM System-on-Chip Architecture, 2nd ed, Steve Furber

Page 4: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

4 Young Won Lim9/3/19

Stack Types and Stack Top Operations

(F,E) x (A,D) = { FA, FD, EA, ED }

Stack Types – Semantics

PUSH(STM) / POP(LDM) on an { FA / FD / EA / ED } type stack

(I,D) x (B,A) = { IB, IA, DB, DA }

Stack Top Operations – Syntax

Do { Inc / Dec } stack top operation { Before / After } STM / LDM

Page 5: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

5 Young Won Lim9/3/19

Inverse Stack Operations

STMFA

LDMFA

STMFD

LDMFD

STMEA

LDMEA

STMED

LDMED

Page 6: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

6 Young Won Lim9/3/19

Complementary Stack Types

STMIB

LDMIB

STMIA

LDMIA

STMDB

LDMDB

STMDA

LDMDA

FA stack

ED stack

EA stack

FD stack

FD stack

EA stack

ED stack

FA stack

Page 7: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

7 Young Won Lim9/3/19

Inverse Stack Operations and Complementary Stacks

STMFA

LDMFA

STMFD

LDMFD

STMEA

LDMEA

STMED

LDMED

STMIB

LDMIB

STMIA

LDMIA

STMDB

LDMDB

STMDA

LDMDA

Inverse Stack Operations Complementary Stacks

Page 8: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

8 Young Won Lim9/3/19

(Empty / Full) and (Before / After)

STM Empty A/D

empty

LDM Full A/D

occupied

STM AfterI/D

Inc / dec later

LDM BeforeI/D

Inc / dec before

Ascend

Descend

Inc

Dec□ = □ =

STM Full A/D

occupied

STM Before I/D

Inc / dec before

LDM Empty A/D

empty

LDM AfterI/D

Inc / dec later

Page 9: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

9 Young Won Lim9/3/19

(F_ / E_) and (_B / _A) reasoning

If the stack top is full then inc / dec the stack pointerbefore storing a new element

If the stack top is full then inc / dec the stack pointerafter getting an element

STMF□ STM□B

LDMF□ LDM□A

Ascend

Descend

Inc

Dec□ = □ =

If the stack top is empty then inc / dec the stack pointer after storing a new element

STME□ STM□A

If the stack top is empty then inc / dec the stack pointer before getting an element

LDME□ LDM□B

Page 10: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

10 Young Won Lim9/3/19

(Ascend / Descend) and (Increment / Decrement)

STM DescendF/E

PUSH

LDM AscendF/E

POP

STM AscendF/E

PUSH

LDM DescendF/E

POP

STM Dec B/A

the same direction

LDM Inc B/A

the opposite direction

STM Inc B/A

the same direction

LDM Dec B/A

the opposite direction

Full

Empty

Before

After□ = □ =

Page 11: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

11 Young Won Lim9/3/19

(_A / _D) and (I_ / D_) reasoning

To push onto the ascending stack

To push onto the descending stack

To pop from the ascending stack

To popfrom the descending stack

Increment the stack top pointer

Decrement the stack top pointer

Decrement the stack top pointer

Increment the stack top pointer

STM□A STMI□

STM□D STMD□

LDM□A LDMD□

LDM□D LDMI□

Full

Empty

Before

After□ = □ =

Page 12: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

12 Young Won Lim9/3/19

STM / LDM Equivalence Summary

Ascend Inc

Descend Dec

Ascend Inc

Descend Dec

STM

LDM

STM

LDM

PUSH

PUSH

POP

POP

the same direction

the same direction

the opposite direction

the opposite direction

Full Before

Full Before

occupied Inc / dec before

occupied Inc / dec before

Empty Afterempty Inc / dec later

Empty Afterempty Inc / dec later

Page 13: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

13 Young Won Lim9/3/19

Stack View – (STM,LDM) x (F,E) x (A,D)

newly stored

STMFA

newly stored

LDMFD

STMFD

FULL

FULL

FULL

Ascend

Descend

Descend

newly retrieved

LDMFA

FULL Ascend

newly stored

STMEA

newly retrieved

newly stored

LDMED

STMED

EMPTY

EMPTY

EMPTY

Ascend

Descend

Descend

newly retrieved

LDMEA

EMPTY Ascend

newly retrieved

Page 14: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

14 Young Won Lim9/3/19

Block Copy View – (STM,LDM) x (I, D) x (B,A)

newly stored

newly stored

newly retrieved

LDMDB

STMIB

STMIA

newly retrieved

newly retrieved

newly stored

LDMIA

LDMIB

STMDA

INC

INC

INC

DEC

INC

DEC

Before

After

After

Before

Before

After

newly stored

STMDBDEC Before

LDMDADEC After

newly retrieved

Page 15: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

15 Young Won Lim9/3/19

Block copy view Stack view

Ascending

LDMED

Descending

Ascending

LDMFD

Descending

STMIB

LDMIB

STMIA

LDMIA

STMDB

STMDA

LDMFA

LDMEA

LDMDA

LDMDB

STMFA

STMFD

STMEA

STMED

Full

Full

Empty

Empty

Descending

Ascending

Descending

Ascending

Empty

Empty

Full

Full

PUSH

PUSH

PUSH

PUSH

POP

POP

POP

POP

Inc Before ST

Dec Before ST

Inc After ST

Dec After ST

Inc Before LD

Dec Before LD

Inc After LD

Dec Before LD

Page 16: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

16 Young Won Lim9/3/19

Stack view Block copy view

Ascending

LDMED

Descending

Ascending

LDMFD

Descending

STMIB

LDMIB

STMIA

LDMIA

STMDB

STMDA

LDMFA

LDMEA

LDMDA

LDMDB

STMFA

STMFD

STMEA

STMED

Full

Full

Empty

Empty

Descending

Ascending

Descending

Ascending

Empty

Empty

Full

Full

PUSH

PUSH

PUSH

PUSH

POP

POP

POP

POP

Inc Before ST

Dec Before ST

Inc After ST

Dec After ST

Inc Before LD

Dec Before LD

Inc After LD

Dec Before LD

Page 17: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

17 Young Won Lim9/3/19

STM Equivalent Operations – (I,D) x (B,A)

IncreasingAfter ST

DecreasingAfter ST

EmptyAscending

IA = EA

DA = ED

EmptyDescending

STM

STM

IncreasingBefore ST

DecreasingBefore ST

FullAscending

IB = FA

DB = FD

FullDescending

STM

STM

Page 18: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

18 Young Won Lim9/3/19

LDM Equivalent Operations – (I,D) x (B,A)

IncreasingAfter LD IA =

FD

FullDescendingLDM

IncreasingBefore LD IB =

ED

EmptyDescendingLDM

DecreasingAfter LD DA =

FA

FullAscendingLDM

DecreasingBefore LD DB =

EA

EmptyAscendingLDM

Page 19: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

19 Young Won Lim9/3/19

(STM, LDM) x (I, D) x (B, A) orders

Ascending Stack PUSH Descending Stack PUSH

Ascending Stack POP

STMIA

STMEA

STMDB

LDMDB

STMFD

LDMEA

Descending Stack POP

LDMIA

LDMFD

STMIB

STMFA

LDMIB

LDMED

STMDA

LDMDA

STMED

LDMFA

decrement First

Load First

Increment First

Load First

Store First

decrement First

Increment First

Store First

Page 20: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

20 Young Won Lim9/3/19

(STM, LDM) x (F, E) x (A, D) orders

Empty Top PUSH

STMIA STMDA

STMEA STMED

Empty Top POP

LDMIBLDMDB

LDMEDLDMEA

Full Top PUSH

Full Top POP

STMDB

LDMDA

STMIB

LDMIA

STMFD

LDMFA

STMFA

LDMFD

Increment First

decrement First

Load First

Load First

Store First

Store First

decrement First

Increment First

Page 21: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

21 Young Won Lim9/3/19

(STM, LDM) x (I, D) x (B, A) orders

D B

F D

decrement before

full descending

E A

D B

empty ascending

decrement before

I B

F A

increment before

full ascending

STMSTM

STM

LDM

STM

LDM

Ascending Stack PUSH Descending Stack PUSH

Ascending Stack POP

I B

E D

increment before

empty descending

LDMLDM

Descending Stack POP

I A

E A

increment after

empty ascending

I A

F D

increment after

full descending

D A

E D

decrement after

empty descending

F A

D Adecrement after

full ascending

Page 22: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

22 Young Won Lim9/3/19

(STM, LDM) x (E, F) x (A, D) orders

D A

E D

D B

F D

decrement after decrement before

empty descending full descending

E A F A

D AD Bdecrement after

empty ascending full ascending

decrement before

I A

E A

increment after

empty ascending

STMSTM

STM

LDM

STM

LDM

Empty Top PUSH Full Top PUSH

Full Top POP

I B

E D

increment before

empty descending

LDMLDM

Empty Top POP

I B

F A

increment before

full ascending

I A

F D

increment after

full descending

Page 23: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

23 Young Won Lim9/3/19

STM in the same direction : (Inc – Asc), (Dec – Dsc)

I A

E A

D A

E D

increment after

decrement after

empty ascending

empty descending

I B

F A

D B

F D

increment before

full ascending

decrement before

full descending

FULL EMPTY

Descending

Ascending

Page 24: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

24 Young Won Lim9/3/19

LDM in the opposite direction : (Inc – Dsc), (Dec – Asc)

F A

D A

decrement after

full ascending

I A

F D

increment after

full descending

FULL

Ascending

Descending

E A

D B

empty ascending

decrement before

I B

E D

increment before

empty descending

EMPTY

Page 25: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

25 Young Won Lim9/3/19

Equivalence – (STM, LDM) x (I, D) x (B, A)

STMIA

STMEA

STMDB

LDMDB

STMFD

LDMEA

LDMIA

LDMFD

STMIB

STMFA

LDMIB

LDMED

STMDA

LDMDA

STMED

LDMFA

Store First

Increment First

decrement First

Store First

Load First

Increment First

decrement First

Load First

Page 26: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

26 Young Won Lim9/3/19

Equivalence – (STM, LDM) x (F, E) x (A, D)

STMIA

STMEA

STMDB

LDMDB

STMFD

LDMEA

STMIB

STMFA

STMDA

LDMDA

STMED

LDMFA

LDMIB

LDMED

LDMIA

LDMFD

Store First

Increment First

decrement First

Store First

Load First

Increment First

decrement First

Load First

Page 27: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

27 Young Won Lim9/3/19

Stack view – (STM, LDM) x (I, D) x (B, A)

STMIA

STMEA

STMDB

LDMDB

STMFD

LDMEA

LDMIA

LDMFD

STMIB

STMFA

LDMIB

LDMED

STMDA

LDMDA

STMED

LDMFA

Ascending Descending

Descending Ascending

FULL EMPTY

FULLEMPTY

FULL

EMPTY

EMPTY

FULL

Page 28: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

28 Young Won Lim9/3/19

Stack view – (STM, LDM) x (F, E) x (A, D)

STMIA

STMEA

STMDB

LDMDB

STMFD

LDMEA

STMIB

STMFA

STMDA

LDMDA

STMED

LDMFA

Ascending Descending

Ascending Descending

LDMIB

LDMED

LDMIA

LDMFD

FULL EMPTY

FULL EMPTY

FULL

FULL

EMPTY

EMPTY

Page 29: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

29 Young Won Lim9/3/19

Equivalent & Complementary Relations – (I,D) x(B, A)

STMIB STMFA

LDMIB LDMED

STMIA

LDMIA

STMEA

LDMFD

STMDB

LDMDB

STMFD

LDMEA

STMDA

LDMDA

STMED

LDMFA

equivalent

equivalent

equivalent

equivalent

equivalent

equivalent

equivalent

equivalent

com

plem

ent

com

plem

ent

com

plem

ent

com

plem

ent

Complementary StacksComplementary Stacks

Complementary StacksComplementary Stacks

Page 30: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

30 Young Won Lim9/3/19

Equivalent & Complementary Relations – (F,E) x (A,D)

STM I B STMFA STM I A STMEA

STMDB

LDMDB

STMFD

LDMEA

STMDA

LDMDA

STMED

LDMFA

LDM I B LDMEDLDM I A LDMFD

equivalent

equivalent

equivalent

equivalent

equivalent

equivalent

equivalent

equivalent

com

plem

ent

com

plem

ent

com

plem

ent

com

plem

ent

Inverse Stack Operations Inverse Stack Operations

Inverse Stack Operations Inverse Stack Operations

Page 31: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

31 Young Won Lim9/3/19

Examples of Multiple Data Transfers

Page 32: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

32 Young Won Lim9/3/19

Multiple Data Transfer – STM (I,D)x(B,A)

r4r1r0

r8

r8’

r4r1r0r8’

r8

High

Low

High

Low

IncrementBefore ST

DecrementBefore ST

FullAscending

FullDescending

first, increment;then, store

first, decrement;then, store

STMIB r8! {r0,r1,r4}

STMDB r8! {r0,r1,r4}

STMFA r8! {r0,r1,r4}

STMFD r8! {r0,r1,r4}

! autoindex

! autoindex

PUSH

PUSH

STM

STM

r4r1r0r8

r8’

r4r1r0

r8’

r8

High

Low

High

Low

IncrementAfter ST

DecrementAfter ST

EmptyAscending

EmptyDescending

first, store;then, increment

first, store;then, decrement

STMIA r8! {r0,r1,r4}

STMDA r8! {r0,r1,r4}

STMEA r8! {r0,r1,r4}

STMED r8! {r0,r1,r4}

! autoindex

! autoindex

PUSH

PUSH

STM

STM

Page 33: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

33 Young Won Lim9/3/19

Multiple Data Transfer – LDM (I,D)x(B,A)

r4r1r0

r8

r8’ High

Low

IncrementBefore LD

first, increment;then, store

LDMIB r8! {r0,r1,r4}LDMED r8! {r0,r1,r4}

POP

! autoindex

EmptyDescendingLDM

r4r1r0r8

r8’ High

Low

IncrementAfter LD

first, store;then, increment

LDMIA r8! {r0,r1,r4}LDMFD r8! {r0,r1,r4}

POP

FullDescending

! autoindexLDM

r4r1r0r8’

r8

High

Low

DecrementBefore LD

first, decrement;then, store

LDMDB r8! {r0,r1,r4}

! autoindex

POP

EmptyAscending

LDMEA r8! {r0,r1,r4}

LDM

r4r1r0

r8’

r8

High

Low

DecrementAfter LD

first, store;then, decrement

LDMDA r8! {r0,r1,r4}

! autoindex

POP

FullAscending

LDMFA r8! {r0,r1,r4}

LDM

Page 34: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

34 Young Won Lim9/3/19

A Multiple Data Transferas a sequence of Single Data Transfers

Page 35: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

35 Young Won Lim9/3/19

STM with auto-indexing – (I,D) x (B,A)

STMIB r8!, {r0,r1,r4}STMED r8!, {r0,r1,r4}

STR r0, [r8, #4]!STR r1, [r8, #4]!STR r4, [r8, #4]!

STMDB r0!, {r0,r1,r4}STMEA r0!, {r0,r1,r4}

STR r4, [r0, #-4]!STR r1, [r0, #-4]!STR r0, [r0, #-4]!

STMIA r8!, {r0,r1,r4}STMFD r8!, {r0,r1,r4}

STR r0, [r8], #1STR r1, [r8], #1STR r4, [r8], #1

STMDA r8!, {r0,r1,r4}STMFA r8!, {r0,r1,r4}

STR r4, [r8], #-4STR r1, [r8], #-4STR r0, [r8], #-4

Page 36: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

36 Young Won Lim9/3/19

LDM with auto-indexing – (I,D) x (B, A)

LDMIA r8!, {r0,r1,r4}LDMFD r8!, {r0,r1,r4}

LDR r0, [r8], #4LDR r1, [r8], #4LDR r4, [r8], #4

LDMDA r8!, {r0,r1,r4}LDMFA r8!, {r0,r1,r4}

LDR r4, [r8], #-4LDR r1, [r8], #-4LDR r0, [r8], #-4

LDMIB r8!, {r0,r1,r4}LDMED r8!, {r0,r1,r4}

LDR r0, [r8, #4]!LDR r1, [r8, #4]!LDR r4, [r8, #4]!

LDMDB r8!, {r0,r1,r4}LDMEA r8!, {r0,r1,r4}

LDR r4, [r8, #-4]!LDR r1, [r8, #-4]!LDR r0, [r8, #-4]!

Page 37: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

37 Young Won Lim9/3/19

STM without auto-indexing – (I,D) x (B,A)

STMIA r8, {r0,r1,r4}STMFD r8, {r0,r1,r4}

STR r0, [r8, #0]STR r1, [r8, #4]STR r4, [r8, #8]

STMDA r8, {r0,r1,r4}STMFA r8, {r0,r1,r4}

STR r4, [r8, #0]STR r1, [r8, #-4]STR r0, [r8, #-8]

STMIB r8, {r0,r1,r4}STMED r8, {r0,r1,r4}

STR r0, [r8, #4]STR r1, [r8, #8]STR r4, [r8, #12]

STMDB r8, {r0,r1,r4}STMEA r8, {r0,r1,r4}

STR r4, [r0, #-4]STR r1, [r0, #-8]STR r0, [r0, #-12]

Page 38: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

38 Young Won Lim9/3/19

LDM without auto-indexing – (I,D) x (B,A)

LDMIB r8, {r0,r1,r4}LDMED r8, {r0,r1,r4}

LDR r0, [r8, #4]LDR r1, [r8, #8]LDR r4, [r8, #12]

LDMDB r8, {r0,r1,r4}LDMEA r8, {r0,r1,r4}

LDR r4, [r8, #-4]LDR r1, [r8, #-8]LDR r0, [r8, #-12]

LDMIA r8, {r0,r1,r4}LDMFD r8, {r0,r1,r4}

LDR r2, [r8, #0]LDR r3, [r8, #4]LDR r4, [r8, #8]

LDMDA r8, {r0,r1,r4}LDMFA r8, {r0,r1,r4}

LDR r4, [r8, #0]LDR r1, [r8, #-4]LDR r0, [r8, #-6]

Page 39: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

39 Young Won Lim9/3/19

A Multiple Data Transfer– conceptual

increment / decrementbefore / after STM / LDM

Page 40: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

40 Young Won Lim9/3/19

Multiple Data Transfer – STM (I,D)x(B,A)

r4r1r0

r8

r8’

r4r1r0r8’

r8

High

Low

High

Low

IncrementBefore ST

DecrementBefore ST

FullAscending

FullDescending

first, increment;then, store

first, decrement;then, store

STMIB r8! {r0,r1,r4}

STMDB r8! {r0,r1,r4}

STMFA r8! {r0,r1,r4}

STMFD r8! {r0,r1,r4}

! autoindex

! autoindex

PUSH

PUSH

STM

STM

r4r1r0r8

r8’

r4r1r0

r8’

r8

High

Low

High

Low

IncrementAfter ST

DecrementAfter ST

EmptyAscending

EmptyDescending

first, store;then, increment

first, store;then, decrement

STMIA r8! {r0,r1,r4}

STMDA r8! {r0,r1,r4}

STMEA r8! {r0,r1,r4}

STMED r8! {r0,r1,r4}

! autoindex

! autoindex

PUSH

PUSH

STM

STM

Bef

ore

Bef

ore

Afte r

Afte r

Page 41: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

41 Young Won Lim9/3/19

Multiple Data Transfer – LDM (I,D)x(B,A)

r4r1r0

r8

r8’ High

Low

IncrementBefore LD

first, increment;then, store

LDMIB r8! {r0,r1,r4}LDMED r8! {r0,r1,r4}

POP

! autoindex

EmptyDescendingLDM

r4r1r0r8

r8’ High

Low

IncrementAfter LD

first, store;then, increment

LDMIA r8! {r0,r1,r4}LDMFD r8! {r0,r1,r4}

POP

FullDescending

! autoindexLDM

r4r1r0r8’

r8

High

Low

DecrementBefore LD

first, decrement;then, store

LDMDB r8! {r0,r1,r4}

! autoindex

POP

EmptyAscending

LDMEA r8! {r0,r1,r4}

LDM

r4r1r0

r8’

r8

High

Low

DecrementAfter LD

first, store;then, decrement

LDMDA r8! {r0,r1,r4}

! autoindex

POP

FullAscending

LDMFA r8! {r0,r1,r4}

LDM

Bef

ore

Bef

ore

Afte r

Afte r

Page 42: ISA Multiple Data Transfer (3A)€¦ · 2019-09-03  · Ascending Descending Descending Ascending FULL EMPTY EMPTY FULL FULL EMPTY EMPTY FULL. ISA (3A) Multiple Data Transfer 28 Young

ISA (3A)Multiple Data Transfer

42 Young Won Lim9/3/19

References

[1] ftp://ftp.geoinfo.tuwien.ac.at/navratil/HaskellTutorial.pdf[2] https://www.umiacs.umd.edu/~hal/docs/daume02yaht.pdf


Recommended