Tải bản đầy đủ (.pdf) (18 trang)

Slide kiến trúc máy tính nâng cao chương 1 đến chương 3

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.57 MB, 18 trang )

11/03/2012

KI N TRÚC MÁY TÍNH NÂNG CAO

M c đích & n i dung môn h!c

Thời gian:

Nhằm trang bị cho sinh viên các kiến thức chuyên sâu về
kiến trúc máy tính.
Kiến trúc vi lệnh và tổ chức máy tính
Thiết kế và tổ chức bộ nhớ
Kỹ thuật ống dẫn
Máy tính song song, Máy tính SIMD, Máy tính MIMD
Kiến trúc hệ thống bộ nhớ chia sẻ
Kiến trúc hệ thống truyền thơng điệp
Mơ hình trừu tượng
Lập trình song song trong máy ảo song song

– Lý Thuyết: 30 tiết (2TC)
– Thực hành: 30 tiết (1TC)

Điểm số:
– Điểm thực hành + bài thu hoạch: 20+30=50%
– Điểm thi cuối kỳ: 50%

Khoa Kỹ thuật máy tính
GV: TS. Vũ Đức Lung
Email:

Vũ Đ c Lung



1

Khoa KTMT

Vũ Đ c Lung

2

ng

.c
om

Khoa KTMT

1. Vũ Đ c Lung. Giáo trình ki n trúc máy tính. Trư$ng ĐH Cơng ngh( thơng
tin, ĐHQG TP.HCM, 2009..

an

2. H. El/Rewini. Advanced Computer Architecture and Parallel Processing,
Wiley, 2005

N i dung môn h!c

co

Tài liệu học tập & tham khảo


Chương 1 : Vi tác vụ và tổ chức máy tính
Chương 2 : Hệ thống máy tính đơn giản trên NIOS II
Chương 3 : Hệ Thống bộ nhớ
Chương 4 : Kỹ thuật ống dẫn

4. Patterson, D. A., and J. L. Hennessy. Computer Organization and Design:
The Hardware/Software Interface, 3rd ed. San Mateo, CA: Morgan Kaufman,
2004
5. Kai Hwang, Advanced Computer Architecture : Parallelism, Scalability,
Programmability, McGraw/Hill, 1993.

Chương 5 : Máy tính song song

Chương 7: Kiến trúc hệ thống truyền thơng điệp
Chương 8: Mơ hình trừu tượng
Chương 9: Lập trình song song trong máy ảo song song

3

Khoa KTMT

Vũ Đ c Lung

4

u

Vũ Đ c Lung

Chương 6 : Kiến trúc hệ thống bộ nhớ chia sẻ


cu

Khoa KTMT

du
o

Tài li(u: />
ng

th

3. Andrew S. Tanenbaum. Structured Computer Organization, 5/th edition,
Prentice Hall, 2005

1
CuuDuongThanCong.com

/>

11/03/2012

M c tiêu
• Hi#u ý nghĩa c'a “ngơn ng*” vi tác v
• Hi#u c,u trúc c'a ALU (m2ch s4 h5c +
m2ch lu8n lý + m2ch d:ch t h;p)
• Hi#u c,u t2o và cách th c ho2t đ@ng (A
m c vi trình) c'a m@t máy tính cơ bDn
• Hi#u cách th c máy tính cơ bDn thi hành

chu kỳ máy (A m c vi trình)

Chương 1
Vi tác v và t ch c máy tính

KTMT

1

UIT

KTMT

2

ng

.c
om

UIT

Vi tác v thanh ghi

1.1 Vi tác v thanh ghi

du
o

an


ng

th

Có 4 loại vi tác vụ chính:
1. Vi tác vụ ghi chuyển thông tin nhị phân
2. Vi tác vụ số học
3. Vi tác vụ luận lý
4. Vi tác vụ dịch

co

Vi tác vụ là các tác vụ hay công việc xử lý dữ
liệu thực hiện trên các thanh ghi

KTMT

R2 ← R1
• Chuy#n n@i dung thanh ghi R1 sang thanh ghi
R2 (R1 khơng đ i) dùng hàm điQu khi#n (khi
hàm có giá tr: 1):
P: R2 ← R1
hoRc If (P=1) then (R2 ← R1)
S0S1: R2 ← R1

3

UIT


KTMT

4

cu

u

UIT

