3 hours lecture per week at Engineering building 3, room 324, Mon 1-4pm.

Prabhas Chongstitvatana

16 Jan 2007 Midterm score is here

1 Feb 2007 Project 1 Presentation Schedule

6 Feb 2007 Project 2 announcement

15 Feb 2007 update S2 calculator engine See note here.

23 Feb 2007 Trial session of final exam is today (9-12am) at Eng. Building 4, Floor 18, room 18-02.

Final on-line exam is on Monday 5 March 2007, 10-12am at Eng. Building 4, Floor 18, room 18-02.

14 Mar 2007 Final score is here Please check and inform me immediately if you find any mistake in your score.

6 Nov 2006 Number and Data

29 No 2006 Computer Arithmetic (Stalling slide and my text chapter 3)

4 Dec 2006 Computer Logic (Katz's slide ch1 23 pages & 2 16 pages)

15 Jan 2007 S0 processor, S2 assembly language

24 Jan 2007 S2 version 2.1 assembly language How to use assembler-simulator S2.1 Instruction Set S2.1 tools

5 Feb 2007 Update S2.1 tools S2 instruction set document update

6 Feb 2007 Details of project 2 more detail on the project

7 Feb 2007 The S2 Calculator Engine S2 calculator engine in S2 assembly language

10 Feb 2007 S2 calculator package completed !

13 Feb 2007 S2 package with data structure extension lecture Data Structure

...

2 number and data representation (from Comer slide page 64-103)

3 computer arithmetic (from Stalling slide chapter 9, ppt)

4 computer logic excerpt from Katz's slides chap 1 and chap 2

5 processor and its function Stalling slide chap-10 chap-11 chap-12 (page 1-27)

6 computer instruction S0 processor

7 assembly language 1 (my lecture of comporg 2006)

S2 version 2.1 assembly language How to use assembler-simulator S2.1 Instruction Set

S2 programming examples

8 assembly language 2 more S2 programming examples S2 instruction set document update

9 assembly language 3 Call function

10 data structure example of S2 program: list bsearch trie

11 computing future

final exam 30

four projects 20

homework 10

participation 10

----

total 100

2 Write a list of name of operating system in present days (5 names). It should include OS for desktop, server, cell phone, PDA etc.). Give a brief description of each system.

3 Discuss the meaning of the phrase "digital divide" in your opinion.

4 What do you think about "copyright" for software?

1.1 A*B + /A*/B

1.2 A*(/B*C) + /C

2 Draw switch diagram of this propositional formula:

IF sunshine

AND NOT flood

THEN go-play-golf

3 Draw circuit using AND, OR, NOT gates for a 3-bit adder.

4 Let a switch (normally open) represents a variable (A..G). What is the truth assignment of the following circuit to output T ?

(you can write a Boolean formula to represent the output).

A B C

T --@--@--@--|

D |

T --@--| ---- OUT

E |

F --@--| |

G |-----|

F --@--|

load
r1 b

load r2 c

add r3 r2 r1

store a r3

a, b, c reside in the memory. r1, r2, r3 are
registers.load r2 c

add r3 r2 r1

store a r3

2 Given a new instruction add r3 r1 #n, which means

R[r1]
+ n -> R[r3] add immediate

Write a program to add 1+2+3+4 and store it in R[4].3 Write a program to transfer data R[1] -> R[2], R[3] -> R[4].

4 Describe how the operation PC + 1 -> PC should be performed using the register transfer language.

1 Doing the multiplication by repeat addition C = A * B by adding A, B times.

2 Find the sum of the even integers between 1..10.

3 Write a program to find factorial n.

fac(n)

if n == 0 return 1

else return n * fac(n-1)

if n == 0 return 1

else return n * fac(n-1)

1 Write a program to find minimum of 4 numbers reside in the memory address 100, 101, 102, 103.

2 Find the sum of odd numbers between 1..21 (1,3,5,..).

3 Find the average of a set of numbers in the array A[0..9]. The integer arithmetic has no decimal point.

4 Construct a table of x^2 in the array x[0..9] (the result is x[0] = 0, x[1] = 1, x[2] = 4, ...)

2 write S2 program to muliply two numbers (non-negative) n and m by "repeat addition", by adding n, m times.

3 write S2 program to check two arrays AR, BR of the same size of n elements (0..n-1) that all their elements are identical.

4 Solve this equation: 3x^2 + 2x + 1 = 86, by trying x from 0...n.

Solution to the assignment: 1 reverse 2 mul 3 equal 4 solve

1) PDP8, 2) VAX, 3) IBM S/360, 4) Pentium, 5) PowerPC, 6) MIPS R4000, 7) UltraSPARC, 8) Itanium,

9) ARM processor, 10) Thumb processor, 11) MMX

Hand in the following topics by

1) Overview of the processor, its organisation.

2) Type of instructions, type of data

3) Some detail of each instruction

4) Some example of program

5) Conclusion, including some comment about the processor, such as, it is good for ..., it it different from other in ...

1 Find minimum value from four numbers, named, n1, n2, n3, n4.

2 Find sum of odd number between 1..21

3 Find average of elements in an array A[0..9].

4 Computer a table of x^2 where x is 0..9. Put it in a table B[0..9].

You are to write these functions, called f0..f9

f0 rng

f1 sq(x)

f2 x!

f3 fib(x)

f4 x^y

f5 x mod y

f6 gcd(x,y)

f7 x^2+y^2 (sum square)

f8 sum(a1..an,n)

f9 average(a1..an,n)

f1 sq(x)

f2 x!

f3 fib(x)

f4 x^y

f5 x mod y

f6 gcd(x,y)

f7 x^2+y^2 (sum square)

f8 sum(a1..an,n)

f9 average(a1..an,n)

Assignment of project

Each student will do one function. The number of function f0..f9 will be assigned to students by student_id mod 10. In other words, your five digits ID, takes the last digit (0..9), it is the number of function assigned to you. The deadline for the project 2 is Monday 19 February 2007 at 4pm. I will implement the calculator and will upload it by the end of this week. (Friday 9 February 2007).

more detail on the project

The S2 Calculator Engine

S2 calculator engine in S2 assembly language

update S2 calculator engine It is important for the students who got the assignment f8 and f9 to use this version. The functions f8, f9 cannot be used in mixed with other functions. Please try it on its own one line, like this: >f9 1 2 3 = .

2 concrete study of existing processors

3 assembly language programming

4 study of large computer system of the future

5 (now defunc) Write a simulator of S2 instructions using the following "skeleton" program (sim.txt) . Each of you implement one instruction.

Chapter3 Computer arithmetic (my Comp. Arch textbook)

Data Structure

How to use assembler-simulator

Update S2.1 tools

S2 calculator engine in S2 assembly language s2cal.zip (completed ! Sat 10 Feb 2007)

S2 package with data structure extension readme

Chongstitvatana, P., "Computer Architecture: a synthesis approach", 2002. A copy is available from the library of department of computer engineering, floor 20, Engineering building 4. I will release part of chapters relevant to the course shortly.

W. Stallings, "Computer organisation and architecture", 6th ed., Prentice-hall, 2003.

Comers, "Essentials of computer architecture", Prentice Hall, 2005.

Katz, "Comtemporary Logic Design", 2nd ed., Prentice Hall, 2005.

My project on computer language (mostly language implementation) Som.

last update 14 Mar 2007