Professional Documents
Culture Documents
Nội dung
Tổng quan
Bộ xử lí trung tâm
Hệ thống nhớ
Hệ thống vào ra
Thiết bị nhập dữ liệu
Thiết bị xuất dữ liệu
Thiết bị lưu trữ ngoài
1
References
Tài liệu tham khảo
[1] William Stallings, Computer Organization and
Architecture, Fifth edition, Prentice Hall, 2000.
[2] John L. Hennessy, David A. Patterson, Computer
Architecture: A Quantitative Approach, fifth edition,
Morgan Kaufmann Publishers, 2001.
[3] Hesham El-Rewini, Mostafa ABD-El-Barr, Advanced
Computer Architecture and Parallel processing, Willey,
2005.
[4] K. Hwang, Advanced Computer Architecture,
McGraw-Hill Education (India), 2010.
2
Introduction
Tổng quan
Tổng quan
Lịch sử phát triển và phân loại máy tính
Lịch sử phát triển của máy tính điện tử
Phân loại máy tính
Các thành phần cơ bản trong máy tính
Bộ xử lí trung tâm
Hệ thống nhớ
Hệ thống vào - ra
Cấu trúc kết nối
Biểu diễn thông tin trong máy tính
Hệ đếm và cơ số đếm
Các loại mã
Biểu diễn số
3
Introduction
Tổng quan
Tổng quan
Máy tính (computer): thiết bị điện tử có khả năng thao
tác (lưu trữ, xử lý) trên các thông tin (dữ liệu).
Các thao tác: thực hiện theo một chương trình - một
dãy các câu lệnh
Xử lý thông tin
4
Introduction
Tổng quan
Giao tiếp người - máy
5
Introduction
Tổng quan
Kiến trúc máy tính
6
Introduction
Tổng quan
Kiến trúc tập lệnh: nghiên cứu cấu trúc và hoạt
động của máy tính theo cách nhìn của người lập
trình
Bao gồm:
Tập lệnh: tập hợp các chuỗi nhị phân mã hóa cho các
thao tác mà máy tính có thể thực hiện được
Kiểu dữ liệu: các kiểu dữ liệu mà máy tính có thể xử
lý
Các chế độ địa chỉ: cơ chế truy xuất dữ liệu trong bộ
nhớ khi thực hiện lệnh
7
Introduction
Tổng quan
Tổ chức máy tính: nghiên cứu cấu trúc phần
cứng của máy tính
Bao gồm:
Bộ xử lý trung tâm (Central Processing Unit): điều
khiển hoạt động của máy tính theo đúng lệnh, thứ tự
lệnh
Hệ thống nhớ (Memory): lưu trữ dữ liệu và chương
trình
Hệ thống vào ra (Input/Output System): trao đổi thông
tin giữa máy tính với môi trường ngoài
Cấu trúc kết nối (Connection Structure): liên kết các
thành phần trong hệ thống
8
Introduction
Tổng quan
Kiến trúc máy tính
9
Introduction
Lịch sử phát triển của máy tính điện tử
11
Introduction
Lịch sử phát triển của máy tính điện tử
12
Introduction
Lịch sử phát triển của máy tính điện tử
13
Introduction
Lịch sử phát triển của máy tính điện tử
14
Introduction
Lịch sử phát triển của máy tính điện tử
15
Introduction
Sự phát triển của các thế hệ VXL Intel
4004:
Bộ vi xử lý đầu tiên
4 bít
8080
Bộ xử lý đa năng đầu tiên
Bus dữ liệu ngoài: 8 bit
8086
5Mhz, tích hợp 29,000 transistor
Bus dữ liệu ngoài: 16 bit
16
Introduction
Sự phát triển của các thế hệ VXL Intel
80286: bộ nhớ 16Mbyte
80386: 32 bit, hỗ trợ đa nhiệm
80486:
Hỗ trợ pipe line
Tích hợp bộ đồng xử lý toán học
Pentium
Siêu vô hướng
64 bit
Đa lệnh thực hiện đồng thời
Pentium Pro
Dự đoán rẽ nhánh
Kĩ thuật đa luồng
Lập lịch động
17
Introduction
Sự phát triển của các thế hệ VXL Intel
Pentium II: xử lý đồ họa, video, audio
Pentium III: thêm các lệnh xử lý dấu chấm động
Pentium IV: hỗ trợ multimedia
Dual core: tích hợp 2 VXL/chip
Core 2 dual: kiến trúc 64 bit
Core 2 quard: 4 VXL/chip
Core iX
…
18
Introduction
Sự phát triển của các thế hệ VXL Intel
19
Introduction
Phân loại máy tính
Phân loại máy tính theo truyền thống
Máy vi tính (Microcomputer)
Máy tính nhỏ (Minicomputer)
Máy tính lớn (Mainframe Computer)
Siêu máy tính (Supercomputer)
Phân loại máy tính theo chức năng
Máy tính cá nhân (Personal Computer)
Máy chủ (Server)
Máy tính nhúng (Embedded Computer)
Phân loại máy tính theo kiến trúc
20
Introduction
Kiến trúc máy tính
Kiến trúc VonNewman
21
Introduction
Phân loại kiến trúc máy tính
Phân loại kiến trúc máy tính theo Michael Flynn
Single Instruction Stream - Single Data Stream
Single Instruction Stream - Multiple Data Stream
Multiple Instruction Stream - Single Data Stream
Multiple Instruction Stream - Multiple Data Stream
22
Introduction
Phân loại kiến trúc máy tính
Kiến trúc đơn dòng lệnh - đơn dòng dữ liệu
23
Introduction
Phân loại kiến trúc máy tính
Kiến trúc đơn dòng lệnh - đa dòng dữ liệu
Tại một thời điểm có thể thực hiện 1 lệnh trên nhiều
dòng dữ liệu khác nhau
Các mô hình SIMD
Vector Computer
Array processor
24
Introduction
Phân loại kiến trúc máy tính
Kiến trúc đa dòng lệnh - đơn dòng dữ liệu
Một luồng dữ liệu cùng được truyền đến một tập các
bộ xử lý
Mỗi bộ xử lý thực hiện một dãy lệnh khác nhau
Tại một thời điểm có thể thực hiện nhiều lệnh trên
cùng một dòng dữ liệu, vì vậy có thể xảy ra xung đột
25
Introduction
Phân loại kiến trúc máy tính
Kiến trúc đa dòng lệnh - đa dòng dữ liệu
Các bộ xử lý đồng thời thực hiện các dãy lệnh khác
nhau trên các dữ liệu khác nhau - kiến trúc song song
Các mô hình MIMD
26
Introduction
Xu hướng phát triển
Symmetric Multiprocessors
Máy tính có nhiều hơn 2 bộ xử lý
Các bộ xử lý dùng chung bộ nhớ và hệ thống vào-ra
Hệ thống được điều khiển bởi hệ điều hành phân tán
27
Introduction
Xu hướng phát triển
Cluster (Multicomputers)
Nhiều máy tính được kết nối với nhau bằng mạng liên
kết tốc độ cao, mỗi máy tính là một node trong mạng
Mỗi máy tính có thể làm việc độc lập
Các máy tính có thể được quản lý làm việc song song
theo nhóm (cluster)
Toàn bộ hệ thống có thể coi như là một máy tính song
song
28
Introduction
Xu hướng phát triển
PC Cluster
SMP Cluster
29
Introduction
Sự phát triển của các Kiến trúc
30
Introduction
Hệ đếm và cơ số đếm
Hệ đếm
Hệ đếm cơ số bất kì
Trong đó
N: số nguyên bao gồm n+m chữ số
s: cơ số của hệ đếm (2, 8, 10, 16…)
ai, bj (0 ÷ s-1): giá trị của phần tử thứ i, j
i (0 ÷ n-1), j (1 ÷ m): trọng số
31
Introduction
Hệ đếm và cơ số đếm
Hệ đếm
Hệ đếm cơ số 2 (binary)
s=2
ai, bj (0, 1)
Ví dụ:
1101001.1011(2) = 26 + 25 + 23 +20 + 2-1 + 2-3 + 2-4
= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625
= 105.6875(10)
Hệ đếm cơ số 10 (decimen)
s = 10
ai, bj (0 ÷ 9)
Hệ đếm cơ số 16 (hexa)
s = 16
ai (0÷ 9, A ÷ F )
32
Introduction
Hệ đếm và cơ số đếm
Chuyển đổi giữa các hệ cơ số
Hệ cơ số 2 sang hệ cơ số 10: theo công thức tổng
quát
Hệ cơ số 10 sang hệ 2:
Phần nguyên: chia liên tiếp cho 2 tới khi gặp thương số là 0,
lấy tổ hợp các số dư theo chiều ngược lại
Phần thập phân: nhân liên tiếp với 2, lấy tổ hợp các phần
nguyên ở mỗi lần nhân theo chiều thuận
Ví dụ: đổi số 105.6875 sang hệ 2
33
Introduction
Hệ đếm và cơ số đếm
Chuyển đổi giữa các hệ cơ số
Hệ cơ số 10 sang hệ 2:
Phần nguyên:
34
Introduction
Hệ đếm và cơ số đếm
Chuyển đổi giữa các hệ cơ số
Quan hệ giữa các hệ cơ số 2, 10 và 16
35
Introduction
Các loại mã
Mã hóa dữ liệu: dữ liệu ở dạng nhị phân
Các loại mã
Mã BCD (Binary Code Decimal): dùng số hệ 2 biểu
diễn cho số hệ 10
Mã ASCII (American Standard Code for Information
Interchange): sử dụng 7 bit để mã hóa cho 128 kí tự
Mã Unicode: sử dụng 16 bit, mã hóa tới 216 tổ hợp
36
Introduction
Biểu diễn số nguyên
Số nhị phân không dấu:
Với n bit biểu diễn được 2n số từ 0 đến 2n-1
Số bit Khoảng giá trị Kiểu dữ liệu
8 bit 0.. 255 Byte
16 bit 0.. 65535 Word
Số nhị phân có dấu:
Với n bit biểu diễn được 2n số từ -2n-1 đến 2n-1-1
Số bit Khoảng giá trị Kiểu dữ liệu
8 bit -128…127 Byte
16 bit -32768…32767 Word
37
Introduction
Biểu diễn số thực
Số thực dấu chấm (point) tĩnh: số chữ số sau
dấu phẩy là xác định số bit số bit dành cho
phần nguyên và phần thập phân là cố định
U(n, m) là tập các số dấu chấm tĩnh không dấu có n
bit trước dấu chấm và m bit sau dấu chấm
Khoảng xác định của số dấu chấm tĩnh không dấu: [0,
2n - 2-m]
38
Introduction
Biểu diễn số thực
Số thực dấu chấm (point) động: số chữ số sau
dấu phẩy là không xác định
X = (-1)S * M * RE
Trong đó:
S: dấu (Sign)
M: phần định trị (Mantissa)
R: cơ số (Radix)
E: số mũ (Exponent)
39
Introduction
Biểu diễn số thực
Khuôn dạng mã hóa theo chuẩn IEEE-754-1985:
32 bit
64 bit
80 bit
40
Introduction
Biểu diễn số thực
Mã hóa số thực dấu chấm động theo chuẩn
IEEE-754-1985, 32 bit
Chuyển số thập phân về dạng nhị phân
Đưa về dạng: 1.xxxxEy
Xác định bit dấu (bit 31): S = 0 số dương, 1 số âm
Xác định phần mũ (bit từ 30-23): y+7Fh (hệ 2, 8 bit)
Xác định phần định trị (bit 22-0): xxxx00...00 (23 bit)
41
Introduction
Biểu diễn số thực
Ví dụ: Biểu diễn số thực 9,75d sang số dạng dấu
phẩy động.
Dạng nhị phân: 9,75d = 1001.11b
Dạng 1.xxxxEy: 1.00111E3.
Bit dấu: S = 0.
42
Introduction
Biểu diễn số thực
Giá trị của số thực dấu chấm động theo chuẩn
IEEE-754-1985, 32 bit
R = 1,1008906*26 = 70,457
43
Central Processing Unit
Bộ xử lí trung tâm
Tổng quan
Đơn vị điều khiển
Đơn vị số học và logic
Tập các thanh ghi
Cấu trúc kết nối
44
Central Processing Unit
Tổng quan
Cấu trúc trong của bộ xử lí trung tâm (Central Processing Unit - CPU)
45
Central Processing Unit
Tổng quan
Bộ xử lí trung tâm:
Đơn vị điều khiển (Control Unit - CU): giải mã lệnh -> tạo
tín hiệu điều khiển hoạt động của máy tính
Đơn vị số học và logic (Arithmetic and Logic Unit - ALU):
thực hiện các phép toán số học và logic
Tập thanh ghi (Register File - RF): lưu trữ tạm thời dữ
liệu và lệnh
Bus trong (Internal Bus): kết nối các thành phần bên
trong CPU với nhau
Bus ngoài (External bus): kết nối CPU với các thành
phần còn lại của máy tính
Đơn vị nối ghép bus (Bus Interface Unit - BIU): kết nối và
trao đổi thông tin bus bên và ngoài
46
Central Processing Unit
Tổng quan
Sự thực thi của CPU khi có yêu cầu xử lí:
47
Central Processing Unit
Tổng quan
Hiệu năng của hệ thống:
1
Perf
Exe time
Perf (perfomance): hiệu năng hệ thống
Exe time (execute): thời gian thực hiện
48
Central Processing Unit
Tổng quan
Hiệu năng của hệ thống:
VD1: Một chương trình chạy trên máy tính A (tốc độ 400MHz) trong 10
giây. Cũng chương trình ấy khi chạy trên máy tính “B” hết 6 giây. Tính tốc
độ máy “B” biết số chu kì dùng cho chương trình khi chạy trên máy này
gấp 1.2 lần khi chạy trên máy “A”.
49
Central Processing Unit
Hiệu năng hệ thống
Hiệu năng của hệ thống:
50
Central Processing Unit
Hiệu năng hệ thống
Hiệu năng của hệ thống:
VD2: Hai máy “A” và “B” có tập lệnh tương tự, thời gian cho 1 chu kì của
“A” là 1ns và chỉ số CPI của nó là 2.0. Máy “B” thời gian cho 1 chu kì là 2ns
và chỉ số CPI của nó là 1,2. So sánh tốc độ thực hiện của “A” và “B”?.
Giả sử số lệnh cần thực hiện cho 1 chương trình của “A” và “B” là i. Với
máy “A”:
CPU time (A) Instructio n count CPI Cycles time i 2 1ns
CPU time (B) Instructio n count CPI Cycles time i 1.2 2ns
51
Central Processing Unit
Đơn vị điều khiển
52
Central Processing Unit
Đơn vị điều khiển
Đơn vị điều khiển bằng phần cứng:
53
Central Processing Unit
Đơn vị điều khiển
Đơn vị điều khiển bằng phần mềm:
54
Central Processing Unit
Đơn vị số học và logic
Thực hiện các phép toán số học và logic
55
Central Processing Unit
Đơn vị số học và logic
Các phép toán số học: cộng, trừ, nhân, chia
Phép cộng (Addition)
Bộ cộng
56
Central Processing Unit
Đơn vị số học và logic
Các phép toán số học: cộng, trừ, nhân, chia
Phép cộng (Addition)
Mạch cộng
57
Central Processing Unit
Đơn vị số học và logic
Các phép toán số học: cộng, trừ, nhân, chia
Phép trừ (Subtract): X – Y = X + (-Y)
Bộ trừ = Bộ cộng & Lấy phần bù
Bộ trừ
58
Central Processing Unit
Đơn vị số học và logic
Các phép toán số học: cộng, trừ, nhân, chia
Phép nhân (Multiple):
59
Central Processing Unit
Đơn vị số học và logic
Các phép toán số học: cộng, trừ, nhân, chia
Phép chia (Division):
60
Central Processing Unit
Tập các thanh ghi
Thanh ghi (Register): lưu trữ tạm thời lệnh và dữ liệu trong
quá trình xử lí
Được hình thành từ các phần tử nhớ cơ bản FF
Số FF quy định độ rộng thanh ghi, VXL
61
Central Processing Unit
Thanh ghi
Các thanh ghi đa năng
AX (Accumulator): chứa kết quả của các phép tính,
kết quả 8 bit được chứa trong AL
BX (Base): chứa địa chỉ cơ sở
CX (Count): chứa số lần lặp trong các lệnh lặp (Loop).
CL được dùng để chứa số lần dịch hoặc quay trong
các lệnh dịch và quay thanh ghi
DX (Data): cùng AX chứa dữ liệu trong các phép tính
nhân chia số 16 bit. DX còn được dùng để chứa địa
chỉ cổng trong các lệnh vào ra dữ liệu trực tiếp
(IN/OUT)
62
Central Processing Unit
Thanh ghi
Các thanh ghi đoạn
Bộ nhớ được chia thành các phần: đoạn (segment),
trỏ bởi các thanh ghi đoạn
Địa chỉ:
Địa chỉ đoạn
Độ lệch (offset)
63
Central Processing Unit
Thanh ghi
Các thanh ghi đoạn
Ví dụ 1: Địa chỉ vật lý 12345H có thể được tạo ra từ các
giá trị:
Thanh ghi đoạn Offset
1000H 2345H
1200H 0345H
1004H 2305H
0300H F345H
64
Central Processing Unit
Thanh ghi
Các thanh ghi đoạn
65
Central Processing Unit
Thanh ghi
Các thanh ghi con trỏ và chỉ số
IP (Instruction Pointer): chứa địa chỉ lệnh hiện thời
đang được thực hiện (CS:IP)
BP (Base Pointer): chứa địa chỉ của dữ liệu trong
đoạn ngăn xếp SS hoặc các đoạn khác (SS:BP)
SP (Stack Pointer): chứa địa chỉ hiện thời của đỉnh
ngăn xếp (SS:SP)
SI (Source Index): chứa địa chỉ dữ liệu nguồn (DS:SI)
DI (Destination Index): chứa địa chỉ dữ liệu đích
(ES:DI)
66
Central Processing Unit
Thanh ghi
Thanh ghi cờ (Flag)
67
Central Processing Unit
Cấu trúc kết nối
Cấu trúc kết nối được sử dụng phổ biến trong
các máy tính: BUS
Bus: tập hợp các đường kết nối dùng để vận chuyển thông
tin giữa các thành phần của máy tính
Độ rộng bus: là số đường dây của bus có thể truyền thông
tin đồng thời (bit)
Phân loại cấu trúc bus: đơn bus, đa bus, đồng bộ, không
đồng bộ
68
Central Processing Unit
Cấu trúc kết nối
Bus địa chỉ (address bus):
Chức năng: chỉ rõ đích đến của dữ liệu
Độ rộng: xác định dung lượng bộ nhớ cực đại của hệ
thống
N bit địa chỉ định địa chỉ tối đa cho 2N ngăn nhớ (ô nhớ)
Bus dữ liệu (data bus):
Chức năng: đường vận chuyển dữ liệu giữa các thành
phần trong hệ thống
Độ rộng: xác định số bit dữ liệu có thể được trao đổi đồng
thời (8, 16, 32, 64, … bit)
Bus điều khiển (control bus):
Chức năng: đường vận chuyển tín hiệu điều khiển từ CPU
tới các thành phần trong hệ thống; tín hiệu yêu cầu, tín
hiệu trạng thái của các thành phần tới CPU
69
Central Processing Unit
Cấu trúc kết nối
Tín hiệu điều khiển:
Memory Read (MEMR): đọc dữ liệu từ một ngăn nhớ có
địa chỉ xác định
Memory Write (MEMW): ghi dữ liệu vào một ngăn nhớ có
địa chỉ xác định
I/O Read (IOR): đọc dữ liệu từ một cổng vào/ra có địa chỉ
xác định
I/O Write (IOW): ghi dữ liệu ra một cổng có địa chỉ xác định
Interrupt Request (INTR): yêu cầu ngắt từ TBNV
Interrupt Acknowledge (INTA): CPU chấp nhận ngắt
Non Maskable Interrupt (NMI): ngắt không che được
Reset: khởi động lại
…
70
Central Processing Unit
Cấu trúc kết nối
Các bus điển hình trong máy PC:
Bus của bộ xử lý (Front Side Bus - FSB): có tốc độ nhanh
nhất
Bus của bộ nhớ chính (nối ghép với các mô-đun nhớ RAM)
AGP (Accelerated Graphic Port) - cổng tăng tốc đồ họa:
nối ghép với card màn hình
PCI (Peripheral Component Interconnect): nối ghép với
các TBNV có tốc độ trao đổi dữ liệu nhanh
USB (Universal Serial Bus): bus nối tiếp đa năng
IDE (Integrated Drive Electronics): bus kết nối với ổ đĩa
cứng hoặc ổ đĩa quang (CD, DVD, …)
…
71
Central Processing Unit
Kiến trúc tập lệnh
Giao tiếp người - máy
72
Central Processing Unit
Kiến trúc tập lệnh
Ngôn ngữ
Ngôn ngữ lập trình: ngôn ngữ được thiết kế và chuẩn
hóa để truyền các chỉ thị cho máy tính
Ngôn ngữ máy: dạng cơ bản nhất mà máy có thể hiểu
được
Hợp ngữ: thay vì viết chương trình dưới dạng nhị
phân sẽ dùng kí hiệu tượng trưng
Tập lệnh
Kiến trúc tập lệnh (ISA)
Các chế độ địa chỉ
Phân loại lệnh
73
Central Processing Unit
Kiến trúc tập lệnh
Accumulator
1-address add A acc acc + mem[A]
Stack
0-address add tos tos + next
Memory-Memory
2-address add A, B mem[A] mem[A] + mem[B]
3-address add A, B, C mem[A] mem[B] + mem[C]
Register-Memory
2-address add R1, A R1 R1 + mem[A]
load R1, A R1 mem[A]
Register-Register
3-address add R1, R2, R3 R1 R2 + R3
load R1, R2 R1 mem[R2]
store R1, R2 mem[R1] R2
74
Central Processing Unit
75
Kiến trúc tập lệnh
Central Processing Unit
Kiến trúc tập lệnh
Stack Accumulator Register Register (load-
(register-memory) store)
Push A Load A Load R1, A Load R1,A
Push B Add B Add R1, B Load R2, B
Add Store C Store C, R1 Add R3, R1, R2
Pop C Store C, R3
memory memory
acc = acc + mem[C] R1 = R1 + mem[C] R3 = R1 + R2
76
Central Processing Unit
Kiến trúc tập lệnh
Tập lệnh:
add, sub, mult, div, . . .
push A, pop A
Ví dụ: A*B - (A+C*B)
push A
push B
mul A B A*B A C B B*C A+B*C result
A A*B A C A A*B
push A A*B A A*B
A*B
push C
push B Dùng Stack
mul
add
sub
77
Central Processing Unit
Kiến trúc tập lệnh
Tập lệnh:
Lệnh 3 toán hạng: add A, B, C sub A, B, C mul A, B, C
Lệnh 2 toán hạng: add A, B sub A, B mul A, B
Ví dụ thực hiện phép toán A*B - (A+C*B) dùng ô nhớ
3 toán hạng 2 toán hạng
mul D, A, B mov D, A
mul E, C, B mul D, B
add E, A, E mov E, C
sub E, D, E mul E, B
add E, A
sub E, D
78
Central Processing Unit
Kiến trúc tập lệnh
Tập lệnh :
add R1, A sub R1, A mul R1, B
load R1, A store R1, A
Ví dụ: A*B - (A+C*B)
load R1, A
mul R1, B
store R1, D R1 = R1 +,-,*,/ mem[B]
load R2, C
mul R2, B Kết hợp thanh ghi và ô nhớ
add R2, A
sub R2, D
79
Central Processing Unit
Kiến trúc tập lệnh
CISC (Complex Instruction Set Computer)
Lãng phí không gian nhớ dùng lưu trữ tập lệnh do độ
dài lệnh tùy biến và có những lệnh tần suất sử dụng
thấp
Khó đồng bộ vì số chu kì dùng thực hiện lệnh là khác
nhau
Phức tạp khi lập trình
RISC (Reduced Instruction Set Computer)
Đơn giản hóa tập lệnh bằng cách sử dụng các lệnh
đơn và giảm số lượng các lệnh
Cố định độ dài các lệnh
Giảm số chu kì dùng cho 1 lệnh
Giảm các chế độ địa chỉ bằng cách tăng số lượng các
lệnh truy xuất bộ nhớ
80
Central Processing Unit
Kiến trúc tập lệnh
CISC - RISC
CISC: RISC:
mov ax,10 mov ax,0
mov bx,5 mov bx,10
mul ax,bx mov cx,5
Lap:add ax,bx
loop Lap
81
Central Processing Unit
Kiến trúc tập lệnh
MIPS: Microprocessor without Interlocked Pipeline
Stages
Lệnh 3 toán hạng: Mã lệnh Đích, Nguồn_1, Nguồn_2
Các thanh ghi (32bit) được truy xuất qua Tên hoặc Số hiệu
Bộ nhớ: 1word = 32 bit = 4byte
Name Register number Usage
$zero 0 the constant value 0
$at 1 reserved for assembler
$v0-$v1 2-3 values for results and expression evaluation
$a0-$a3 4-7 arguments
$t0-$t7 8-15 temporary registers
$s0-$s7 16-23 saved registers
$t8-$t9 24-25 more temporary registers
$k0-$k1 26-27 reserved for Operating System kernel
$gp 28 global pointer
$sp 29 stack pointer
$fp 30 frame pointer
$ra 31 return address
82
Central Processing Unit
Tập lệnh của CPU (8086)
Các nhóm lệnh
Nhóm lệnh vào/ra: IN, OUT, INT_N,..
Nhóm lệnh chuyển dữ liệu: MOV, XCHG,..
Nhóm lệnh số học: ADD, SUB, MUL, DIV, INC, DEC,..
Nhóm lệnh logic: AND, OR, NOT, XOR,..
Nhóm lệnh dịch, quay: SHL, SHR, ROL, ROR,..
Nhóm lệnh điều khiển, rẽ nhánh: CALL, RET, JMP,…
Nhóm lệnh với dấu phẩy động: ADDF, MULF, DIVF,...
Nhóm lệnh thao tác với chuỗi: LOSB, STOSB,
COMPARE,…
83
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh vào/ra: IN, OUT, INT_N,..
Vào/ra trực tiếp: IN, OUT
IN Thanh ghi,Số hiệu cổng
Chức năng: đọc dữ liệu từ 1 cổng nào đó vào thanh ghi
Ví dụ:
IN AL,80h; đọc dữ liệu từ cổng 80h vào thanh ghi AL
OUT Số hiệu cổng,Thanh ghi
Chức năng: đưa dữ liệu từ 1 thanh ghi ra cổng nào đó
Ví dụ:
OUT 81h,DL; đưa dữ liệu từ thanh ghi DL ra cổng 81hs
84
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh vào/ra: IN, OUT, INT_N,..
Vào/ra gián tiếp: dùng ngắt INT 21h
Hàm 1:
Chức năng: nhập 1 kí tự từ bàn phím, mã ASCII của kí tự
được đặt trong thanh ghi AL
Ví dụ:
MOV AH,1
INT 21h
Hàm 2:
Chức năng: hiển thị 1 kí tự ra màn hình, mã ASCII của kí
tự cần hiển thị được đặt trong thanh ghi DL
Ví dụ:
MOV AH,2
INT 21h
85
Central Processing Unit
Tập lệnh của CPU (8086)
Với Hàm 2, khi giá trị DL là:
13 (phím ENTER): xuống dòng
Hàm 9:
Chức năng: hiển thị 1 chuỗi kí tự ra màn hình, địa chỉ của
chuổi cần hiển thị được đặt trong thanh ghi DX
Ví dụ:
LEA DX,Str
MOV AH,9
INT 21h
86
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh chuyển dữ liệu: MOV (Move), XCHG
(Exchange), PUSH, POP,..
MOV Đích,Nguồn
Chức năng: chuyển dữ liệu từ 1 thanh ghi, 1 ô nhớ, 1 toán
hạng trực tiếp sang 1 thanh ghi hay 1 ô nhớ
Ví dụ:
MOV AH,1; AH 1
MOV [SI],DX; [SI] DX
XCHG Đích,Nguồn
Chức năng: hoán chuyển nội dung của 2 thanh ghi, 1
thanh ghi và 1 ô nhớ
Ví dụ:
XCHG AX,BX; AX BX; BX AX
87
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh chuyển dữ liệu: MOV (Move), XCHG
(Exchange), PUSH, POP,..
PUSH Nguồn
Chức năng: cất 1 word từ 1 thanh ghi hay 1 ô nhớ vào
stack
Ví dụ:
PUSH AX; TOS AX
POP Đích
Chức năng: lấy 1 phần tử đỉnh stack đưa vào 1 thanh ghi
hay 1 ô nhớ
Ví dụ:
POP BX; BX TOS
88
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh số học: ADD (Addition), SUB
(Subtract), MUL (Multiple), DIV (Division),..
ADD Đích,Nguồn
Chức năng: cộng nội dung của 2 thanh ghi, 1 thanh ghi và
1 ô nhớ hay 1 toán hạng trực tiếp
Ví dụ:
ADD AX,BX; AX AX + BX
SUB Đích,Nguồn
Chức năng: trừ nội dung của 2 thanh ghi, 1 thanh ghi và 1
ô nhớ hay 1 toán hạng trực tiếp
Ví dụ:
SUB BX,5; BX BX - 5
89
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh số học: ADD (Addition), SUB
(Subtract), MUL (Multiple), DIV (Division),..
MUL Nguồn
Chức năng: nhân nội dung của 2 thanh ghi, 1 thanh ghi và
1 ô nhớ
Toán hạng ngầm định chứa trong AL (byte) hoặc AX
(word); kết quả được lưu trong AX (DX:AX)
Ví dụ:
MUL BL; AX AL * BL
90
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh số học: ADD (Addition), SUB
(Subtract), MUL (Multiple), DIV (Division),..
DIV Nguồn
Chức năng: Chia nội dung của 2 thanh ghi, 1 thanh ghi và
1 ô nhớ
Số bị chia ngầm định đặt trong AX (byte) hoặc DX:AX
(word);
Thương số được lưu trong AL (AX), số dư được lưu trong
AH (DX)
Ví dụ:
MOV AX,13
MOV DL,5
DIV DL; AL 2; AH 3
91
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh số học: ADD (Addition), SUB
(Subtract), MUL (Multiple), DIV (Division),..
INC Toán hạng
Chức năng: tăng nội dung của 1 thanh ghi lên 1
Ví dụ:
INC CX; CX CX + 1
DEC Toán hạng
Chức năng: giảm nội dung của 1 thanh ghi đi 1
Ví dụ:
DEC CX; CX CX - 1
92
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh logic: AND, OR, NEG, XOR..
AND Đích,Nguồn
Chức năng: thực hiện phép Và giữa 2 thanh ghi, 1 thanh
ghi và 1 ô nhớ hay toán hạng trực tiếp
Xóa 1 hay nhiều bit trong 1 toán hạng
Ví dụ:
MOV AL,39h
AND AL,0Fh; AL 09h
OR Đích,Nguồn
Chức năng: thực hiện phép Hoặc giữa 2 thanh ghi, 1 thanh
ghi và 1 ô nhớ hay toán hạng trực tiếp
Thiết lập 1 hay nhiều bit trong 1 toán hạng
Ví dụ:
MOV DL,09h
OR DL,30h; DL 39h
93
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh logic: AND, OR, NEG, XOR..
XOR Đích,Nguồn
Chức năng: thực hiện phép cộng Modulo 2 giữa 2 thanh
ghi
Xóa nội dung 1 thanh ghi nào đó
Ví dụ:
XOR BX,BX; BX 0
NEG Toán hạng
Chức năng: thực hiện phép lấy phần bù (số bù 2) 1 thanh
ghi, 1 ô nhớ
Ví dụ:
MOV DL,09h
NEG DL; DL F7h
94
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh logic: SHL (Shift Left), SHR, ROL
(Rotate Left), ROR
SHL Toán hạng,1
SHL Toán hạng,CL
Chức năng: thực hiện phép dịch trái 1 toán hạng đi 1 hay
nhiều vị trí (bit)
95
Central Processing Unit
Tập lệnh
Nhóm lệnh logic: SHL (Shift Left), SHR, ROL
(Rotate Left), ROR
SHR Toán hạng,1
SHR Toán hạng,CL
Chức năng: thực hiện phép dịch phải 1 toán hạng đi 1 hay
nhiều vị trí (bit)
96
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh logic: SHL (Shift Left), SHR, ROL
(Rotate Left), ROR
ROL Toán hạng,1
ROL Toán hạng,CL
Chức năng: thực hiện phép quay trái 1 toán hạng đi 1 hay
nhiều vị trí (bit) ~ kiểm soát từng bit trong toán hạng
Ví dụ:
MOV BX,1234h
MOV CL,4
ROL BX,CL; BX 2341h
97
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh điều khiển, rẽ nhánh: JMP (Jump),
JA (JG), JB (JL), JE (JZ),…
JMP Nhãn đích
Chức năng: nhảy (không điều kiện) tới 1 địa chỉ trong bộ nhớ
Nhãn đích: ngắn (short: 2byte), gần (near:32Kbyte), xa (far: cho
phép nhảy tới nhãn trong đoạn mã khác)
Ví dụ:
Lap:
MOV AH,1
INT 21h
CMP AL,13
JE Thoat
MOV [SI],AL
INC CX
JMP Lap
98
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh điều khiển, rẽ nhánh: JMP (Jump),
JA (JG), JB (JL), JE (JZ),…
JA Nhãn đích
Chức năng: nhảy nếu lớn hơn (có điều kiện) tới 1 địa chỉ trong
bộ nhớ
Điều kiện của lệnh được kiểm tra bởi lệnh CMP (Compare)
Ví dụ:
Lap:
MOV AH,1
INT 21h
CMP AL,13
JE Thoat
CMP AL,30h
JB Loi
CMP AL,39h
JA Loi
99
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh điều khiển, rẽ nhánh: LOOP, CALL,
RET,...
LOOP Nhãn đích
Chức năng: thực hiện 1 chu trình (vòng lặp có số lần lặp biết
trước)
Số lần thực hiện của chu trình (lặp) được đặt trong CX
CX tự động giảm 1 cho tới khi kết thúc chu trình (CX = 0)
Ví dụ: hiển thị 5 dấu ‘*’
MOV CX,5
MOV AH,2
Lap:
MOV DL,’*’
INT 21h
LOOP Lap
100
Central Processing Unit
Tập lệnh của CPU (8086)
Nhóm lệnh điều khiển, rẽ nhánh: LOOP, CALL,
RET,...
CALL Tên chương trình
Chức năng: gọi chương trình con
Chương trình con phải được khai báo hoặc chỉ rõ đường dẫn tới
tệp (sau lệnh MAIN ENDP)
Ví dụ:
C
RET
Chức năng: trở về chương trình chính
Kết thúc chương trình con
101
Memory
Hệ thống nhớ
Tổng quan
Bộ nhớ bán dẫn
Bộ nhớ Cache
Kĩ thuật bộ nhớ ảo
Kĩ thuật giải mã địa chỉ
102
Memory
Phân cấp hệ thống nhớ
CPU Registers
Bytes Registers
<10s ns
Instr. Operands Prog./compiler
1-8 bytes
Cache
K-M Bytes Cache
10-40 ns
cache ctrl
Blocks 8-128 bytes
Main Memory
G Bytes Main Memory
70ns-1us
OS
Pages 512-4K bytes
Disk
G-T Bytes Disk
ms
user/operator
Files Mbytes
Tape
infinite
sec-min Tape
103
Memory
Phân cấp hệ thống nhớ
104
Memory
Tập các thanh ghi
Tập các thanh ghi
Được hình thành từ các phần tử nhớ cơ bản FF
Số FF quy định độ rộng thanh ghi, VXL
105
Memory
Bộ nhớ bán dẫn
Hình thành từ các phần tử nhớ cơ bản FF
Tổ chức theo ma trận nhớ, mỗi phần tử được truy xuất
qua địa chỉ hàng và cột
106
Memory
Bộ nhớ bán dẫn
ROM (Read Only Memory):
Bộ nhớ chỉ đọc
Lưu trữ thông tin cấu hình hệ thống, nhân của hệ điều
hành
Được nuôi bởi nguồn nuôi tương đối ổn định (Batery)
RAM (Random Access Memory)
Truy nhập ngẫu nhiên
Lưu trữ tạm thời dữ liệu và chương trình
Dữ liệu sẽ bị xóa khi mất nguồn
107
Memory
Bộ nhớ bán dẫn
Các loại bộ nhớ ROM:
Maskable ROM: ghi 1 lần khi chế tạo
PROM (Programmable ROM): ghi thông tin bằng thiết
bị chuyên dụng
EPROM (Erasable PROM): xóa bằng tia cực tím, ghi
lại bằng thiết bị nạp EPROM
EEPROM (Electrically Erasable PROM): có thể
ghi/xóa bằng tín hiệu điện
Flash Memory: ~ EEPROM
108
Memory
Bộ nhớ bán dẫn
Các loại bộ nhớ RAM:
SRAM (Static): mỗi phần tử nhớ là một mạch lật 2
trạng thái ổn định thông tin trên SRAM ổn định
DRAM (Dynamic): mỗi phần tử nhớ là một tụ điện rất
nhỏ, nhờ hiện tượng nạp và phóng điện thông tin
trên DRAM luôn được làm tươi
109
Memory
Bộ nhớ Cache
Tốc độ trung gian giữa tốc độ xử lí của CPU và tốc độ
truy xuất của bộ nhớ chính
Dùng công nghệ SRAM
Nguyên tắc truy nhập: định vị
theo thời gian và không gian
4 phương pháp ánh xạ
Liên kết trực tiếp
Liên kết hoàn toàn
Liên kết tập hợp
110
Memory
Bộ nhớ Cache
Phương pháp ánh xạ liên kết trực tiếp:
Bộ nhớ chính có dung lượng M byte nhớ, được chia
thành b khối (block), dung lượng mỗi khối: k byte
Bộ nhớ Cache có dung lượng C byte nhớ, được chia
thành l đường (line), dung lượng mỗi đường: k byte
Ánh xạ: mỗi khối trong bộ nhớ chính được ánh xạ
sang 1 đường trong Cache
111
Memory
Bộ nhớ Cache
Phương pháp ánh xạ liên kết trực tiếp:
112
Memory
Bộ nhớ Cache
Phương pháp ánh xạ liên kết hoàn toàn: mỗi khối trong
bộ nhớ chính được ánh xạ sang bất kì đường nào trong
Cache
113
Memory
Bộ nhớ Cache
Phương pháp ánh xạ liên kết tập hợp: mỗi khối trong bộ
nhớ chính được ánh xạ sang 1 tập hợp trong Cache
114
Memory
Bộ nhớ Cache
Ví dụ 1: Bộ nhớ chính có dung lượng 4GB, được chia
thành các khối dung lượng 32bytes. Dung lượng bộ nhớ
Cache 1MB, được chia thành các đường dung lượng
32bytes. Tính giá trị các trường n1 (word), n2 (line), s, tag
trong các phương pháp ánh xạ (với AXLKTH, mỗi tập
hợp gồm 8 đường).
Ví dụ 2: Giả sử hệ thống có bus địa chỉ với độ rộng 16
bit, bộ nhớ Cache có dung lượng 2KB, mỗi block có
dung lượng 64bytes. Tính các giá trị các trường n1
(word), n2 (line), s, tag trong các phương pháp ánh xạ
(với AXLKTH, mỗi tập hợp gồm 4 đường).
115
Memory
Bộ nhớ Cache
Ví dụ 3: Bộ nhớ chính có dung lượng 8GB, được chia
thành các khối dung lượng 128bytes. Dung lượng bộ
nhớ Cache 512KB, được chia thành các đường dung
lượng 128bytes. Tính giá trị các trường n1 (word), n2
(line), s, tag trong các phương pháp ánh xạ (với
AXLKTH, mỗi tập hợp gồm 16 đường).
Ví dụ 2: Giả sử hệ thống có bus địa chỉ với độ rộng 16
bit, bộ nhớ Cache có dung lượng 2KB, mỗi block có
dung lượng 64bytes. Tính các giá trị các trường n1
(word), n2 (line), s, tag trong các phương pháp ánh xạ
(với AXLKTH, mỗi tập hợp gồm 4 đường).
116
Memory
Bộ nhớ Cache
Các phương pháp tăng hiệu năng của Cache
Giảm tỉ lệ cache miss
Tăng kích thước block
Tăng độ liên kết (đa đường)
Sử dụng bộ nhớ phụ
Tối ưu hóa trình biên dịch
Cache nhiều mức
Giảm thời gian cache hit
Giảm thời gian biên dịch địa chỉ, độ rộng chỉ số…
Cơ chế pipeline trong truy xuất cache
117
Memory
Kĩ thuật bộ nhớ ảo
Đồng nhất các bộ nhớ (Cache, Main memory, Disk..)
thành một hệ thống tổng thể: bộ nhớ ảo (virtual memory);
Quản lí bộ nhớ ảo qua địa chỉ ảo
Cho phép các chương trình có thể chia sẻ bộ nhớ một cách an
toàn và hiệu quả
Giảm tải cho bộ nhớ chính
Cho phép chương trình có thể được nạp vào bất kì bộ nhớ vật lí
nào Virtual addresses Physical addresses
Address translation
Disk addresses
118
Memory
Kĩ thuật bộ nhớ ảo
Quản lí bộ nhớ ảo
Chia không gian địa chỉ thành các Trang (Page)
Mỗi chương trình có thể truy nhập tới 1 tập các trang
Các trang được lưu trữ trong bộ nhớ vật lí hoặc đĩa
Truy nhập các trang qua địa chỉ ảo
Individual
Pages
Memory
Virtual Map Physical Disk
Memory Memory
119
Memory
Kĩ thuật bộ nhớ ảo
120
Memory
Kĩ thuật bộ nhớ ảo
0 0
4 I
j
0 a
1 k
l
0 1 b 8 m
2 c n
3 d 0 5 2 o
4 e 1 6 p
2 1
1 5 f 3 2
3 12
6 g
7 h Page Table 4 16
8 I 20 a
9 j b
2 10 k 5 c
11 l d
24 e
12 m
13 n 6 f
g
3 14 o h
15 p 7 28
Logical Memory
Physical Memory
121
Memory
Kĩ thuật bộ nhớ ảo
Quản lí bộ nhớ ảo: biên dịch địa chỉ
Ánh xạ địa chỉ ảo sang địa chỉ vật lí nhờ kĩ thuật biên dịch địa
chỉ
Nếu trang nhớ có trong bộ nhớ chính xử lí
Nếu trang nhớ có trong đĩa “treo” chương trình và nạp trang
nhớ từ đĩa
Virtual address
31 30 29 28 27 15 14 13 12 11 10 9 8 3210
Translation
29 28 27 15 14 13 12 11 10 9 8 3210
Physical address
122
Memory
Kĩ thuật bộ nhớ ảo
Biên dịch địa chỉ dùng danh mục trang
Địa chỉ offset: vị trí byte nhớ cần truy nhập trong trang nhớ - địa
chỉ vật lí của byte nhớ trong bộ nhớ chính (1page = 4Kb)
Bảng trang (Table): chứa địa chỉ cơ sở của trang nhớ
Danh mục trang (Directory): chứa địa chỉ cơ sở của bảng trang
123
Memory
Kĩ thuật bộ nhớ ảo
Biên dịch địa chỉ dùng Translation lookaside buffer
Page table register
Virtual address
31 30 29 28 27 15 14 13 12 11 10 9 8 3 2 1 0
20 12
Page table
18
If 0 then page is not
present in memory
29 28 27 15 14 13 12 11 10 9 8 3 2 1 0
Physical address
124
Memory
Kĩ thuật bộ nhớ ảo
Biên dịch địa chỉ dùng Translation lookaside buffer
TLB
Virtual page Physical page
number Valid Tag address
1
1 Physical memory
1
1
0
1
Page table
Physical page
Valid or disk address
1
1
1 Disk storage
1
0
1
1
0
1
1
0
1
125
Memory
Kĩ thuật giải mã địa chỉ
Cấu trúc vi mạch nhớ
Mỗi phần tử nhớ được qui chiếu tới một cách chính xác khi thực
hiện các thao tác ghi/đọc.
Được gán cho một vùng riêng biệt có địa chỉ xác định nằm trong
không gian địa chỉ tổng thể của bộ nhớ
Việc gán địa chỉ cụ thể cho mạch nhớ được thực hiện nhờ một
xung chọn vỏ lấy từ mạch giải mã địa chỉ.
126
Memory
Kĩ thuật giải mã địa chỉ
Giải mã địa chỉ: gán địa chỉ cụ thể cho mạch nhớ
Các mạch giải mã:
Dùng cổng NAND
Dùng bộ giải mã 74LS138, 74LS139
Dùng PROM
127
Memory
Kĩ thuật giải mã địa chỉ
Ví dụ 1: ghép nối EPROM 2716 (2K * 8) với
8088
Dung lượng của EP: 2Kb (211) sử dụng 11 đường
địa chỉ (A10 - A0) để định địa chỉ cho EP
9 đường địa chỉ còn lại của 8088 (A19 - A11): đưa vào
chân CS qua mạch NAND
128
Memory
Kĩ thuật giải mã địa chỉ
Ví dụ 1: ghép nối EPROM 2716 (2K * 8) với
8088
129
Memory
Kĩ thuật giải mã địa chỉ
Ví dụ 2: giải mã địa chỉ cho vùng nhớ 64Kb, địa
chỉ đầu F0000h từ các EPROM 2764 (8K*8)
130
Memory
Kĩ thuật giải mã địa chỉ
Ví dụ 2: giải mã địa chỉ cho vùng nhớ 64Kb, địa
chỉ đầu F0000h từ các EPROM 2764 (8K*8)
Dung lượng của EP: 8Kb (213) sử dụng 13 đường
địa chỉ (A12 - A0) để định địa chỉ cho EP
Vùng nhớ có dung lượng 64KB cần 8EP, để giải mã
cho 8 EP sử dụng bộ giải mã LS74138 các đường
địa chỉ A15, A14, A13 được đưa vào các đầu vào A, B
và C của LS
4 đường địa chỉ còn lại của 8088 (A19 - A16): đưa vào
các cửa G2A, G2B, G1 của LS.
131
Memory
Kĩ thuật giải mã địa chỉ
Ví dụ 2: giải mã địa chỉ cho vùng nhớ 64Kb, địa
chỉ đầu F0000h từ các EPROM 2764 (8K*8)
132
Memory
Kĩ thuật giải mã địa chỉ
Ví dụ 2: giải mã địa chỉ cho vùng nhớ 64Kb, địa
chỉ đầu F0000h từ các EPROM 2764 (8K*8)
133
Memory
Kĩ thuật giải mã địa chỉ
Vùng nhớ có giải địa chỉ F8000h - FFFFFh, sử dụng các Eprom 4Kx8, mạch giải mã được thiết kế như hình
dưới, xác định thông số cho các đường tín hiệu :
134
Memory
Kĩ thuật giải mã địa chỉ
Ví dụ 3: giải mã địa chỉ cho vùng nhớ 4Kb, địa
chỉ từ FF000h-FFFFFh dùng các EPROM 2716
(2K*8).
135
Memory
Kĩ thuật giải mã địa chỉ
Các ví dụ khác:
Ghép nối 8088 với EPROM 2732 (4K*8) - 450ns.
Giải mã địa chỉ cho vùng nhớ 256Kb, địa chỉ đầu
00000h từ các SRAM 62256 (32K*8).
Giải mã địa chỉ cho vùng nhớ 128Kb, địa chỉ đầu
00000h từ các TMS DRAM 4464 (64K*4).
Thiết kế hệ thống nhớ cho 8086 với 64Kb EPROM và
128Kb SRAM sử dụng EPROM 27128 (16K*8) và
SRAM 62256 (32K*8).
136
Peripherals
Hệ thống vào ra
Tổng quan
Ghép nối vào ra
Các phương pháp vào ra
137
Peripherals
Tổng quan
Hệ thống vào/ra: giao tiếp giữa máy tính với môi
trường ngoài
Thành phần:
Các thiết bị ngoại vi
Mô đun vào/ra
138
Peripherals
Tổng quan
Thiết bị ngoại vi (Peripheral): chuyển đổi dữ liệu
từ môi trường ngoài sang dạng phù hợp để đưa
vào máy tính xử lí và ngược lại
Phân loại
Các thiết bị thu nhận dữ liệu: bàn phím, chuột, máy
quét,..
Các thiết bị hiển thị dữ liệu: màn hình, máy in, ...
Các thiết bị lưu trữ: đĩa từ, đĩa quang, thẻ nhớ
Các thiết bị truyền thông: modem, card mạng, ...
139
Peripherals
Tổng quan
Thiết bị ngoại vi:
140
Peripherals
Tổng quan
Thiết bị ngoại vi:
Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu giữa bên
ngoài sang dạng phù hợp để đưa vào máy tính xử lí
và ngược lại
Bộ đệm dữ liệu: lưu trữ tạm thời dữ liệu cần trao đổi
giữa TBNV và CPU
Logic điều khiển: điều khiển hoạt động của thiết bị
ngoại vi đáp ứng theo yêu cầu từ module vào-ra
141
Peripherals
Tổng quan
Mô đun vào/ra:
Điều khiển và định thời gian cho quá trình trao đổi
Đệm dữ liệu
Phát hiện lỗi
142
Peripherals
Tổng quan
Mô đun vào/ra:
143
Peripherals
Tổng quan
Mô đun vào/ra:
Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình
trao đổi
Các cổng vào-ra (I/O Port): kết nối với thiết bị ngoại
vi, mỗi cổng có một địa chỉ xác định
Logic điều khiển: điều khiển module vào-ra
Thanh ghi trạng thái /điều khiển: trạng thái vào/ra cho
các cổng
144
Peripherals
Ghép nối vào/ra
Ghép nối vào/ra:
Ghép nối nối tiếp (serial): dữ liệu được truyền đi tuần tự
theo từng bit tại 1 thời điểm chỉ có 1 bit dữ liệu được
truyền trên đường truyền
Ghép nối song song (parallel): dữ liệu truyền đồng thời
Các cổng vào/ra thông dụng:
Các cổng PS/2: nối ghép bàn phím và chuột
Các cổng nối ghép màn hình
Cổng LPT (Line Printer): nối ghép với máy in - cổng song
song (Parallel Port)
Cổng COM (Communication): thƣờng nối ghép với
MODEM - cổng nối tiếp (Serial Port)
Cổng USB (Universal Serial Bus): cổng nối tiếp đa năng
…
145
Peripherals
Ghép nối vào/ra
Các cổng vào/ra thông dụng:
146
Peripherals
Ghép nối vào/ra
Mạch ghép nối vào ra song song 8255A
147
Peripherals
Ghép nối vào/ra
Mạch ghép nối vào ra song song 8255A
148
Peripherals
Ghép nối vào/ra
Mạch ghép nối vào ra song song 8255A
149
Peripherals
Ghép nối vào/ra
Lập trình cho 8255A
Xác lập chế độ làm việc (mode) cho 8255
Xác định địa chỉ các cổng
Xác định từ điều khiển khởi động cấu hình hệ thống
(CW)
Lập trình ASM
Ví dụ: Lập trình cho 8255 hoạt động ở chế độ
vào ra cơ sở giả sử địa chỉ cổng A là 7Ch. Đọc
dữ liệu từ PB đưa ra PA, PCL đưa ra PCH
150
Peripherals
Ghép nối vào/ra
Ví dụ
Chế độ làm việc của 8255: Mode 0
Địa chỉ các cổng lần lượt: 7Ch, 7Dh, 7Eh và 7Fh
Từ điều khiển: CW = 83h
Lập trình ASM
MOV AL,83h ; từ điều khiển trong AL
OUT 7Fh,AL ; đưa CW vào CWR
IN AL,7Dh ; đọc cổng PB
OUT 7Ch,AL ; đưa dữ liệu đọc được ra cổng PA
IN AL,7Eh ; đọc cổng PCL
MOV CL,4 ; số lần quay AL
ROL AL,C ; chuyển 4 bit thấp thành 4 bit cao
OUT 7Eh,AL ; đưa dữ liệu đọc được ra cổng PCH
151
Peripherals
Ghép nối vào/ra
Mạch điều khiển 8279: ghép nối bàn phím và
màn hình hiển thị
152
Peripherals
Ghép nối vào/ra
Mạch điều khiển 8279
153
Peripherals
Ghép nối vào/ra
Mạch điều khiển 8279
154
Peripherals
Các phương pháp vào ra
Vào/ra bằng phương pháp thăm dò, móc nối
(handshaking)
CPU kiểm tra trạng thái của thiết bị ngoại vi
Nếu thiết bị ngoại vi sẵn sàng trao đổ dữ liệu
Nếu thiết bị ngoại vi chưa sẵn sàng CPU chờ (sau
1 khoảng thời gian nhất định sẽ phát lại tín hiệu thăm
dò)
Vào/ra bằng ngắt (Interrupt)
Vào/ra bằng truy cập trực tiếp bộ nhớ(DMA)
155
Peripherals
Các phương pháp vào ra
Vào/ra bằng ngắt (Interrupt)
Ngắt: CPU dừng chương trình đang thực thi, đáp ứng
yêu cầu của TBNV
Đáp ứng yêu cầu ngắt:
156
Peripherals
Các phương pháp vào ra
Vào/ra bằng ngắt (Interrupt)
Phân loại ngắt:
Ngắt cứng: các yêu cầu ngắt từ các chân tín hiệu
INTR (Interrupt), NMI (Non Maskable Interrupt)
Ngắt mềm: các yêu cầu ngắt từ các chân INT_N, N là
số hiệu ngắt (0 - 256)
Ngắt khác: ngắt khi CPU phát hiện ra lỗi nhưng không
khắc phục được
157
Peripherals
Các phương pháp vào ra
Vào/ra bằng ngắt (Interrupt)
Xử lí ưu tiên ngắt: PIC (8259A)
158
Peripherals
Các phương pháp vào ra
Vào/ra bằng truy nhập trực tiếp bộ nhớ (Direct
Memory Access - DMA)
Trao đổi giữa TBNV và bộ nhớ không thông qua sự
điều khiển của CPU mà qua thiết bị ngoài DMAC
TBNV gửi yêu cầu trao đổi tới DMAC
DMAC gửi tín hiệu HOLD tới CPU yêu cầu được sử
dụng các đường bus
CPU gửi tín hiệu HLDA chấp nhận ngắt tới DMAC
DMAC gửi tín hiệu DACK chấp nhận ngắt tới TBNV
DMAC gửi tín hiệu đọc/ghi bộ nhớ và ghi/đọc TBNV
DMAC hạ chân tín hiệu HOLD, trả lại quyền điều
khiển bus cho CPU, kết thúc quá trình trao đổi
159
Peripherals
Các phương pháp vào ra
Vào/ra bằng truy nhập trực tiếp bộ
160
Peripherals
Các phương pháp vào ra
Các phương pháp DMA
DMA truyền theo khối (Block Transfer DMA): CPU
trao quyền sử dụng bus cho DMAC trong một khoảng
thời gian đủ lớn để DMAC thực hiện trao đổi xong cả
khối dữ liệu
DMA lấy lén chu kì (Cycle Stealing DMA): DMAC và
CPU thay nhau sử dụng bus trong từng chu kỳ máy
DMA trong suốt (Transparent DMA): DMAC phát hiện
những chu kỳ CPU không dùng bus để chiếm dụng
bus trong chu kỳ đó và điều khiển trao đổi 1 word dữ
liệu
161
Input devices
Thiết bị nhập dữ liệu
Tổng quan
Bàn phím
Chuột
162
Input devices
Tổng quan
Thiết bị nhập dữ liệu: chuyển đổi dữ liệu từ môi
trường ngoài sang dạng phù hợp để đưa vào
máy tính xử lí
Bao gồm
Bàn phím
Chuột
Máy quét
…
163
Input devices
Bàn phím
Bàn phím (Keyboard)
Phát hiện sự ấn phím
Khử rung
Mã hoá phím
Công nghệ
Tiếp xúc bằng tiếp điểm trực tiếp
Phím điện dung: dựa trên nguyên lí thay đổi điện
trường
Phím điện cảm: sự cọ sát của lõi thép xuất điện
động cảm ứng dòng điện
164
Input devices
Bàn phím
Kĩ thuật dò phím
Bàn phím được tổ chức thành ma trận hàng x cột
Hai tiếp điểm của công tắc phím ~ giao hàng và cột
Nhấn phím nối hàng và cột qua tiếp điểm
165
Input devices
Bàn phím
Kĩ thuật quét phím
Bàn phím được tổ chức thành ma trận hàng x cột
Chip điều khiển gửi tín hiệu quét trạng thái bàn phím,
thời gian quét << thời gian nhấn phím
Khi 1 phím được nhấn thông tin về hàng và cột của
công tắc phím được gửi về chíp điều khiển (mã quét)
Mã quét được mã hóa thành mã 2byte (mã quét + mã
ASCII) lưu tại bộ nhớ đệm để chờ xử lí
166
Input devices
Chuột
Diode phát quang: phát ánh sáng đỏ chiếu lên bề mặt
của tấm di chuột
Ảnh của bề mặt tấm di chuột được hội tụ lên bề mặt
của bộ phận cảm quang
Bộ phận cảm quang phân tích sự dịch chuyển của
bức ảnh tín hiệu điện CPU
167
Output devices
Thiết bị xuất dữ liệu
Tổng quan
Màn hình
Máy in
168
Output devices
Tổng quan
Thiết bị xuất dữ liệu: chuyển đổi dữ liệu sau xử lí
sang dạng phù hợp với yêu cầu của người dùng
Bao gồm:
Màn hình
Máy in
169
Output devices
Màn hình
Màn hình (Monitor): hiển thị thông tin dạng chữ,
số (text), đồ hoạ (graphic)
Phân loại:
Màn hình ống tia âm cực
Màn hình tinh thể lỏng
…
Nguyên lý hiển thị hình ảnh video:
Khả năng phân giải hữu hạn của mắt người > góc 1’
Hiện tượng lưu ảnh trên võng mạc: tần suất phát > 24
lần/giây
170
Output devices
Màn hình
Những đặc điểm chung của màn hình:
Điểm ảnh (pixel): phần tử nhỏ nhất của một ảnh, kích
thước 3 điểm màu RGB
Độ phân giải: kích thước chi tiết nhỏ nhất và đo được
của một thiết bị hiển thị
Mật độ điểm ảnh (dot per inch): số điểm ảnh trên một
đơn vị chiều dài
Độ tương phản: tỉ lệ giữa độ sáng hay độ phát sáng
giữa hai trạng thái đóng và mở của phần tử hiển thị
Độ sâu màu: số màu có thể hiển thị được cho một
điểm ảnh: 2, 16, 256, 216, 224,…
Tần số làm tươi: tốc độ quét màn hình: flt = 30 - 60Hz
171
Output devices
Màn hình
Màn hình CRT (Cathod Ray Tube):
3 ống hình đơn sắc chung trong một vỏ gồm 3 sợi đốt
điều khiển 3 chùm tia khác nhau RGB
Vị trí đặt các màu công nghệ:
Các chấm sáng theo hàng ngang: PIL (Pricision In Line)
Các chấm sáng theo tam giác đều: Trinitron
172
Disk
Thiết bị lưu trữ ngoài
Tổng quan
Đĩa từ
Đĩa quang
173
Disk
Tổng quan
Bộ nhớ ngoài: lưu trữ dữ liệu và chương trình
của người sử dụng
Đặc điểm:
Dung lượng lớn
Tính lưu động cao, tiện dụng
Tốc độ truy xuất thấp
Phân loại:
Đĩa từ
Đĩa quang
Thẻ nhớ
174
Disk
Đĩa từ
Đĩa từ (Magetic): công nghệ từ tính
Đặc tính:
Thẩm từ (Permeable): có khả năng cho từ thông
xuyên qua
Trữ từ (Retentivity): lưu lại từ tính
Phân loại
Đĩa mềm: tấm tròn bằng nhựa
Đĩa cứng: tấm tròn bằng kim loại
Tham số:
Đọc/ghi
Đĩa
175
Disk
Đĩa từ
Tham số ghi/đọc:
Ghi: dòng trên cuộn dây AB từ trường xác định trong lõi hình
khuyên sắp xếp các hạt sắt từ theo một hướng nhất định ghi
thông tin lên đĩa
Đọc: sự thay đổi chiều sắp xếp các phần tử từ thay đổi chiều
của từ trường dòng điện cảm ứng trong cuộn dây AB mang
thông tin đã được ghi trên đĩa chuyển động theo hình vành khuyên
đọc được các thông tin
176
Disk
Đĩa từ
Đĩa cứng (Hard Disk)
Rãnh từ (Track): các đường tròn đồng tâm được đánh số từ
ngoài vào trong (bắt đầu từ rãnh số 0)
Cung từ (Sector): mỗi rãnh được chia làm nhiều cung, dung
lượng 1 sector thường là 512 byte.
Liên cung (Cluster): tập hợp của 2, 4, 8… cung từ, các cung
được đánh số tuần tự
Từ trụ (Cylinder): các rãnh từ có cùng số thứ tự trên các đĩa từ
177
Disk
Đĩa quang
Đĩa quang (Optical Disk)
Lớp nhãn đĩa: chứa thông tin của nhà sản xuất, thông tin của đĩa
(dung lượng, tốc độ ghi ,…)
Lớp nhựa Acrylic: tách lớp nhãn và mặt dữ liệu, có thể được phủ
một lớp chống ẩm để bảo vệ bề mặt lưu dữ liệu
Lớp nhôm: chứa các "dữ liệu" của CD, có khả năng phản xạ ánh
sáng
Lớp nhựa Polycarbonate: bảo vệ lớp nhôm
178
Disk
Đĩa quang
Đĩa quang
Dữ liệu: ghi theo hình xoắn ốc (single spiral track of data) từ tâm
đĩa
Kích thước đường dữ liệu: 0.5 microns
Đường dữ liệu có thể cắt ra từng phần nhỏ: Track
Dữ liệu được tạo bởi các phần lồi (pit), lõm (land)
179
Disk
Đĩa quang
Đĩa quang
Sử dụng tia lazer chiếu lên bề mặt đĩa dọc theo các track có dữ
liệu lấy tia phản xạ tín hiệu điện tín hiệu ghi ban đầu
Tia lazer chiếu qua các điểm trên bề mặt đĩa bị đốt cháy không
có tia phản xạ tín hiệu thu được: 0
Tia lazer chiếu qua các điểm trên bề mặt đĩa không bị đốt cháy
có tia phản xạ tín hiệu thu được: 1
180