• Tên thanh ghi: ch* hoa (có th# có kèm s4)
PC, MAR, R1, R2, O
• Chuy#n n@i dung thanh ghi R1 sang thanh ghi
R2 (R1 không đ i):

Vi tác v thanh ghi
M2ch
điQu
khi#n

P

Load

Vi tác v thanh ghi
Ký hiYu

Clock

R2


Ch* hoa (hoRc s4 theo
sau)
n

Di[n giDi
Tên thanh ghi

D,u ngoRc sau tên thanh M@t ph\n thanh ghi
ghi

R2(0 7): (bit t] 0 đ^n 7
c'a thanh ghi R2)
R2(L): các bit th,p c'a
thanh ghi R2

Mũi tên

TruyQn d* liYu

R2← R1

D,u phay

Tác v xDy ra đcng thdi
(trong cùng m@t chuy#n
ti^p đcng hc)

R2← R1, R1← R2


R1

M2ch
điQu
khi#n

S0
Load

Clock

R2

Ví d
PC,MAR,R1,O

S1
n

R1
UIT

KTMT

5

UIT

KTMT


6

1
CuuDuongThanCong.com

/>

11/03/2012

1.2. TruyQn d* liYu qua bus

TruyQn d* liYu qua bus 3 tr2ng thái

S
0
S
1

4x1
MUX

4x1
MUX
3

2

1

0


3

2

1

0

4x1
MUX

4x1
MUX

3

2

1

0

3

2

1

0


3

2

1

0

3

2

1

0

3

2

1

0

3

D

C


B

2

1

0

A

2

1

3

0

2

1

0

3

2

1


0

3

2

1

0

3

S
7

UIT

KTMT

1

0

2x4
Decoder
8

0
S


KTMT

2

1

E

ng

.c
om

UIT

3

1.3. Vi tác v s4 h5c

du
o

an

ng

th

• DR ← M[AR]

• M[AR] ← DR
• M[AR] : ơ nhk có đ:a chn đư;c lưu trong
thanh ghi AR.

co

TruyQn qua b@ nhk

KTMT

9

Ý nghĩa

UIT

KTMT

10

cu

u

UIT

Ký hiYu
R3 ← R1 + R2
R3 ← R1 – R2
R2 ← R2

R2 ← R2 + 1
R3 ← R1 + R2 + 1
R1 ← R1 +1
R1 ← R1 q1

M2ch s4 h5c

M2ch s4 h5c
B3

S1

S0

Cin

Y

D=A+Y+Cin

A3

B2

A2

B1

A1


B0

A0 S S
0 1

Di[n giDi

0

0

0

B

D=A+ B

C@ng

0

0

1

B

D=A+ B + 1

C@ng vki nhk

Tr] có mư;n

0

1

0

B’

D=A+ B

0

1

1

B’

D=A+ B + 1

Tr]

1

0

0


0

D=A

Chuy#n A

1

0

1

0

D=A+ 1

Tăng A

1

1

0

1

D=A–1

GiDm A


1

1

1

1

D=A

Chuy#n A

1 0

1 0

3 2 1 0

1 0

3 2 1 0

S0 S1

X3

Y3

1 0


3 2 1 0

X2

X1

C2

C2

X0

Y0

FA

C3

S0 S1

4x1
MUX

Y1

FA
C3

3 2 1 0


S0 S1

4x1
MUX

Y2

FA
C4

S0 S1

4x1
MUX

4x1
MUX

Cin

FA
C1

C0

C1

Cout
UIT


KTMT

11

UIT

D3

D2

KTMT

D1

D0

12

2
CuuDuongThanCong.com

/>

11/03/2012

1.4. Vi tác v lu8n lý

M2ch lu8n lý

Hàm


Ký hiệu

Vi tác vụ

F0 = 0

F←0

xóa 0

F1 = xy

F←A∧B

AND

F2 = x.y

F←A∧B

F3 = x

F←A

F4 = x.y

F←A∧B

F5 = y


F←B

F6 = x ⊕ y

F←A⊕B

S0
S1

MUX
4x1

S1

Ai

0

Bi

truyền A

Ei
1
2

F7 = x + y

F←A∨B


OR

F8 = (x + y)

F←A∨B

NOR

F9 = x ⊕ y

F←A⊕B

NXOR

F10 = y

F←B

F11 = x + y

F←A∨B

F12 = x

F←A

F13 = x + y

F←A∨B


F14 = xy

F←A∧B

NAND

F15 = 1

F ← 1…1

Gán 1

S1 S0

3

KTMT

13

UIT

Đ\u ra

phép tính

0

0


E=A∧B

AND

0

1

E=A∨B

OR

1

0

E=A⊕B

XOR

1

1

E=A

Inverter

KTMT


14

ng

.c
om

UIT

S0

1.5. Vi tác v d:ch

co

Ký hi u

M2ch d:ch t h;p 4 bit

A3

Ý nghĩa
D:ch trái R

R ← shr R

D:ch phDi R

R ← cil R


D:ch vòng trái R

R ← cir R

D:ch vòng phDi R

R ← ashl R

D:ch trái s4 h5c R

R ← ashr R

D:ch phDi s4 h5c R

du
o
KTMT

S

H0 H1 H2 H3

0

IR

A0

A1


A2

1

A1

A2

A3

IL

IR

S
1

0
2x1
MUX

H3

15

A0

S


1

0

S

2x1
MUX

H2

UIT

1

0

S

1

2x1
MUX

H1

0

S


2x1
MUX

H0

KTMT

16

cu

u

UIT

A1

IL

ng

th

an

R ← shl R

A2

Các tác v c'a ALU


1.6. ALU (Arithmetic and Logic Unit)
Ai+1

Aiq1

Ai

M"t t$ng m&ch
lu,n lý

shr

S0 S1

Bi

Ci+1

M"t t$ng m&ch
s) h*c

Ei

S2 S3

S3
0
0
0

0
0
0
0
0
0
0
0
0
1
1

Ci

Di

shl
3 2 1 0

S0 S1

4x1
MUX
UIT

KTMT

17

UIT


Chọn tác vụ
S2 S1 S0 Cin
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1

0
0
1
1
1
1
0
0
x
1
0
1
x
1
1
0
x
1
1
1
x
0
x
x
x
1
x
x
x


Tác vụ

Chức năng

F=A
F=A+1
F=A+B
F=A+B +1
F=A+B
F=A+B +1
F=A– 1
F=A
F=A∧B
F=A∨B
F=A⊕ B
F=A
F = shr A
F = shl A

Chuyển A
Tăng A
Phép cộng
Cộng với nhớ
Trừ có mượn
Phép trừ
Giảm
Chuyển A
AND
OR
XOR

Inverter
Dịch phải A
Dịch trái A

KTMT

18

3
CuuDuongThanCong.com

/>

11/03/2012

Mã LYnh

2. T ch c máy tính

• Mã lYnh là nhóm bit ra lYnh cho máy tính
th|c hiYn m@t tác v nào đó
• Mã lYnh gcm nhiQu ph\n: Mã tác v , đ:a
chn b@ nhk, các bit chn th: khácO

KTMT

19

UIT


KTMT

20

ng

.c
om

UIT

Đ:a chn gián ti^p

12

0

11

15

Chương trình
(mã l nh)

AC (accumulator)

4096 t]

14


12

I

Mã tác v0

22

0

du
o
KTMT

21

Đ2a ch3 tác t)

22

457

457

1

ADD

457
1350


457
1350

UIT

+

+

AC

AC

KTMT

22

KTMT

24

cu

u

16 bit

0


11

ADD

ng

D: li u

an

Đ2a ch3 tác t)

th

Mã tác v0

UIT

co

T ch c chương trình
15

T8p thanh ghi

hiYu

Bit

Tên


Ch c năng

DR

16

Th.ghi d* liYu

Lưu tác t4

AR

12

