You are on page 1of 180

Kiến trúc máy tính và TBNV

Computer Architecture & Peripherals

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

Thông tin vào Thông tin ra

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ử

 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ử

Máy tính ENIAC:


 Dự án của bộ quốc phòng Mỹ
 Bắt đầu năm 1943, kết thúc năm 1946
 Đặc điểm
Nặng 30 tấn,
18.000 đèn điện tử
1500 rơle
Công suất tiêu thụ 140KW
Tốc độ: 5000 phép cộng mỗi giây
Bộ nhớ chỉ lưu trữ dữ liệu
Lập trình bằng cách thiết lập các chuyển mạch và các
cáp nối
10
Introduction
Lịch sử phát triển của máy tính điện tử

Máy tính ENIAC:

11
Introduction
Lịch sử phát triển của máy tính điện tử

 Thế hệ 1: Máy tính dùng đèn điện tử chân không


(1946 - 1955)
 Sử dụng công nghệ đèn điện tử chân không độ tin
cậy thấp, tổn hao năng lượng. Tốc độ tính toán từ vài
nghìn đến vài trăm nghìn phép tính/giây
 Phần mềm: ngôn ngữ máy
 Ứng dụng: khoa học, kỹ thuật

12
Introduction
Lịch sử phát triển của máy tính điện tử

 Thế hệ 2: Máy tính dùng transistor (1956 - 1965)


 Sử dụng linh kiện bán dẫn (transistor). Bộ nhớ được
làm bằng xuyến từ
 Phần mềm: sử dụng một số ngôn ngữ lập trình bậc
cao: Fortran, Algol, Cobol, ... Xuất hiện các hệ điều
hành tuần tự
 Ứng dụng: các bài toán kinh tế

13
Introduction
Lịch sử phát triển của máy tính điện tử

 Thế hệ 3: Máy tính dùng mạch tích hợp (1966 -


1980)
 Sử dụng mạch tích hợp (IC), các thiết bị ngoại vi
được cải tiến, đĩa từ được sử dụng rộng rãi Tốc độ
tính toán đạt vài triệu phép toán trên giây
 Phần mềm: xuất hiện nhiều hệ điều hành khác nhau,
đa dạng chất lượng cao, cho phép khai thác máy
tính theo nhiều chế độ
 Ứng dụng: nhiều lĩnh vực

14
Introduction
Lịch sử phát triển của máy tính điện tử

 Thế hệ 4: Máy tính dùng mạch tích hợp cỡ lớn


VLSI, ULSI (1981- nay)
 Sử dụng mạch tích hợp cỡ lớn (VLSI - Very large
scale integration), các cấu trúc đa xử lý
 Các hệ thống bộ nhớ bán dẫn, bộ nhớ ảo, bộ nhớ
cache được sử dụng rộng rãi
 Các kỹ thuật cải tiến tốc độ vi xử lý: vô hướng, ống
dẫn, xử lý song song… Tốc độ đạt tới hàng chục
triệu phép tính/giây

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

 CU: Control Unit


 PU: Processing Unit (PE: Processing Element)
 MU: Memory Unit
 IS: Instruction Stream
 DS Data Stream
 Tại một thời điểm chỉ thực hiện được 1 lệnh trên 1
dòng dữ liệu - Kiến trúc tuần tự

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

Shared Memory Distributed Memory

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

SP: Single Processor


SMP: Symmetric Multiprocessors
MPP: Massively Parallel Processor

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:

 Phần thập phân:


0.6875 x2 = 1.3750 phần nguyên = 1
0.375 x2 = 0.750 phần nguyên = 0
0.75 x2 = 1.50 phần nguyên = 1
0.5 x2 = 1.0 phần nguyên = 1

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]

Ví dụ: dùng 8 bit để mã hóa cho kiểu số dấu chấm tĩnh,


trong đó có 2 bit dành cho phần lẻ khoảng xác định
0  R  26 - 2-2 = 63.75

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.

 Phần mũ: 3 + 7Fh = 82h = 10000010b

 Phần định trị: 00111 1100 0000 0000 0000 0000

Chuỗi tương ứng:


0100 0001 0001 1100 0000 0000 0000 0000

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

 Ví dụ: tính giá trị của số thực R (428CE9FCh)

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í:

 Nhận lệnh (Fetch ): CPU đọc các


chỉ lệnh từ bộ nhớ
 Giải mã lệnh (Decode): giải mã
lệnh tín hiệu điều khiển việc thực
hiện lệnh
 Thực hiện lệnh (Execute): thực
hiện lệnh
 Ghi kết quả (Writeback): ghi kết
quả vào bộ nhớ hoặc module vào
ra

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

CPU clock cycles


CPU time  CPU clock cycles  Cycle time 
Clock rate
 CPU time: thời gian thực hiện cho 1 chương trình
 CPU clock cycle: số chu kì cho 1 chương trình
 Cycle time: thời gian cho 1 chu kì
 Clock rate: tốc độ xử lí của CPU (tần số hoạt động của CPU)

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”.

