Chương 6 – Vi tác vụ
11/12/08
Trường ðHSP TPHCM
1
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 (mạch số học +
mạch luận lý + mạch dịch tổ hợp)
11/12/08
2
6.1. Vi tác vụ thanh ghi
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
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
11/12/08
3
Vi tác vụ thanh ghi
• Tên thanh ghi: chữ hoa (có thể có kèm số)
PC, MAR, R1, R2, …
• Chuyển nội dung thanh ghi R1 sang thanh ghi
R2 (R1 không ñổi):
R2 ← R1
• Chuyển nội dung thanh ghi R1 sang thanh ghi
R2 (R1 không ñổi) dùng hàm ñiều khiển (khi
hàm có giá trị 1):
P: R2 ← R1hoặc If (P=1) then (R2 ← R1)
S0S1: R2 ← R1
11/12/08
4
Vi tác vụ thanh ghi
Mạch
ñiều
khiển
P
Load
Clock
R2
n
R1
Mạch
ñiều
khiển
S0
Load
Clock
R2
S1
n
R1
11/12/08
Trường ðHSP TPHCM
5
Vi tác vụ thanh ghi
Ký hiệu
Chữ hoa
(hoặc số theo sau)
Diễn giải
Tên thanh ghi
PC,MAR,R1,…
R2(0-7): (bit từ 0 ñến 7
của thanh ghi R2)
Dấu ngoặc
sau tên thanh ghi
Một phần thanh ghi
Mũi tên
Truyền dữ liệu
Dấu phẩy
Tác vụ xảy ra ñồng thời
(trong cùng một chuyển
tiếp ñồng hồ)
11/12/08
Ví dụ
R2(L): các bit thấp của
thanh ghi R2
Trường ðHSP TPHCM
R2← R1
R2← R1, R1← R2
6
6.1.1. Truyền dữ liệu qua bus
S0
S1
4x1
MUX
4x1
MUX
D
3
2
1
0
3
2
1
0
3
2
1
0
3
2
1
0
11/12/08
4x1
MUX
4x1
MUX
3
B
2
3
1
2
Trường ðHSP TPHCM
0
1
0
A
3
2
1
0
3
2
1
0
7
Truyền dữ liệu qua bus 3 trạng thái
3
2
1
0
3
2
1
0
3
2
1
0
3
2
1
S0
11/12/08
Trường ðHSP TPHCM
S1
E
0
3
2
1
2x4
Decoder
8
0
Truyền qua bộ nhớ
• DR ← M[AR]
• M[AR] ← DR
• M[AR] : ô nhớ có ñịa chỉ ñược lưu trong
thanh ghi AR.
11/12/08
Trường ðHSP TPHCM
9
6.2. Vi tác vụ số học
Ký hiệu
R3 ← R1 + R2
R3 ← R1 – R2
R2 ← R2
R2 ← R2 + 1
R3 ← R1 + R2 + 1
R1 ← R1 +1
R1 ← R1 -1
M[AX]
R1
11/12/08
Ý nghĩa
Lấy thanh ghi R1+R2
gán vào R3
???
???
???
???
???
???
Lấy R1 ñưa vào ô nhớ
có ñịa chỉ lưu trong AX
Trường ðHSP TPHCM
10
Mạch số học
S1
S0
Cin
Y
0
0
0
B
D=A+B
Cộng
0
0
1
B
D=A+B+1
Cộng với nhớ
0
1
0
B’
D = A + B’
Trừ có mượn
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
Giảm A
1
1
1
1
D=A
Chuyển A
11/12/08
Diễn giải
D=A+Y+Cin
Trường ðHSP TPHCM
11
Mạch số học
B3
A3
1 0
B2
A2
1 0
3 2 1 0
X3
Y3
3 2 1 0
X2
C3
3 2 1 0
S0 S1
X1
Cin
S0 S1
C2
X0
Y0
FA
C2
A0 S S
0 1
4x1
MUX
Y1
FA
C3
B0
1 0
4x1
MUX
Y2
FA
C4
S0 S1
4x1
MUX
4x1
MUX
A1
1 0
3 2 1 0
S0 S1
B1
FA
C1
C0
C1
Cout
11/12/08
D3
D2
Trường
ðHSP TPHCM
D1
D0
12
6.3. Vi tác vụ luận lý
Hàm
F0 = 0
F1 = xy
F2 = x.y
F3 = x
F4 = x.y
Ký hiệu
F←0
F←A∧B
F←A∧B
F←A
F←A∧B
F5 = y
F←B
F6 = x ⊕ y
F←A⊕B
F7 = x + y
F8 = (x + y)
F9 = x ⊕ y
F←A∨B
F←A∨B
F←A⊕B
F10 = y
F←B
F11 = x + y
F←A∨B
F12 = x
F←A
F13 = x + y
F←A∨B
F14 = xy
11/12/08
F15 = 1
F←A∧B
Trường ðHSP TPHCM
F ← 1…1
Vi tác vụ
xóa 0
AND
truyền A
OR
NOR
NXOR
NAND
Gán 1
13
Mạch luận lý
S0
S1
Ai
S0
S1
MUX
4x1
0
Bi
Ei
1
2
3
11/12/08
S1 S0
ðầ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
Trường ðHSP TPHCM
14
Mạch luận lý
S0
S1
Ai
Bi
S0
S1
0
1
MU
X
4x1
S1 S0
Ei
ðầ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
2
3
Vẽ mạch luận lý với i=2. Cho S0=S1=1,
A1=0,A2=1,B1=1,B2=0. Xác ñịnh E1, E2?
11/12/08
Trường ðHSP TPHCM
15
6.4. Vi tác vụ dịch
Ký hiệu
11/12/08
Ý nghĩĩa
R ← shl R
Dịch trái R
R ← shr R
Dịch phải R
R ← cil R
Dịch vòng trái R
R ← cir R
Dịch vòng phải R
R ← ashl R
Dịch trái số học R
R ← ashr R
Dịch phải số học R
Trường ðHSP TPHCM
16
•
•
•
•
•
•
•
R= 10101011
Shl R= 01010110
Shr R= 01010101
Cil R= 01010111
Cir R=???
Ashl R=???
Ashr R=???
Mạch dịch tổ hợp 4 bit
A3
A2
A1
A0
IL
IR
S
1
11/12/08
0
S
1
0
S
1
0
S
2x1
MUX
2x1
MUX
2x1
MUX
H3
H2
H1
Trường ðHSP TPHCM
1
0
S
2x1
MUX
H0
18
6.5. ALU (Arithmetic and Logic Unit)
Ai+1
Ai-1
Ai
S0 S1
Bi
Một tầng mạch
luận lý
Ci+1
Một tầng mạch
số học
Ei
S2 S3
Ci-1
Di
3 2 1 0
S0 S1
4x1
MUX
11/12/08
Trường ðHSP TPHCM
19
Các tác vụ của ALU
S3
0
0
0
0
0
0
0
0
0
0
0
0
1
1
11/12/08
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
Trường ðHSP TPHCM
20
There are six shift microoperations:
shl that shifts the bits of a register one place left
shr that shifts the bits of a register one place right;
cil that shifts the bits of a register one place left with the
leftmost bit being circled back to the right
cir that works similarly but to the right
ashl that shifts all bits except the sign bit of a register to the
left but not into the sign bit
ashr that shifts all bits excluding the sign bit to the right
Eight-bit examples
Type
Symbolic
Source R2 Destination R1
shift left
R1 ← shl R2
10011110
00111100
shift right
R1 ← shr R2
10011110
01001111
Circle shift left
R1 ←cil R2
10011110
00111101
Circle shift right
R1 ← cir R2
10011110
01001111
arithmetic shift left
R1 ← ashl R2
10011110
10111100
arithmetic shift right
R1 ← ashr R2
10011110
10001111