Th.ghi đ:a chn

Lưu đ:a chn b@ nhk

AC

16

Th.ghi tích lũy

Th.ghi x} lý

IR

16


Th.ghi lYnh

Lưu mã lYnh k^ ti^p

PC

12

Th.ghi đ^m chương trình

Lưu đ:a chn lYnh k^

TR

16

Th.ghi t2m

Lưu d* liYu t2m

INPR

8

Th.ghi nh8p

Lưu ký t| nh8p

OUTR


8

Th.ghi xu,t

Lưu ký t| xu,t

UIT

KTMT

Thanh
ghi và
bus

23

UIT

4
CuuDuongThanCong.com

/>

11/03/2012

thanh ghi chn
có ngõ nh8p
LD (IR và
OUTR) tương

đương thanh
ghi n2p song
song

thanh ghi có
các ngõ nh8p
LD, INR và
CLR
tương
đương m2ch
đ^m n2p song
song,
xóa
đcng b@

KTMT

25

UIT

KTMT

26

ng

.c
om


UIT

Mã tác v0

Đ:nh thdi và điQu khi#n

0

11

Mã tác v0
Đ2a ch3 tác t)

12

0

11

Mã tác v0

Tác v0 thanh ghi

12

0

11

0


7

D0
O
D7

du
o

Tín hiYu điQu
khi#n

O
T0
15

0

M&ch giBi mã
4x16

INR (increment)
M&ch đJm
tu$n tK 4 bit

CLR (clear)
Clock

27


UIT

KTMT

28

cu

u

KTMT

Các cDng
điFu khiHn

T15

Mã tác v0

Tác v0 nh,p/xuAt

UIT

M&ch giBi mã
3x8

ng

15


15

an

15

12

th

I

14

co

T8p lYnh
15

M4i quan hY
thdi gian gi*a
các thdi hiYu

3. Quy trình th|c hiYn lYnh

UIT

KTMT


29

UIT

KTMT

30

5
CuuDuongThanCong.com

/>

11/03/2012

Tìm và giBi
mã l nh

Chu kỳ l nh
1. Tìm lYnh

T0: AR

2. GiDi mã lYnh

T1:IR

M[AR]

3. Đ5c đ:a chn hiYu d ng t] b@ nhk n^u lYnh có

đ:a chn gián ti^p

,PC

PC+1

PC

T2:

4. Th|c hiYn lYnh

KTMT

31

UIT

KTMT

32

ng

.c
om

UIT

Chu kỳ lYnh t ng quát

T0

D7

=1 (gián ti^p)

T3

T3
Thi hành tác v tham
chi^u thanh ghi
SC ← 0

=0 (tr|c ti^p)

I

ng

I

T3

AR ← M[AR]

T4
Thi hành tác v tham chi^u b@ nhk
SC ← 0
33


du
o

Thi hành tác v
nh8p/xu,t
SC ← 0

T2

=0 (tham chi^u b@ nhk)

=0 (thanh ghi)

=1 (nh8p xu,t)

an

GiDi mã tác v trong IR(12q14)
AR ← IR(0q11), I ← IR(15)
=1 (thanh ghi hoRc nh8p/xu,t)

KTMT

DiOn giBi

Vi tác v

r = D7 I T3 , Bi = IR (i )

r


SC ← 0

Xóa SC

CLA

rB11

AC ← 0

Xóa AC

CLE

rB10

E←0

Xóa E

CMA

rB9

AC ← AC

Bù AC

CME


rB8

E←E

Bù E

CIR

rB7

AC ← shr AC, AC(15) ← E, E ← AC(0)

Vòng phDi

CIL

rB6

AC ← shl AC, AC(0) ← E, E ← AC(15)

Vòng trái

INC

rB5

AC ← AC + 1

Tăng AC


SPA

rB4

if AC(15)=0 then PC ← PC + 1

NhDy n^u dương

SNA

rB3

if AC(15)=1 then PC ← PC + 1

NhDy n^u âm

SZA

rB2

if AC=0 then PC ← PC + 1

NhDy n^u AC=0

SZE

rB1

if E=0 then PC ← PC + 1


NhDy n^u E=0

HLT

rB0

S←0

D]ng

UIT

KTMT

34

cu

u

UIT

LYnh thanh ghi


lYnh

T1


IR ← M[AR], PC ← PC + 1

th

AR ← PC

co

Start
SC ← 0

LYnh b@ nhk
Mã lYnh

LYnh nh8p xu,t

Vi tác v

AND

D0

AC ← AC ^ M[AR]

ADD

D1

AC ← AC + M[AR], E ← Cout


LDA

D2

AC ← M[AR]


lYnh

DiOn giBi

Vi tác v
P

Xóa SC, p=D7 I T3

SC ← 0

INP

pB11 AC(0q7) ← INPR, FGI ← 0

Nh8p ký t|

OUT

pB10 OUTR ← AC(0q7), FGO ← 0

Xu,t ký t|


STA

D3

M[AR] ← AC

BUN

D4

PC ← AR

BSA

D5

M[AR] ← PC, PC ← AR + 1

SKI

pB9

If (FGI=1) then PC ← PC + 1

NhDy theo cd nh8p

ISZ

D6


If M[AR] + 1 = 0 then PC ← PC + 1

SKO

pB8

If (FGI=0) then PC ← PC + 1

NhDy theo cd xu,t

ION

pB7

IEN ← 1

Cho phép ng„t

IOF

pB6

IEN ← 0

C,m ng„t

UIT

KTMT


35

UIT

KTMT

36

6
CuuDuongThanCong.com

/>

11/03/2012

C,u hình nh8p xu,t

Câu h…i và bài t8p
FGO

Máy in

Giao tiJp
thiJt b2 xuAt

OUTR

AC

Bàn phím


Giao tiJp
thiJt b2 nh,p

INPR

FGI

KTMT

37

UIT

KTMT

38

cu

u

du
o

ng

th

an


co

ng

.c
om

UIT

7
CuuDuongThanCong.com

/>

11/03/2012