CPU clock cycles CPU clock cycles


Với máy “A”: CPU time (A)  10 s 
Clock rate (A) 400  10 6 cycles/s

CPU clock cycles  10 s  400  10 6 cycles/s  4000  10 6 cycles

Tương tự với máy “B”:

1.2  CPU clock cycles 1.2  4000  10 6 cycles


6s  
clock rate (B) clock rate (B)

1.2  4000  10 6 cycles


Clock rate (B)   800  10 6 cycles/s
6s

49
Central Processing Unit
Hiệu năng hệ thống
Hiệu năng của hệ thống:

Instructio n count  CPI


CPU time  Instructio n count  CPI  Cycle time 
Clock rate

 CPU time: thời gian thực hiện cho 1 chương trình


 Instruction count: số lệnh cần thực thi cho chương trình
 CPI: số chu kì cho 1 lệnh
 Cycle time: thời gian cho 1 chu kì
 Clock rate: tốc độ xử lí của CPU (tần số hoạt động của CPU)

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

Tương tự với máy “B”:

CPU time (B)  Instructio n count  CPI  Cycles time  i  1.2  2ns

Tương quan tốc độ giữa “A” và “B”:

Perf (A) CPU time (B) i  1.2  2ns


   1.2
Perf (B) CPU time (A) i  2  1ns

51
Central Processing Unit
Đơn vị điều khiển

 Điều khiển việc nhận lệnh từ bộ


nhớ thanh ghi lệnh (IP)
 Tăng nội dung của thanh ghi PC
lệnh kế tiếp
 Giải mã lệnh xác định thao tác
mà lệnh yêu cầu
 Phát tín hiệu điều khiển thực hiện
lệnh
 Nhận các tín hiệu yêu cầu từ bus
hệ thống đáp ứng

Các tín hiệu vào/ra CU

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):

Bộ nhân = Bộ cộng & Bộ dịch trái các tích riêng

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):

Bộ chia = Bộ trừ & Bộ dịch phải các tích riêng

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

Thanh ghi 8 bit

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)

Địa chỉ vật lí = Thanh ghi đoạn * 16 + 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)

 C (Carry): CF=1 khi có nhớ hoặc mượn từ MSB


 P (Parity): PF=1 (0) khi tổng số bít 1 trong kết quả là chẵn (lẻ)
 A (Auxilary carry): AF=1 khi có nhớ hoặc mượn từ một số BCD thấp
sang BCD cao
 Z (Zero): ZF=1 khi kết quả bằng 0
 S (Sign): SF=1 khi kết quả âm
 O (Overflow): OF=1 khi kết quả là một số vượt ra ngoài giới hạn biểu
diễn của nó trong khi thực hiện phép toán cộng trừ số có dấu
 T (Trap): TF=1 khi CPU làm việc ở chế độ chạy từng lệnh
 I (Interrupt enable): IF=1 khi CPU cho phép ngắt
 D (Direction): DF=1 làm việc với chuỗi từ phải sang trái

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

Số chu kì (Cycle) dùng cho CISC:


(2 mov* 1cyc) + (1 mul* 30 cyc) = 32 cycle
Số chu kì (Cycle) dùng cho RISC:
(3 mov* 1cyc) + (5 add* 1cyc) + (5 loop* 1cyc) = 13 cycle

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

 10 (phím TAB): về đầu 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)

 Thực hiện phép nhân với số 2n


 Ví dụ:
MOV BX,2
MOV CL,4
SHL BX,CL; BX 32

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)

 Thực hiện phép chia với số 2n


 Ví dụ:
MOV BX,32
MOV CL,4
SHL BX,CL; BX 2

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

Thanh ghi 8 bit

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

Pages = logical blocks; Frames = physical blocks

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

Virtual page number Page offset

Translation

29 28 27 15 14 13 12 11 10 9 8 3210

Physical page number Page offset

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

Virtual page number Page offset

20 12

Valid Physical page number

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 page number Page offset

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).

 Các đường A11- A1 định địa chỉ cho các EP


 A19 - A12, A0: đưa vào mạch NAND

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

Thanh ghi trạng thái và các cổng

Các chân tín hiệu của 8255

147
Peripherals
Ghép nối vào/ra
 Mạch ghép nối vào ra song song 8255A

Cấu trúc trong của 8255

148
Peripherals
Ghép nối vào/ra
 Mạch ghép nối vào ra song song 8255A

Thanh ghi từ điều khiển CWR

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ị

Các chân tín hiệu của 8279

152
Peripherals
Ghép nối vào/ra
 Mạch điều khiển 8279

Ghép nối 8279 với bàn phím

153
Peripherals
Ghép nối vào/ra
 Mạch điều khiển 8279

Ghép nối 8279 với LED 7 thanh

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

You might also like