Computer Architecture
–
! "#
$
% & ' $( ) *+$ , 1389% 12 3
4 (5 6 6" $ 4 7 '" , "–
8 &–
9: & ) ; $ -' = ! > , ! "# $–
7 "# $ % ", ) (RTL–
7 "# $–
!& D ED–
7F + G' 3$ H'" I ! >,–
J3$ 1 I I4 '" ,
= %
% I
35
%
= %
% I
45
%
,
"+ 'I 3 )N
15
%
' O 7 2 5 8 2 P
10
%
4 7
http://profs.basu.ac.ir/khotanlou
8 2 P
4
4
hassan.khotanlou@gmail.com
khotanlou@basu.ac.ir
8
9:
–
4 $ $ " , 7 , '( : " 3 " 7 % " ^ : !P $P G > ) :E ) I$ G7 > ' : = $ P G _5 I '&–
7 !$ 3 " ) I$ ' > & I " 3 " . " 7 % !$ 4 $ $ " , 7 3 " ,5 : : _5 I '"$ !& * % " 3 " G $ !2 $* : ` = $ ( $ *9 ,5 7: 8 : a , +–
, > = & " ,5 7: $ *9 $ ) b " _$ ! DN .2 3 , 8 &
" 1 $ =
1 : $ 7! &
:
" ' $+
!$ ,
7
5
P" ) $,
!$
!
" ' $+
!$ '
$
$ "
* 4
, $+
% ,
" ' $+
> =
$$
....
7
152
*
I/O system Processor Compiler Operating System (Windows 2K) Application (Netscape) Digital Design Circuit Design Instruction Set Architecture Datapath & Controltransistors
Memory
Hardware
9:
ENIAC 1943–
200 $ F$ -30 %, % -18000 g h -!+ ` J " 8 ( – 1500 i5 6" Von neuman 1946@ A
B
2X transistors/Chip Every 1.5 to 2.0 years
2 H H / I JK 1.5 2 L “ N H J O ”
'
=
$"
) ,$ +
$"
7 &
$"
'
&
P
3: ,
P+
&
,
' $ =^
$+ ,
; $
7 "#
$
&
>,
•
•
•
•
•
!" #$•
%&'(•
%&'( )$ % ",
7 "#
"
m:+
%
`
"
,
%
$ +
:
o& & ' $ %b & >
o 2 "$ ! > , & ) + ) :E 7 >O3 " " ^ o '2 $ 3 + n> " = $ > '2 , %+ P & ' + .
% ",
$
RTL
:
$
$
& $ > ,
2 "$ 8 (
72 !
"
=
"
)N ; $ =
, &
% " )
RTL
+ ) F
.
, ) F
RTL
8 ( 72 ! 1"
*
%b 'I 3
' I
P >
.
! "# $% & ' ( ) *+ * & " , -& .* & / ) 0 1 . / / 3 # # " " ' # * -& "# 4 #5 ." 6 ! " & . / :
–
8! 9 ! / .–
8! : " ' # ;& - 1 " &/ ! <#, ' # ! .–
*+ -& = : " ' ! -> #? *+ #@ .#* +" I : ' & 7 ) + ) h o ," 8 I " $ + m:+ . _$ :
MAR=Memory Address Register PC= Program Counter IR= Instruction Register R1=( ) +1 )
PC PC = $ + ) F 3 ` , : I` ; $Q " 3 %b + $ + 3 3 4 4 5 5 6 6 7 7 22 11 00 I H Q : ` & 7 " n , ' " 0 ) 7 7 ( n-1 ) g9 7 7 " % ( $ + ED ) + 7 7 15 15 88 PC(L) PC(L) PC(H) PC(H) 0 0 ;, = 7 " 2 " ' " 16 ` '& D + = , 7 (" ;, 7 ^ ` % m:+ " ) + , $ , + ) F , PC(H)= PC(8-15) PC(L)= PC( 0-7 )
." " & $ 7 >O3 ` " * " ( 7 , ; $ ) + : R2 R1 7 "> J 5 7 I $ ) $& % +$ R1 " R2 7 . I R1 w % " '^ " $ ' '2 I R2 I " " " R1 + . J S T U L V : 1 -' : , % " R1 " R2 2 -R2 , % " 7 " ^ " ) Parallel Load ( + " + .
-9# +A B
$ 3 +
:
= $ m : '2 $ 3 + ` J I 7 ( " 3 5 $ 7 ^ '& D 7 "> _$ + : 6" '2 $ : % ` F( 7 '2 " 7 "> ` 6" , 7 (" 7 "> %+ P ) $ $D + P: R2 R1 If (P=1) ( then (R2 R1) Control Circuit R2R2 R1 R1 Load Load n n P P CLK CLK$"$ ,
Clk Clk t+1 t+1 Load (P) Load (P) t t > $ % % , J ' 5 "2 $ % zO{ t+1 5 | J F . D P z , ; " Clk + " 55 & : J F =& & zO{ $ > . $ 42 zO{ z > % " + n> " "2 " % " 5 = . % , ${ t $* P zO{ | ^ E2 ${ 5 t+1 " $ } ^ " P 5 " $ n> " ) + R1 " R2 + . T: R2 R1 R1 R2
" '$ = " , C : & # " " *D #4 & ) ( + -& *( / .
P: R3
R5
,
MAR
IR
#4 :+ " P=1 & ? ) *, R5 ) R3 IR ) MAR " , -& +& .) 9 GH , )! - . / 0 1 MAR, R2 12 () , 5 )! - . R2(0-7), R2(L) 6'2 78 )! - . R2 R1 -: :1 !; < * 2 )! - . P: )!!; )= > " ; -A B, B A ? @1( L ]
A' B *
&
I
#@ ' =
: "
!
"
8 # JK
L& #M " H
#
.
I ' #
n
) #M *L )
n(n-1)
-?
N1
8! /
.
)+
:
O(n
2)
–
8 - " / " *D ' ! ' #C )
# & *& )
:&
/
' ( )
. 4 J4
bus
" , -& ." 6 !
H?
' #
@ ^@ _
L V
B
(BUS)
!$b & , ` , ( 72 ! " $ + ( =& " '> $ " " Bus + ' ) F . Bus " + JO • + 3 3: , > " % + n & 7 >O3 $$ ' 3: n " ' " $$ $ % , & 3 . , ) " Bus + ' ) F J 3 , : o & P ' 2 o ' : " & 7 D 3 2 IBus
B a
H
MUX
0 0 1 1 2 2 3 3 S0 S0 S1 S1 S0 S0 S1S1 4 line Bus4 line Bus
4x1 4x1 MUX MUX A A B B C C D D 1 1 D C 1 0 B 0 1 A 0 0 Reg Selected S0 S1 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 4x1 4x1 MUX MUX 4x1 4x1 MUX MUX 4x1 4x1 MUX MUX MUX & : & ! " " ) Mux 0 & = F( 7 " bus & ^ ( ... MUX & : & "
h
&
" (
&
BUS
(
$+ "
.
,
$
7 5
S
1S
0+ 1 : $
I$"
'
:
BUS
D
^
.
% , &
Load
(
, $
+
5
)
,
"
"
(
$
"
."
#
"
$
A
"
B
,
J 3
4 "
"
1
,
>
+
:
'
(
BUS
= $
"^ '$ i 7 ("
=
$ ' )
7 ("
BUS A , B Bus B A, )
Bus
! D , ) F
"
3
2 I
:TriState
BUS
2 I
7 D
:
" ) O> %b '
:
7
2
72 I
IO3(
D
^ '
7 i
$
' `
F(
72 I %
) + )
$ h " 4$
72 I
7 D '
:
" $ 7
(
F( " $ '$
$P
> , "
7 ("
`
.
Output Y Output Y Input A Input A Control C Control C Y=A c=1 Y=High Impedance c=Ø " z 5 3 %b { > 2 I, )
Bus
! D , ) F
"
3
2 I
:
TriState BUS
1" 2 I ! D , ) F ` % " + Bus ' : ( J 3 , ' I " ) F 2 I & b " 2 I 5 " ` , & " 1_ " 3 5 & 7 D , 'P 3 5 _I2 " % $ 3 % + " 5 2 I ` , ) F Decoder ( I +Bus line for bit 0
A0 A0 B0 B0 C0 C0 D0 D0 2x4 2x4 Decoder Decoder Enable S0 S0 S1 S1
} $
! >,
(Micro Operation)
! >,
&
)
,
) +
&
$ ">
,
:
.1
$
7 "#
:
` ,
7 >O3
7 "#
"
$
*
$$ '
.
.2
' " I
:
) + ) :E )
' " I 7 >
"#
$ !
=
$& '
.
.3
' 3$
:
& 7 "
P
7 >
! "#
& ' = $
.
.4
Shift
:
) + ) :E )
7F +
>
! "#
$& ' = $
.
)O@ > " P ) )O@ > QR! " M -& ." " " , .
" #O " & ' ( * 8! S %& T " *+U & , )O@ > U " , $% & )O@ > .
" . %9" T " )O@ > ) - !" ' # '# ;& ' ! " " , -& ." " #5 $% & .
Memory Address Register ) MAR AR ( " , -& .* & .
' V& " , -& - !" )O@ > - 5 MAR
T " W R1 ' T " + )
"# 4 -& #5 ." 6 ! " & )O@ > . AR Memory unit Read Write Data in Data out M
)O@ > / * 1
- L, )
/ )O@ > )
/ * 1 ' #
" , -& ) , # /
:
"# JK -& C : # /
X @
Y& C : ' #
:
–
' V& MAR " , -& ." !#@ T " W R1 ' .–
+M ! Read (= 1) " , -& ." !#@ )O@ > *> ) .–
"# 4 -& #5 ." " W R1 ' .*, $% & T " ' V& .
–
) . 4 J4 / * & R1 " , -& +& . R1 M[MAR])O@ > "
,
- L, )
/ )O@ > " )
, ' #
" , -& ) , # / ) ,
:
"# JK -& C : # /
X @
Y& C : ' #
:
–
' V& MAR " , -& ." !#@ T " W R1 ' .–
+M ! write (= 1) " , -& ." !#@ )O@ > *> ) .–
* & R1 " , -& +& . 4 J4 ) .–
" , -& +& )O@ > " .*, $% & V& ) * & .
'
# ' #&
A B AR DR(AD) A constant ABUS R1, R2 ABUS AR DR M[R] M DR M M DR / B ) A 8 5 AD / DR ) AR ) '#+ 8 * & A / & R1 ) . 4 J4 / . 4 J4 ) R2 T " ." " .*, $% & )O5 > ) R ' ( ) 5 - 4 M[AR] " -& ) . .*, $% & ) / AR ) DR / DR .*, $% & ) ) ARC D" R3 R1 + R2 < = R3 R1 - R2 E 1&* R2 R2’ R2 , 6" R2 R2’+ 1 R2 - 6" R3 R1 + R2’+ 1 E 1&* R1 R1 + 1 ) , F R1 R1 - 1 ) , F ;
*
) K - > '
:
–
B (–
Z #6–
*> [ @–
*> [$ " ) $$ 6
$ >, " & 6 > 7 " , $ 6 & = $ . % , n = 6 ) $$ FA + ' : . " % ` & , & R1 R2 " $ ' ' : !$b , ` & + $ * . B3 A3 B2 A2 B1 A1 B0 A0 FA FA M S0 S1 S2 S3 C0 C4 C3 FA C2 FA C1 M=0 S=A+B M=Z S=A-B'$ )" S1 S0 0 1 2 3 4x1 MUX X0 Y0 C0 C1 D0 FA S1 S0 0 1 2 3 4x1 MUX X1 Y1 C1 C2 D1 FA S1 S0 0 1 2 3 4x1 MUX X2 Y2 C2 C3 D2 FA S1 S0 0 1 2 3 4x1 MUX X3 Y3 C3 C4 D3 FA Cout A0 B0 A1 B1 A2 B2 A3 B3 0 1 S0 S1 Cin S1 S0 Cin Y Output 0 0 0 B D = A + B Add
0 0 1 B D = A + B + 1 Add with carry
0 1 0 B’ D = A + B’ Subtract with borrow
0 1 1 B’ D = A + B’+ 1 Subtract 1 0 0 0 D = A Transfer A 1 0 1 0 D = A + 1 Increment A 1 1 0 1 D = A - 1 Decrement A 1 1 1 1 D = A Transfer A < = %' < = G15 %' E 1&* E 1&* A F A F ; A A
- R+& ' ' - " " ) *+ - - R+& ' *+ " -& C : ' 8 / ' ) , .
–
= ) 9" ) *++ -& ." " 8 ' - R+& bit-wise *+ 4 -& . - 5 - 8 " HY& not -& C : " , -& C : & ? ) 8 # ' " , .–
- ' L !" ' # * -& - R+& / ) bit manipulations ( " ) ." " . - ? ) 16 # ^ & " ' * -& - R+& 6 &" , C : - " " . 0 0 0 0 0 m 1 1 1 0 1 0 0 0 m 1 1 1 1 0 0 0 1 m 0 1 1 1 1 0 1 0 m 1 0 1 A B F0 F1 F2 m F13 F14 F15
- R+& ' 8 9 • !" % ': -16 J$ K" !" 2 1'M " n -1; J 1D* !" C* " 1'M " . 2 2n • - - 1'M " - 1 O )= 0 0 0 0 F0 = 0 F 0 Clear 0 0 0 1 F1 = xy F A B AND 0 0 1 0 F2 = xy' F A B’ 0 0 1 1 F3 = x F A Transfer A 0 1 0 0 F4 = x'y F A’ B 0 1 0 1 F5 = y F B Transfer B 0 1 1 0 F6 = x y F A B Exclusive-OR 0 1 1 1 F7 = x + y F A B OR 1 0 0 0 F8 = (x + y)' F (A B)’ NOR 1 0 0 1 F9 = (x y)' F (A B)’ Exclusive-NOR 1 0 1 0 F10 = y' F B’ Complement B 1 0 1 1 F11 = x + y' F A B 1 1 0 0 F12 = x' F A’ Complement A 1 1 0 1 F13 = x' + y F A’ B 1 1 1 0 F14 = (xy)' F (A B)’ NAND 1 1 1 1 F15 = 1 F all 1's Set to all 1's
Boolean Function Micro-Operations Name x 0 0 1 1 y 0 1 0 1
,5 7:
, )
! > ,
' 3$
Ei S1 S0 Ai Bi S0 S1 MUX 0 1 2 0 0 0 1 1 0 1 1 S1 S0 OutPut B A E = B A E = B A E = A E = 3- R+& ' =
' "#
4 #5 ." 6 ! " & - ' L !" ' # *+ -& - R+& ' * # . # ^ ' # -+D / . %9" 8 5 ' 8 . " ." " * + _#@ A *+ . B V& # ^ ' # * -& A " ) . – Selective-set A A + B – Selective-complement A A B – Selective-clear A A • B’ – Mask (Delete) A A • B – Clear A A B – Insert A (A • B) + C – Compare A A B – . . . rH T s rH T L t rH T u s ) v^ ( u w J V
- %
"#
- %
"#
"
B
/ -
8
D ' #
A
#5 )
"# 4 -& #5 ." 6 ! " & * ,
8!
.
1 1 0 0
A
t1 0 1 0
B
1 1 1 0
A
t+1(A
A + B)
" ) -
8 ' / )
B
" D& ' 8 * "
* &
" =
A
" , -&
.
' 8 )
A
*+ & -& # ^
*
.
- %
"#
L&
- %
"#
L& "
B
/ -
8
D ' #
A
#5 )
"# 4 -& #5 ." 6 ! " & * ,
8!
.
1 1 0 0
A
t1 0 1 0
B
0 1 1 0
A
t+1(A
A
B)
" ) -
8 ' / )
B
" D& ' 8 * "
* &
" =
A
L&
)
NOT
(
" , -&
.
' 8 )
A
*
*+ & -& # ^
.
- %
"# ` K
- % "# L& " B / - 8 D ' # A 8! #5 ) ` K ) #6P ( "# 4 -& #5 ." 6 ! " & * , . 1 1 0 0 At 1 0 1 0 B 0 1 0 0 At+1 (A A B’) " ) - 8 ' / ) B " = " D& ' 8 * " * & A " , -& #6P . ' 8 ) A *+ & -& # ^ * ."#
! &
"# ! & " B / - 8 D ' # A 8! #5 ) ` K ) #6P ( "# 4 -& #5 ." 6 ! " & * , . 1 1 0 0 At 1 0 1 0 B 1 0 0 0 At+1 (A A B) " ) - 8 ' / ) B " = " D& ' 8 * " #6P * & A " , -& #6P . ' 8 ) A *+ & -& # ^ * ."# ` K
' 8 #4 "# ` K " A B " " D& 8 " ) & A* & -& # ^ * P # a " " , -& #6P . 1 1 0 0 At 1 0 1 0 B 0 1 1 0 At+1 (A A B)
86 , '
" " " ( S %& 86 , b )! : " ' ! " :–
- R+& 86 ,–
- 1#U 86 ,–
- > 86 , 8! #! '" 8 " 86 , 6 . Serial input • 8! ) 86 , : g9 " 7F + 7 > Serial input- R+& 86 ,
8! #6P '"
8 - R+& 86 , "
.
8! ) - R+& 86 ,
:
cU ) - R+& 86 ,
:
" , -& ." 6 ! # / GH /
/ "
:
–
shl cU ) - R+& 86 ,–
shr 8! ) - R+& 86 ,–
Y& :o
R2 shr R2o
R3 shl R3 0 0- 1#U 86 ,
#M " 8 ! / -( #1 8 #! '" 8 - 1#U 86 , " 8! . 8! ) - 1#U 86 , : cU ) - 1#U 86 , : " , -& ." 6 ! # / GH / / " :–
cil cU ) - 1#U 86 ,–
cir 8! ) - 1#U 86 ,–
Y& : o R2 cir R2 o R3 cil R3- > 86 ,
8! " -+D& " 8&H " * ' # - > 86 , . " " "* cU ) - > 86 , 2 *+ -& e#f . # " "* 8! ) - > 86 , 2 *+ -& . 86 , C M+ ) ) 8! - > 86 , -4g # =& ) e#f ( *+ -& h6> 8&H . 8! ) - > 86 , : cU ) - > 86 , : 0 sign bit sign bit- > 86 ,
)9 & * cU ) 86 , " #! ) overflow ( " , U . 0 V 1PQ %' - ) " %&'( 5 1 %? - - R 1? >)( & " ." , -& ." 6 ! # / GH /
/ "
:
–
ashl cU ) - > 86 ,–
ashr 8! ) - > 86 ,–
Y& : o R2 ashr R2 o R3 ashl R3 sign bit86 , ' @ 8%! '/ ! ." K
S 0 1 H0 MUX S 0 1 H1 MUX S 0 1 H2 MUX S 0 1 H3 MUXSelect(A' 2(U)%?)ST %&'(%&'(01 Serial input (IR) A0 A1 A2 A3 Serial input (IL)
ALU
$
7 > $ D
& P$
"
%
G & =
' " I I ` ,
' 3$
" 7 > = $
"
) F
8 :
&
.
%
I
ALU
)
$
+
.
` = $
"
> ,
" "
'
:
ALU
'
: ) + (
ALU
"
(
(
+
.
'"
ALU
$
!
3
_$
>
= $
+ m:+
&
.
3
$
7F +
>
ALU
I 3
,
7 ( "
+ = $
*
.
- > - R+& 86 ,
*>
S3 S2 S1 S0 Cin y z { |
0 0 0 0 0 F = A Transfer A 0 0 0 0 1 F = A + 1 Increment A 0 0 0 1 0 F = A + B Addition
0 0 0 1 1 F = A + B + 1 Add with carry
0 0 1 0 0 F = A + B’ Subtract with borrow 0 0 1 0 1 F = A + B’+ 1 Subtraction 0 0 1 1 0 F = A - 1 Decrement A 0 0 1 1 1 F = A TransferA 0 1 0 0 X F = A B AND 0 1 0 1 X F = A B OR 0 1 1 0 X F = A B XOR 0 1 1 1 X F = A’ Complement A 1 0 X X X F = shr A Shift right A into F 1 1 X X X F = shl A Shift left A into F
rH rV C C 4 x 1 ty r } Select 0 1 2 3 F S3 S2 S1 S0 B A i A D A E shr shl i+1 i i i i+1 i-1 i i