M C ĐÍCH
Tổng quan thiết kế hệ thống
Kiến trúc bộ xử lý
Mơ hình lập trình
Tạo và sử dụng một hệ thống máy tính đơn giản được xây
dựng trên nền bộ xử lý Nios II của hãng Altera.
Ứng dụng hệ thống tạo ra viết chương trình với lập trình
assembly cho Nios II.
Sử dụng Quartus II và phần mềm SOPC Builder được tích hợp
bên trong Quartus II.
Biên dịch chương trình, nạp và chạy trên kit DE2 thông qua
software Altera Debug Client.


Chương 02
HỆ THỐNG MÁY TÍNH ĐƠN GIẢN
TRÊN NIOS II

Vũ Đ c Lung

1

Khoa KTMT

Vũ Đ c Lung

2

ng

.c
om

Khoa KTMT

T NG QUAN THI T K H TH NG

Vũ Đ c Lung

co
an
3

ADD Rd, Rs, Rt


Rd := Rs + Rt

0

0b15

0b15

ADDI Rd, Rs, Imm

Rd := Rs + SignExt(Imm)

4

0b15

0b15

0b15
Imm

SUB Rd, Rs, Rt

Rd := Rs b Rt

1

0b15


0b15

0b15

SUBI Rd, Rs, Imm

Rd := Rs b SignExt(Imm)

5

0b15

0b15

Imm

AND Rd, Rs, Rt

Rd := Rs

2

0b15

0b15

0b15

OR Rd, Rs, Rt


Rd := Rs

SLT Rd, Rs, Rt

if Rs < Rt then Rd := 1
else Rd := 0

Rt
Rt

3

0b15

0b15

0b15

7

0b15

0b15

0b15

LW Rd, off(Rs)

Rd := M[off + Rs]


8

0b15

0b15

offset

SW Rd, off(Rs)

M[off + Rs] := Rd

C

0b15

0b15

offset

9

0b15

0b15

offset

B


12bbit offset

BNE Rd, Rs, Imm

if Rd != Rs then pc := pc
+ 2 + addr 1

JMP Address

pc := JumpAddress

Khoa KTMT

2

Vũ Đ c Lung

4

cu

u

Khoa KTMT

du
o

ng


th

Phác họa các yêu cầu
Các chức năng hệ thống cung cấp
Lựa chọn công nghệ
Thiết kế Datapath cho từng phần
Đọc hệ thống dưới dạng RTL (Register Transfer Level)
Các phần khác

Simple Instruction Set (RISC)

Create Data Path and some need blocks

Khoa KTMT

Vũ Đ c Lung

Create Sign,Extend and Control Blocks

5

Khoa KTMT

Vũ Đ c Lung

6

1
CuuDuongThanCong.com


/>

11/03/2012

More detail datapath

NIOS II System
Là một users system được thiết kế trên Cyclone II FPGA bằng một công cụ
trên Quartus II, đó là SOPC Builder. Tất nhiên về mặt lí thuyết thì users có thể
tự tạo một system trên FPGA nhưng điều đó sẽ tốn thời gian và cơng sức.
– FPGA “Field programmable Gate Array” thuộc họ PLD (Programmable Logic
Device) hay ASIC lập trình được. Quy trình sản xuất Chip ASIC bằng cách này
gọi là fabless (khơng có nhà máy sản xuất chip) rất phổ biến hiện nay trên thế
giới.
– ASIC (application specific integrated circuit) vi mạch tích hợp chuyên dụng ,
là một vi mạch IC được thiết kế dành cho một ứng dụng cụ thể.

Vũ Đ c Lung

7

Khoa KTMT

Vũ Đ c Lung

8

ng

.c

om

Khoa KTMT

an

Thiết kế ứng dụng b> Thiết kế mạch logic b> Mô phỏng b> Kiểm tra
chức năng codes b> Place & Route b> Làm wafer (silicon) b> Test
prototype (nếu lỗi quay lại sửa bản thiết kế logic) b> Sản xuất hàng loạt
(dạng chip) b> Triển khai ứng dụng trên board.

!

du
o

ng

th

• Nhà sản xuất: Thiết kế platform của FPGA b> Mô phỏng + Kiểm
tra chức năng của platform b> Place & Route b> Làm wafer b> Sản
xuất chíp FPGA hàng loạt + Tool hỗ trợ
• Người sử dụng: Thiết kế ứng dụng b> Thiết kế mạch logic b> Mô
phỏng b> Kiểm tra chức năng code b> Place & Route (theo quy
định của platform) b> Đổ codes lên platform FPGA b> triển khai
ứng dụng trên board

Vũ Đ c Lung


9

FPGA (Field Programable Gate Arrays):
– là một thiết bị bán dẫn bao gồm các khối logic lập trình được gọi là
"Logic Block", và các kết nối khả trình.
– Các khối logic có thể được lập trình để thực hiện các chức năng của các
khối logic cơ bản như AND, XOR, hoặc các chức năng kết hợp phức
tạp hơn như decoder hoặc các phép tính tốn học.
– Trong hầu hết các kiến trúc FPGA, các khối logic cũng bao gồm cả các
phần tử nhớ. Đó có thể là các FlipbFlop hoặc những bộ nhớ hồn chỉnh
hơn.
– Các kết nối khả trình cho phép các khối logic có thể nối với nhau theo
thiết kế của người xây dựng hệ thống, giống như một bảng mạch khả
trình.
– 10 nghìn cho đến vài triệu cổng

Khoa KTMT

Vũ Đ c Lung

10

cu

u

Khoa KTMT

FPGA


co

ASIC vs FPGA

........

IO PAD

IO PAD

LOGIC
BLOCK

LOGIC
BLOCK

LOGIC
BLOCK

........

LOGIC
BLOCK

IO PAD

IO PAD

LOGIC
BLOCK


LOGIC
BLOCK

LOGIC
BLOCK

........

LOGIC
BLOCK

IO PAD

........

........

IP, RAM
ROM

LOGIC
BLOCK

LOGIC
BLOCK

........

IO PAD


IO PAD

IO PAD

........

Vũ Đ c Lung

LOGIC
BLOCK

........








Tập lệnh 32 bit, đường dẫn dữ liệu, không gian địa chỉ.
32 thanh ghi mục đích chung.
32 nguồn ngắt ngồi.
Tập lệnh đơn 32x32, nhân và chia kết quả 32bit.
Tập lệnh dành cho tính toán 64bit và 128bit kết quả của phép nhân.
Tập lệnh dấu chấm động dành cho những thao tác dấu chấm động
chính xác đơn.
– Bộ dịch chuyển lệnh đơn.
– Truy cập vào một loạt các thiết bị ngoại vi onbchip, và giao diện với bộ

nhớ và thiết bị ngoại vi offbchip.
– Module phần cứng hỗ trợ gỡ lỗi cho phép xử lý start, stop, step và truy
dấu dưới sự kiểm soát của mơi trường phát triển tích hợp (IDE).

IO PAD

IO PAD

LOGIC
BLOCK

NIOS II processsor là 1 lõi xử lý mục đích chung RISC cung
cấp:

........

IO PAD

........

IO PAD

IO PAD

Khoa KTMT

Nios II Processor System Basics

........


Ki4n trúc t6ng quát c9a FPGA

IO PAD

11

Khoa KTMT

Vũ Đ c Lung

12

2
CuuDuongThanCong.com

/>

11/03/2012

Nios II Processor System Basics

Nios II Processor System Basics

– Đơn vị quản lý bộ nhớ tùy chọn (MMU) để hỗ trợ hệ điều hành mà yêu cầu
MMUs.
– Đơn vị bảo vệ bộ nhớ tùy chọn (MPU).
– Phần mềm phát triển môi trường dựa trên công cụ GNU C/C++ và Eclipse IDE.
– Tích hợp với Altera's SignalTap® II Embedded Logic Analyzer tạo điều kiện
cho việc phân tích các tập lệnh và dữ liệu thời gian thực cùng với các tín hiệu
trong thiết kế FPGA.

– Hướng dẫn thiết lập kiến trúc (ISA) tương thích trên tất cả các hệ thống xử lý
Nios II.
– Hiệu suất tối đa là 250 DMIPS, hệ thống xử lý Nios II tương đương với một vi
điều khiển hay "máy tính trên một chip" bao gồm một bộ xử lý và một sự kết
hợp của các thiết bị ngoại vi và bộ nhớ trên một chip. Hệ thống xử lý Nios II
bao gồm một bộ xử lý lõi Nios II, một thiết bị ngoại vi onbchip, bộ nhớ onb
chip, và giao diện bộ nhớ offbchip, tất cả được thực thi trên một thiết bị đơn
Altera. Giống như một gia đình vi điều khiển, tất cả các hệ thống xử lý Nios II
sử dụng bao gồm tập lệnh cài đặt và lập trình mơ hình
Vũ Đ c Lung

13

Khoa KTMT

Vũ Đ c Lung

14

ng

.c
om

Khoa KTMT

C<u trúc câu l>nh trong Nios II

C<u trúc câu l>nh trong Nios II


Trong t&t c' các trư*ng h+p 6bit b[5:0] bi2u th3 cho OP code các bít cịn l9i đ2
ch; ra nh<ng thanh ghi,tốn h9ng tr>c ti?p,ho@c OP code mB rCng.

du
o

ng

th

an

co

Lệnh trong Nios II đều dài 32 bít.
Gồm các lệnh ảo được sử dụng trong chương trình ngôn ngữ
Assembler, Assembler thay thế mỗi lệnh ảo bằng một hay
nhiều mã máy.
Có 3 kiểu format lệnh: Ibtype, Rbtype and Jbtype.

Vũ Đ c Lung

15

Khoa KTMT

Vũ Đ c Lung

16


cu

u

Khoa KTMT

C
C
Nios II processor có
32 thanh ghi chức
năng cơ bản.Một số
những thanh ghi này
được dùng cho chức
năng đặc biệt và có
tên riêng biệt được
nhận ra bởi Asembler

Khoa KTMT

Thanh ghi R0 được xem như thanh ghi zero.Nó chứa hằng số
0.Vì vậy việc đọc thanh ghi sẽ trả về giá trị 0 trong khi viết lên
nó thì khơng có kết quả.
Thanh ghi R1 được sử dụng bởi Assembler như một thanh ghi
tạm thời,khơng nên tham chiếu trong chương trình người
dùng.
Thanh ghi R24 và R29 được dùng cho ngoại lệ của tiến trình,
chúng khơng có giá trị trong mode người dùng.
Thanh ghi R25 và R30 được sử dụng dành riêng cho JTAG

Debug mode.
Thanh ghi R27 và R28 được sử dụng để điều khiển stack.
Thanh ghi R31 được sử dụng để giữ địa chỉ trả về khi mà một
subrountine được gọi
Vũ Đ c Lung

17

Khoa KTMT

Vũ Đ c Lung

18

3
CuuDuongThanCong.com

/>

11/03/2012

C
C
Có 6 thanh ghi điều khiển 32 bit. Tên của chúng được nhận ra bởi
Assembler. Những thanh ghi này được sử dụng tự động cho mục đích
điều khiển.Chúng có thể được đọc và ghi bởi các câu lệnh đặc biệt rdctl
và wrctl, chỉ được kích hoạt bởi mode giám sát.Thanh ghi được sử dụng
như sau:

– Thanh ghi ctl0 phản xạ lại trạng thái hoạt động của processor.
• U là bít mode User/Supervisor. U=1: User mode, U=0: Supervisor mode.
• PIE là bít cho phép ngắt processor.Khi PIE=1 processor chấp nhận ngắt
ngoài, PIE=0 processor lờ đi ngắt ngoài.

Vũ Đ c Lung

19

Khoa KTMT

Vũ Đ c Lung

20

ng

.c
om

Khoa KTMT

Thanh ghi ctl1 giữ bản sao của thanh ghi trạng thai strong suốt tiến trình ngoại lệ.
Thanh ghi ctl2 giữ bản sao của thanh ghi trạng thái trong suốt tiến trình debug break.
Thanh ghi ctl3 được dùng để enable riêng lẻ những ngắt ngồi. Mỗi bít tương đương
một trong những ngắt irq0 đến irq31.Giá trị 1 có nghĩa là ngắt đươc enable và 0 là
disable.
Thanh ghi ctl4 cho biết ngắt nào đang pending. Giá trị của bít ctl4 khơng được set
lên 1 nếu ngắt irqk được active và enable.
Thanh ghi ctl5 giữ giá trị nhận dạng duy nhất processor trong hệ thống đa processor.


DEMO
Thiết kế một hệ thống đơn giản

Vũ Đ c Lung

21

Khoa KTMT

Vũ Đ c Lung

22

cu

u

Khoa KTMT

du
o

ng

th

an

co


Xây d@ng Nios System(mAu) dùng SOPC builder
trên Quantus II

ĐDc Thêm
Kiến trúc bộ xử lý chương II “nios II Processor Reference
Handbook”
Mơ hình lập trình chương III
Ứng dụng hệ thống tạo ra viết chương trình với lập trình
assembly cho Nios II.
Sử dụng Quartus II và phần mềm SOPC Builder được tích hợp
bên trong Quartus II.
Biên dịch chương trình, nạp và chạy trên kit DE2 thơng qua
software Altera Debug Client

Khoa KTMT

Vũ Đ c Lung

23

4
CuuDuongThanCong.com

/>

11/03/2012

CHƯƠNG 3: THI T K B


NH

Khái ni m cơ b n

Khái niệm cơ bản
Bộ nhớ Cache
Bộ nhớ trong
Bộ nhớ ảo






Vũ Đ c Lung

1

Thanh ghi
Cache
Bộ nhớ chính
Bộ nhớ thứ cấp

Khoa KTMT

Vũ Đ c Lung

2

ng


.c
om

Khoa KTMT

Các cấp bộ nhớ cơ bản:

Nguyên t c t! ch"c b# nh$

co

Khái ni m cơ b n
Thứ tự thực hiện tìm một item trong bộ nhớ:

Thống kê: 90% thời gian thi hành 10% số lệnh của chương
trình
Nguyên tắc khơng gian:

th

an

– Tìm Item trong bộ nhớ mức cao nhất của các cấp bộ nhớ (xác suất tìm
thấy item trong đó gọi là hit ratio h1, khơng tìm thấy là miss ratio (1
h1))
– Khi khơng tìm thấy thì tìm ở cấp thấp hơn (h2, (1 h2))
– Quá trình tiếp diễn cho đến khi tìm thấy hoặc hết cấp bộ nhớ
– Khi tìm thấy Item sẽ được chuyển cho Bộ xử lý


Nguyên tắc về thời gian:
– Các ô nhớ được hệ thống xử lý thâm nhập có khả năng sẽ được thâm
nhập lại trong tương lai gần. Thông thường chỉ có một số lệnh và một
phần số liệu được thâm nhập nhiều nhất mà thơi. Ví dụ như một lệnh
trong một vịng lặp của chương trình

Vũ Đ c Lung

3

Khoa KTMT

Vũ Đ c Lung

4

cu

u

Khoa KTMT

du
o

ng

Giả sử Các cấp bộ nhớ có 3 cấp. Thời gian truy cập bộ nhớ
trung bình được tính:
tav = h1*t1 + (1 h1)*[t1+h2*t2+(1 h2)*(t2+t3)]

= t1 + (1 h1)*[t2 + (1 h2)*t3]

– Khi bộ xử lý thâm nhập vào ơ nhớ nào đó => nhiều khả năng sẽ thâm
nhập vào những ơ nhớ có địa chỉ kế tiếp trong thời gian sau đó

Cache Memory

Cache Memory (2)
Ảnh hưởng của nguyên lý lân cận thời gian

a small highWspeed memory that is near the CPU
Thành công cache (cache hit)
Thất bại cache (cache miss)
Tỷ số thành công cache hc(cache hit ratio)
Tỷ số thất bại cache (1 hc) (cache miss ratio)

tav =

ntc + tm
t
= tc + m
n
n

Ảnh hưởng của nguyên lý lân cận không gian

tav =

mtc + tm
t

= tc + m
m
m

Ảnh hưởng tổ hợp của hai nguyên lý
(
tav =
Khoa KTMT

Vũ Đ c Lung

5

Khoa KTMT

mtc + tm
t
) + ( n − 1)tc tc + m + (n − 1)tc
t
m
m
=
= tc + m
n
n
nm
Vũ Đ c Lung

6


1
CuuDuongThanCong.com

/>

11/03/2012

T! ch"c b# nh$ cache (0)

T! ch"c b# nh$ cache (1)
Phải để một khối bộ nhớ vào chỗ nào của cache (sắp xếp khối)?
Có 3 kỹ thuật tổ chức :
– Kiểu tương ứng trực tiếp (Direct Mapping)
– Kiểu hoàn toàn phối hợp (Fully Associative Mapping)
– Kiểu phối hợp theo tập hợp (Set – Associative Mapping)

Dựa trên hai khía cạnh:
– Cách đặt vào cache một khối nhớ từ bộ nhớ trong
– Cách thay thế một khối cache (khi cache đầy)

Vũ Đ c Lung

7

Khoa KTMT

Vũ Đ c Lung

8


ng

.c
om

Khoa KTMT

T! ch"c b# nh$ cache (3)

co

T! ch"c b# nh$ cache (2)
Kiểu tương ứng trực tiếp

Kiểu phối hợp theo tập hợp: cache bao gồm các tập hợp của các khối

– Nếu mỗi khối bộ nhớ chỉ có một vị trí đặt khối duy nhất trong cache
được xác định theo cơng thức:

an

K= i mod n

th

Trong đó: K: vị trí khối đặt trong cache
i: số thứ tự của khối trong bộ nhớ trong
n: số khối của cache

cache. Mỗi tập hợp của các khối cache chứa số khối như nhau. Một khối

của bộ nhớ trong có thể được đặt vào một số vị trí khối giới hạn trong tập
hợp được xác định bởi công thức: K= i mod s
Trong đó:
K: vị trí khối đặt trong cache
i: số thứ tự của khối trong bộ nhớ trong
s: số lượng tập hợp trong cache.

du
o

ng

Kiểu hoàn toàn phối hợp: Một khối trong bộ nhớ trong có thể được
đặt vào vị trí bất kỳ trong cache.

Vũ Đ c Lung

9

Khoa KTMT

Vũ Đ c Lung

10

cu

u

Khoa KTMT


T! ch"c b# nh$ cache (4)

T! ch"c b# nh$ cache (5)
Kiểu tương ứng trực tiếp:

Ví dụ 1:
Bộ nhớ trong có
32 khối, cache
có 8 khối, mỗi
khối gồm 32
byte, khối thứ
12 của bộ nhớ
trong được đưa
vào cache

Khoa KTMT

Ví dụ 2: Main memory: 4K blocks
Cache : 128 blocks
Block size: 16 words
Ánh xạ khối bộ nhớ trong vào khối cache

Vũ Đ c Lung

11

Khoa KTMT

Vũ Đ c Lung


12

2
CuuDuongThanCong.com

/>

11/03/2012

T! ch"c b# nh$ cache (6)

T! ch"c b# nh$ cache (7)
Kiểu tương ứng trực tiếp:

Địa chỉ mà bộ xử lý đưa ra có thể phân tích thành hai thành
phần: phần nhận dạng số thứ tự khối và phần xác định vị trí từ
cần đọc trong khối.
Căn cứ vào số từ trong một khối bộ nhớ mà số bit trong trường
địa chỉ sẽ xác định vị trí từ cần đọc trong khối.
Phần nhận dạng số thứ tự khối sẽ khác nhau tuỳ thuộc vào
cách xếp đặt khối, trường chỉ số khối được so sánh với nhãn
của cache để xác định khối trong cache.

Vũ Đ c Lung

MMU diễn giải địa chỉ phát ra từ CPU:
– Địa chỉ từ cần đọc trong khối (Word field) = log2B, B – kích thước khối
theo từ
– Chỉ số khối cache ( Block field) = log2N, NWkích thước cache theo block

– Nhãn (Tag field) = log2(M/N), MWkích thước bộ nhớ trong theo khối
– Số bit trong trường địa chỉ bộ nhớ trong = log2(B.M)

13

Khoa KTMT

Vũ Đ c Lung

14

ng

.c
om

Khoa KTMT

– Ưu điểm: đơn giản
– Nhược điểm: không hiệu quả sử dụng cache

T! ch"c b# nh$ cache (8)

T! ch"c b# nh$ cache (9)

VD: Xét trường hợp bộ nhớ trong chứa 4K khối, bộ nhớ cache chứa 128 khối và mối

2

an


khối có kích thước 16 từ nhớ.

co

Q trình phân tích địa chỉ và trả lời yêu cầu từ CPU

th

3

Vũ Đ c Lung

15

Khoa KTMT

4

Vũ Đ c Lung

16

cu

u

Khoa KTMT

du

o

ng

1

T! ch"c b# nh$ cache (10)

T! ch"c b# nh$ cache (11)

Kiểu hoàn toàn phối hợp
– Địa chỉ từ cần đọc trong khối (Word field) = log2B, B – kích
thước khối theo từ
– Chỉ số khối (hay nhãn W Tag field) = log2M, M kích thước
bộ nhớ trong theo khối
– Số bit trong trường địa chỉ bộ nhớ trong = log2(B.M)

Kiểu hồn tồn phối hợp

Ví dụ tìm số bit cho các trường ở VD1 & 2
Khoa KTMT

Vũ Đ c Lung

17

Khoa KTMT

Vũ Đ c Lung


18

3
CuuDuongThanCong.com

/>

11/03/2012

T! ch"c b# nh$ cache (12)

T! ch"c b# nh$ cache (13)
Kiểu phối hợp theo tập hợp

Kiểu phối hợp theo tập hợp





Word field = log2 B
Set field = log2 S, S – số tập hợp trong cache
Tag field = log2 (M/S), S = N/Bs, Bs số khối trong một tập hợp
Số bit trong trường địa chỉ bộ nhớ trong = log2(B.M)

Ví dụ tìm số bit cho các trường ở VD1 & 2 giả sử số khối
trong một tập tương ứng là 2 và 4

Vũ Đ c Lung


19

Khoa KTMT

Vũ Đ c Lung

20

ng

.c
om

Khoa KTMT

Thay thế ngẫu nhiên: để phân bố đồng đều việc thay thế, các
khối cần thay thế trong cache được chọn ngẫu nhiên.

an

Khối xưa nhất (LRU: Least Recently Used): các khối đã được
thâm nhập sẽ được đánh dấu và khối bị thay thế là khối không
được dùng từ lâu nhất.

K5 thu6t thay th7 kh9i

Ví d :
Ma tr"n s$ 4x8. Gi) s* m,i s$ lưu
trong m/t t0 và các ph5n t* ma tr"n
lưu theo th t7 t0 đ9a ch: 1000 đ;n

1031. Cache ch a 8 kh$i, m,i kh$i 2
t0. Áp d ng k@ thu"t LRU. Th t7 yêu
c5u t0 CPU:

co

K5 thu6t thay th7 kh9i

ng

th

Vào trước ra trước (FIFO: First In First Out): Khối được đưa
vào cache đầu tiên, nếu bị thay thế, khối đó sẽ được thay thế
trước nhất.

Vũ Đ c Lung

21

Khoa KTMT

Vũ Đ c Lung

22

Vũ Đ c Lung

24


cu

u

Khoa KTMT

du
o

Tần số sử dụng ít nhất (LFU: Least Frequently Used): Khối
trong cache được tham chiếu ít nhất

K5 thu6t thay
th7 kh9i –
Fully
associative
mapping

K5 thu6t thay
th7 kh9i –
Direct
mapping

Khoa KTMT

Vũ Đ c Lung

23

Khoa KTMT


4
CuuDuongThanCong.com

/>

11/03/2012

Chi7n thu6t ghi cache
Chiến lược với cache hit:
– Ghi đồng thời (write through): Thông tin được ghi đồng thời vào khối của
cache và khối của bộ nhớ trong.
– Ghi lại (write back): Thông tin cần ghi chỉ được ghi vào khối trong cache.

K5 thu6t thay
th7 kh9i – Set
Associative
mapping

• Sử dụng bit trạng thái (Dirty bit hay Update bit).
• Khi một khối bị thay thế, khối này sẽ được ghi lại vào bộ nhớ trong chỉ khi
bit trạng thái đã được thiết lập.

Chiến lược với cache miss
W Ghi có nạp (write allocate): khối cần ghi từ bộ nhớ trong được nạp vào
trong cache như mô tả ở trên. Cách này thường được dùng trong cách
ghi lại.
W Ghi không nạp (write no allocate): khối được thay đổi ở bộ nhớ trong
không được đưa vào cache. Cách này được dùng trong cách ghi đồng
thời

Vũ Đ c Lung

25

Khoa KTMT

Vũ Đ c Lung

26

ng

.c
om

Khoa KTMT

VD: Intel Pentium 4 CPU Cache

Main Memory size 16 MB, CPU addressing Byte addressable

Sử dụng 2 Level cache:

Cache organization SetW
associative
Cache L1 size 8 KB
Number of blocks per set W 4
block size = 64 byte

du

o

Vũ Đ c Lung

27

Khoa KTMT

Cache organization SetW
associative
Cache L1 size 256 KB
Number of blocks per set W 8
block size = 128 byte

Vũ Đ c Lung

28

cu

u

Khoa KTMT

L2:

L1:

ng


th

an

Cache duy nhất để chứa đồng thời cả lệnh và dữ liệu
Cache riêng lẻ bằng cách sử dụng một cache lệnh riêng và một cache dữ
liệu riêng (ví dụ Pentium, Pentium 4, Itanium, PowerPC 620, IBM SP,…)
Cache mức một (L1 cache): thường là cache trong (onWchip cache; nằm bên
trong CPU). Cache này có kích thước nhỏ nhất và vì nằm gần CPU nhất
nên dữ liệu nằm trên nó sẽ được xử lý nhanh nhất.
• Cache mức hai (L2 cache) thường là cache ngoài (offWchip cache; cache
này nằm bên ngoài CPU). Như vậy nếu các CPU được thiết kế trên cùng
một lõi có thể được cài đặt cache L2 có kích thước khác nhau.
• Ngồi ra, trong một số hệ thống (PowerPC G4, IBM S/390 G4, Itanium
của Intel) cịn có tổ chức cache mức ba (L3 cache), đây là mức cache trung
gian giữa cache L2 và một thẻ bộ nhớ.

co

CÁC LOFI CACHE

Main Memory

Khoa KTMT

Vũ Đ c Lung

TK ch"c b# nh$ trong

29


Khoa KTMT

Vũ Đ c Lung

30

5
CuuDuongThanCong.com

/>

11/03/2012

SRAM M DRAM

Virtual Memory
Giải quyết vấn đề về kích thước bộ nhớ vật lý không đủ chứa
cả hệ điều hành cùng với các chương trình của người sử dụng
Vấn đề các vùng nhớ phải được bảo vệ một cách chắc chắn để
khỏi bị chương trình của người sử dụng làm hỏng.
Bộ nhớ ảo dựa trên sự kết hợp các bộ nhớ với tốc độ rất cao
như bộ nhớ trong (RAM) và bộ nhớ có tốc độ chậm như bộ
nhớ phụ
Dưới quan điểm của người lập trình và đối với người sử dụng
thì tập hợp các bộ nhớ trên được quan niệm là một bộ nhớ
thuần nhất với dung lượng lớn (gần hoặc bằng dung lượng ổ
đĩa cứng) nhưng lại làm việc ở tốc độ cao (gần bằng tốc độ bộ
nhớ trong).


Vũ Đ c Lung

31

Khoa KTMT

Vũ Đ c Lung

32

ng

.c
om

Khoa KTMT

Vũ Đ c Lung

33

Tổ chức bộ nhớ ảo:
– Một khối bộ nhớ
ngoài sẽ được đặt
tại đâu trong bộ nhớ
trong?
– Làm thế nào để tìm
một khối khi nó
đang nằm trong bộ
nhớ trong?

– Khối nào phải được
thay thế khi có thất
bại trang?
– Việc gì xảy ra khi
cần ghi số liệu?

Khoa KTMT

Vũ Đ c Lung

34

cu

u

Khoa KTMT

du
o

ng

th

an

Bộ nhớ ảo có thể được quản lý bằng cách chia bộ nhớ thành
các mảng nhỏ có độ lớn tính theo đoạn, cơ chế này gọi là phân
đoạn (đối với họ Intel có từ các bộ VXL 80286 trở đi) hoặc

trang, cơ chế này gọi là phân trang ( đối với họ Intel có từ các
bộ VXL 80386) trở đi
Trong các máy tính hiện đại 1 đoạn có thể có độ lớn từ 1 byte
đến 4GB cịn 1 trang thơng thường có độ lớn từ 2KB đến 16 K
bytes.

Virtual Memory

co

Virtual Memory

Virtual Memory

Ví dP t!ng quát
Cho một bộ nhớ cache tương ứng trực tiếp có 8 khối, mỗi khối có
16 byte (word). Bộ nhớ trong có 64 khối. Giả sử lúc khởi động
máy, 8 khối đầu tiên của bộ nhớ trong được đưa lên cache.
a. Viết bảng nhãn của các khối hiện đang nằm trong cache
b. CPU lần lượt đưa các địa chỉ sau đây để đọc số liệu: O4AH,
3F5H, 27CH. Nếu thất bại thì cập nhật bãng nhãn.
c. CPU dùng cách ghi lại. Khi thất bại cache, CPU dùng cách ghi
có nạp. Mơ tả cơng việc của bộ quản lý cache khi CPU đưa ra
các từ sau đây để ghi vào bộ nhớ trong: 0C3H, 05AH, 1C5H.

Khoa KTMT

Vũ Đ c Lung

35


Khoa KTMT

Vũ Đ c Lung

36

6
CuuDuongThanCong.com

/>