You are on page 1of 79

3/6/2017

Môn học: KIẾN TRÚC MÁY TÍNH Chương 1: Tổng quan về kiến trúc
„ Nội dung môn học máy tính
• Chương 1 – Tổng quan về kiến trúc máy tính
• Chương 2 – Biểu diễn thông tin trong máy tính
„ Máy tính và phân loại
• Chương 3 – Mạch logic số „ Kiến trúc máy tính
• Chương 4 – Bộ vi xử lý „ Sự tiến hoá của máy tính
• Chương 5 – Kiến trúc tập lệnh
„ Các thành phần của máy tính
• Chương 6 – Bộ nhớ và thiết bị lưu trữ
• Chương 7 – Hệ thống vào ra „ Hoạt động của máy tính

„ Đơn vị đảm nhận: „ Liên kết hệ thống (Bus)


• Khoa Công nghệ Thông tin – Bộ môn Kỹ thuật Máy tính
• Phó Chủ nhiệm khoa: ThS. Nguyễn Đào Trường – 0946 562 168
• Email: truongnguyendao@gmail.com
1 4

Tài liệu tham khảo


1. William Stallings, Computer organization and architecture: Design for
1.1. Máy tính và phân loại
performance, 8th edition, Prentice Hall, 2010.
2. TS. Vũ Đức Lung, Kiến trúc máy tính, Đại học quốc gia Thành phố 1. Máy tính
Hồ Chí Minh, 2009.
„ Máy tính (Computer) là thiết bị điện tử thực hiện các công
3. Trường Đại học Hàng Hải, Kiến trúc máy tính, 2010.
việc sau:
4. Võ Văn Chín, Nguyễn Hồng Vân, Phạm Hữu Tài, Kiến trúc máy tính,
• Nhận thông tin vào,
ASVIET002CNTT Đại học Cần Thơ, 2003.
• Xử lý thông tin theo dãy các lệnh được nhớ sẵn bên trong,
5. Học viện Công nghệ Bưu chính Viễn thông, Kiến trúc máy tính, 2008.
• Đưa thông tin ra.
6. Đại học Hàng hải, Kiến trúc máy tính và thiết bị ngoại vi, 2009.
7. Nguyễn Kim Khánh, Kiến trúc máy tính, Trường Đại học Bách Khoa „Dãy các lệnh nằm trong bộ nhớ để yêu cầu máy tính thực
Hà Nội, 2007. hiện công việc cụ thể gọi là chương trình (program)
8. Đỗ Đức Giáo, Toán rời rạc, NXB Đại học Quốc gia Hà Nội, 2000. → Máy tính hoạt động theo chương trình.

2 5

Tài liệu tham khảo


Máy tính...
„ Các thành phần cơ bản của máy tính

3 6

1
3/6/2017

Mô hình phân lớp của máy tính Máy chủ (Server)


„ Thực chất là máy phục vụ
„ Dùng trong mạng theo mô hình
Client/Server (Khách hàng/Người phục vụ)
„ Tốc độ và hiệu năng tính toán cao
„ Dung lượng bộ nhớ lớn

• Phần cứng (Hardware): hệ thống vật lý của „ Độ tin cậy cao


máy tính. „ Giá thành: hàng nghìn đến hàng chục triệu
• Phần mềm (Software): các chương trình và dữ USD.
liệu. 7 10

Máy tính nhúng (Embedded


2. Phân loại máy tính
Computer)
„ Phân loại truyền thống „ Được đặt trong thiết bị khác để điều khiển thiết bị
„ Phân loại truyền thống: đó làm việc
„ Máy vi tính (Microcomputers) „ Được thiết kế chuyên dụng
„ Máy tính nhỏ (Minicomputers) „ Ví dụ:
„ Máy tính lớn (Mainframe Computers) • Điện thoại di động
„ Siêu máy tính (Supercomputers) • Máy ảnh số
„ Phân loại máy tính hiện đại • Bộ điều khiển trong máy giặt, điều hoà nhiệt độ
„ Máy tính cá nhân (Personal Computers) • Router – bộ định tuyến trên mạng
„ Máy chủ (Server Computers) „ Giá thành: vài USD đến hàng trăm nghìn USD.
„ Máy tính nhúng (Embedded Computers) 8 11

Máy tính cá nhân PC 1.2. Kiến trúc máy tính


„ Là loại máy tính phổ biến nhất „ Định nghĩa kiến trúc máy tính
„ Các loại máy tính cá nhân: • Kiến trúc máy tính là một chi tiết về đặc điểm
• Máy tính để bàn (Desktop) kỹ thuật như thế nào để một tập các tiêu chuẩn
• Máy tính xách tay (Laptop) phần mềm và công nghệ phần cứng tương tác
„ 1981 → IBM giới thiệu máy tính IBM-PC sử dụng để tạo thành một hệ thống máy tính hay nền
bộ xử lý Intel 8088 tảng
„ 1984 → Apple đưa ra Macintosh sử dụng bộ xử lý • Kiến trúc máy tính đề cập đến cách một hệ
Motorola 68000 thống máy tính được thiết kế và những công
„ Giá thành: hàng trăm đến hàng nghìn USD nghệ gì tương thích với nhau.
9 12

2
3/6/2017

1.2. Kiến trúc máy tính Cấu trúc cơ bản của máy tính
„ Kiến trúc máy tính bao gồm hai khía cạnh:
„ Kiến trúc tập lệnh (Instruction Set
Architecture): nghiên cứu máy tính theo
cách nhìn của người lập trình
„ Tổ chức máy tính (Computer Organization):
nghiên cứu cấu trúc phần cứng máy tính
→Kiến trúc tập lệnh thay đổi chậm, tổ chức
máy tính thay đổi rất nhanh.
13 16

Các thành phần cơ bản của máy


Ví dụ
tính
„ Các máy tính PC dùng các bộ xử lý „ Bộ xử lý trung tâm (Central Processing Unit):
Pentium III và Pentium 4: Điều khiển hoạt động của máy tính và xử lý dữ
liệu.
• cùng chung kiến trúc tập lệnh (IA-32)
„ Bộ nhớ chính (Main Memory): Chứa các chương
• có tổ chức khác nhau
trình và dữ liệu đang được sử dụng.
„ Hệ thống vào ra (Input/Output System): Trao đổi
thông tin giữa máy tính với bên ngoài.
„ Liên kết hệ thống (System Interconnection): Kết
nối và vận chuyển thông tin giữa các thành phần
14
với nhau. 17

Kiến trúc tập lệnh 1.3. Sự tiến hoá của máy tính
Kiến trúc tập lệnh của máy tính bao gồm: „ Các thế hệ máy tính
„ Tập lệnh: tập hợp các chuỗi số nhị phân mã • Thế hệ 1: (1946-1957) đèn điện tử
hoá cho các thao tác mà máy tính có thể • Thế hệ 2: (1958-1964) linh kiện bán dẫn chủ
thực hiện yếu là transistor
„ Các kiểu dữ liệu: các kiểu dữ liệu mà máy
• Thế hệ 3 (1965-1971) mạch tích hợp (IC)
tính có thể xử lý • Thế hệ thứ 4 (1972-về sau) IC có mật độ tích
hợp cao
• Thế hệ thứ 5: Theo đề án của người Nhật
chiếc máy tính điện tử thế hệ thứ 5 có cấu trúc
15
hoàn toàn mới, bao gồm 4 khối cơ bản 18

3
3/6/2017

1. Máy tính dùng đèn điện tử


1. Máy tính dùng đèn điện tử
(tiếp)
„ Thế hệ 1: (1946-1957) đèn điện tử
„ ENIAC- Máy tính điện tử đầu tiên
• Electronic Numerical Intergator And Computer
• Dự án của Bộ Quốc phòng Mỹ
• Do John Mauchly và John Presper Eckert ở Đại học
Pennsylvania thiết kế.
• Bắt đầu từ năm 1943, hoàn thành năm 1946

19 22

1. Máy tính dùng đèn điện tử


Máy tính von Neumann
(tiếp)
• Nặng 30 tấn „ Đó là máy tính IAS:
• 18000 đèn điện tử và 1500 rơle • Princeton Institute for Advanced Studies
• 5000 phép cộng/giây • Được bắt đầu từ 1947, hoàn thành1952
• Xử lý theo số thập phân • Do John von Neumann thiết kế
• Bộ nhớ chỉ lưu trữ dữ liệu • Được xây dựng theo ý tưởng “chương trình
• Lập trình bằng cách thiết lập vị trí của các được lưu trữ” (stored-program concept) của
chuyển mạch và các cáp nối. von Neumann/Turing (1945)

20 23

1. Máy tính dùng đèn điện tử


Đặc điểm chính của máy tính IAS
(tiếp)
• Đèn điện tử „ Bao gồm các thành phần: đơn vị điều khiển, đơn vị số học
và logic (ALU), bộ nhớ chính và các thiết bị vào-ra.
„ Bộ nhớ chính chứa chương trình và dữ liệu
„ Bộ nhớ chính được đánh địa chỉ theo từng ngăn nhớ,
không phụ thuộc vào nội dung của nó.
„ ALU thực hiện các phép toán với số nhị phân
„ Đơn vị điều khiển nhận lệnh từ bộ nhớ, giải mã và thực
hiện lệnh một cách tuần tự.
„ Đơn vị điều khiển điều khiển hoạt động của các thiết bị
vào-ra
„ Trở thành mô hình cơ bản của máy tính
21 24

4
3/6/2017

John von Neumann và máy tính


UNIVAC II
IAS và Alan Turing

25 28

Các máy tính thương mại ra đời Hãng IBM


• 1947 - Eckert-Mauchly Computer Corporation • IBM - International Business Machine
• UNIVAC I (Universal Automatic Computer) • 1953 - IBM 701
• 1950s - UNIVAC II „ Máy tính lưu trữ chương trình đầu tiên của IBM
„ Nhanh hơn „ Sử dụng cho tính toán khoa học
„ Bộ nhớ lớn hơn • 1955 – IBM 702
„ Các ứng dụng thương mại

26 29

UNIVAC I IBM 701

27 30

5
3/6/2017

3. Máy tính dùng vi mạch SSI,


2. Máy tính dùng transistor
MSI và LSI
„ Máy tính PDP-1 của DEC (Digital „ Vi mạch (Integrated Circuit - IC): nhiều transistor và các
phần tử khác được tích hợp trên một chip bán dẫn.
Equipment Corporation) máy tính mini đầu • SSI (Small Scale Integration)
tiên • MSI (Medium Scale Integration)
• LSI (Large Scale Integration)
„ IBM 7000
• VLSI (Very Large Scale Integration) (thế hệ thứ tư)
„ Hàng trăm nghìn phép cộng trong một giây. • ULSI (Ultra Large Scale Integration) (thế hệ thứ tư)
• SoC (System on Chip)
„ Các ngôn ngữ lập trình bậc cao ra đời.
„ Siêu máy tính xuất hiện: CRAY-1, VAX
„ Bộ vi xử lý (microprocessor) ra đời
• Bộ vi xử lý đầu tiên → Intel 4004 (1971).
31 34

Máy tính DEC PDP-1 (1960) Luật Moore


• Gordon Moore – người đồng sáng lập Intel
• Số transistors trên chip sẽ gấp đôi sau 18 tháng
• Giá thành của chip hầu như không thay đổi
• Mật độ cao hơn, do vậy đường dẫn ngắn hơn
• Kích thước nhỏ hơn dẫn tới độ phức tạp tăng
lên
• Điện năng tiêu thụ ít hơn
• Hệ thống có ít các chip liên kết với nhau, do đó
tăng độ tin cậy
32 35

Tăng trưởng số transistor trong


IBM 7030 (1961)
chip CPU

33 36

6
3/6/2017

4. Máy tính dùng vi mạch


IBM 360 Family
VLSI/ULSI
Các sản phẩm chính của công nghệ VLSI/ULSI:
• Bộ vi xử lý (Microprocessor): CPU được chế tạo trên
một chip.
• Vi mạch điều khiển tổng hợp (Chipset): một hoặc một
vài vi mạch thực hiện được nhiều chức năng điều khiển
và nối ghép.
• Bộ nhớ bán dẫn (Semiconductor Memory): ROM, RAM
• Các bộ vi điều khiển (Microcontroller): máy tính chuyên
dụng được chế tạo trên 1 chip.

37 40

PDP-11 (1973) và VAX-11 (1981) Intel 4004 - bộ vi xử lý 4-bit

38 41

Micro VAX và Siêu máy tính


Intel 8080 - bộ vi xử lý 8-bit
CRAY-1

39 42

7
3/6/2017

Intel 80286 - bộ vi xử lý 16-bit Pentium III và Pentium 4 (32-bit)

43 46

80386 - bộ vi xử lý 32-bit đầu


Itanium (64-bit)
tiên của Intel

44 47

Intel Pentium (32-bit) Các hệ thống máy tính hiện đại


„ Máy tính nhúng
„ Máy tính cá nhân (PC)
„ Máy trạm làm việc
„ Máy chủ (Servers)
„ Mạng máy tính
„ Internet - Mạng máy tính toàn cầu

45 48

8
3/6/2017

Ví dụ máy chủ HP 1. Bộ xử lý trung tâm (CPU)


„ Chức năng:
• điều khiển hoạt động của máy tính
• xử lý dữ liệu
„ Nguyên tắc hoạt động cơ bản:
• CPU hoạt động theo chương trình nằm trong
bộ nhớ chính.

49 52

Ví dụ máy chủ Sun Cấu trúc cơ bản của CPU

50 53

1.4 Các thành phần của máy Các thành phần cơ bản của
tính CPU
„ Bộ xử lý trung tâm (Central Processing „ Đơn vị điều khiển (Control Unit - CU): điều khiển hoạt
động của máy tính theo chương trình đã định sẵn.
Unit)
„ Đơn vị số học và logic (Arithmetic and Logic Unit -
„ Bộ nhớ (Memory) ALU): thực hiện các phép toán số học và phép toán
logic.
„ Hệ thống vào ra (Input/Output System)
„ Tập thanh ghi (Register File - RF): lưu giữ các thông
„ Liên kết hệ thống (System tin tạm thời phục vụ cho hoạt động của CPU.
Interconnection) (BUS) „ Đơn vị nối ghép bus (Bus Interface Unit - BIU) kết nối
và trao đổi thông tin giữa bus bên trong (internal bus) và
bus bên ngoài (external bus).

51 54

9
3/6/2017

Các thành phần của bộ nhớ


Tốc độ của bộ xử lý
máy tính
„ Tốc độ của bộ xử lý:
• Số lệnh được thực hiện trong 1 giây
• MIPS (Million of Instructions per Second)
• Khó đánh giá chính xác
„ Tần số xung nhịp của bộ xử lý:
• Bộ xử lý hoạt động theo một xung nhịp (Clock) có tần
số xác định
• Tốc độ của bộ xử lý được đánh giá gián tiếp thông
qua tần số của xung nhịp

55 58

Tốc độ bộ xử lý (tiếp) Bộ nhớ trong


„ Dạng xung nhịp „ Chức năng và đặc điểm:
• Chứa các thông tin mà CPU có thể trao đổi trực tiếp
• Tốc độ rất nhanh
• Dung lượng không lớn
• Sử dụng bộ nhớ bán dẫn: ROM và RAM
„ Các loại bộ nhớ trong:
• Bộ nhớ chính
• Bộ nhớ cache (bộ nhớ đệm)

56 59

2. Bộ nhớ máy tính Bộ nhớ chính (Main Memory)


„ Chức năng: lưu trữ chương trình và dữ liệu. „ Chứa các chương trình và dữ liệu
đang được CPU sử dụng.
„ Các thao tác cơ bản với bộ nhớ:
„ Tổ chức thành các ngăn nhớ được
• Thao tác ghi (Write)
đánh địa chỉ.
• Thao tác đọc (Read)
„ Ngăn nhớ thường được tổ chức
„ Các thành phần chính: theo byte.
• Bộ nhớ trong (Internal Memory) „ Nội dung của ngăn nhớ có thể
• Bộ nhớ ngoài (External Memory) thay đổi, song địa chỉ vật lý của
ngăn nhớ luôn cố định.

57 60

10
3/6/2017

Cấu trúc cơ bản của hệ thống


Bộ nhớ cache
vào-ra
„ Bộ nhớ có tốc độ nhanh được đặt đệm giữa
CPU và bộ nhớ chính nhằm tăng tốc độ CPU
truy cập bộ nhớ
„ Dung lượng nhỏ hơn bộ nhớ chính
„ Tốc độ nhanh hơn
„ Cache thường được chia thành một số mức
„ Cache có thể được tích hợp trên chip vi xử lý.
„ Cache có thể có hoặc không

61 64

Bộ nhớ ngoài (External


Các thiết bị ngoại vi
Memory)
„ Chức năng và đặc điểm „ Chức năng: chuyển đổi dữ liệu giữa bên
• Lưu giữ tài nguyên phần mềm của máy tính trong và bên ngoài máy tính
• Được kết nối với hệ thống dưới dạng các thiết bị vào-
ra „ Các loại thiết bị ngoại vi cơ bản
• Dung lượng lớn • Thiết bị vào: bàn phím, chuột, máy quét ...
• Tốc độ chậm • Thiết bị ra: màn hình, máy in ...
„ Các loại bộ nhớ ngoài • Thiết bị nhớ: các ổ đĩa ...
• Bộ nhớ từ: đĩa cứng, đĩa mềm • Thiết bị truyền thông: MODEM ...
• Bộ nhớ quang: đĩa CD, DVD
• Bộ nhớ bán dẫn: Flash disk, memory card
62 65

3. Hệ thống vào-ra (Input-


Mô-đun vào-ra
Output)
„ Chức năng: Trao đổi thông tin giữa máy „ Chức năng: nối ghép các thiết bị ngoại vi với
tính với thế giới bên ngoài. máy tính
„ Mỗi mô-đun vào-ra có một hoặc một vài cổng
„ Các thao tác cơ bản:
vào-ra (I/O Port).
• Vào dữ liệu (Input)
„ Mỗi cổng vào-ra được đánh một địa chỉ xác
• Ra dữ liệu (Output) định.
„ Các thành phần chính: „ Các thiết bị ngoại vi được kết nối và trao đổi dữ
• Các thiết bị ngoại vi (Peripheral Devices) liệu với máy tính thông qua các cổng vào-ra.
• Các mô-đun vào-ra (IO Modules)
63 66

11
3/6/2017

1.5. Hoạt động của máy tính Minh họa quá trình nhận lệnh
1. Thực hiện chương trình
„ Là hoạt động cơ bản của máy tính
„ Máy tính lặp đi lặp lại hai bước:
• Nhận lệnh
• Thực hiện lệnh
„ Thực hiện chương trình bị dừng nếu thực
hiện lệnh bị lỗi hoặc gặp lệnh dừng.

67 70

Chu trình lệnh Thực hiện lệnh


„ Bộ xử lý giải mã lệnh đã được nhận và phát tín
hiệu điều khiển thực hiện thao tác mà lệnh yêu
cầu.
„ Các kiểu thao tác của lệnh:
• Trao đổi dữ liệu giữa CPU và bộ nhớ chính
• Trao đổi dữ liệu giữa CPU và mô-đun vào-ra
• Xử lý dữ liệu: thực hiện các phép toán số học hoặc
phép toán logic với các dữ liệu.
• Điều khiển rẽ nhánh
• Kết hợp các thao tác trên.
68 71

Nhận lệnh 2. Ngắt (Interrupt)


„ Bắt đầu mỗi chu trình lệnh, CPU nhận lệnh từ bộ „ Khái niệm chung về ngắt: Ngắt là cơ chế cho
nhớ chính. phép CPU tạm dừng chương trình đang thực
„ Bộ đếm chương trình PC (Program Counter) hiện để chuyển sang thực hiện một chương
của CPU giữ địa chỉ của lệnh sẽ được nhận. trình khác, gọi là chương trình con phục vụ ngắt.
„ CPU nhận lệnh từ ngăn nhớ được trỏ bởi PC. „ Các loại ngắt:
„ Lệnh được nạp vào thanh ghi lệnh IR • Ngắt do lỗi khi thực hiện chương trình, ví dụ: tràn số,
chia cho 0.
(Instruction Register).
• Ngắt do lỗi phần cứng, ví dụ lỗi bộ nhớ RAM.
„ Sau khi lệnh được nhận vào, nội dung PC tự • Ngắt do mô-đun vào-ra phát tín
động tăng để trỏ sang lệnh kế tiếp.
69 72

12
3/6/2017

Xử lý với nhiều tín hiệu yêu cầu


Hoạt động ngắt
ngắt
„ Sau khi hoàn thành mỗi một lệnh, bộ xử lý kiểm tra tín „ Xử lý ngắt tuần tự
hiệu ngắt • Khi một ngắt đang được thực hiện, các ngắt khác sẽ bị cấm.
„ Nếu không có ngắt → bộ xử lý nhận lệnh tiếp theo của • Bộ xử lý sẽ bỏ qua các ngắt tiếp theo trong khi đang xử lý một
chương trình hiện tại ngắt
• Các yêu cầu ngắt vẫn đang đợi và được kiểm tra sau khi ngắt
„ Nếu có tín hiệu ngắt: đầu tiên được xử lý xong
• Tạm dừng chương trình đang thực hiện • Các ngắt được thực hiện tuần tự
• Cất ngữ cảnh (các thông tin liên quan đến chương trình bị ngắt)
„ Xử lý ngắt ưu tiên
• Thiết lập PC trỏ đến chương trình con phục vụ ngắt
• Các ngắt được định nghĩa mức ưu tiên khác nhau
• Chuyển sang thực hiện chương trình con phục vụ ngắt
• Ngắt có mức ưu tiên thấp hơn có thể bị ngắt bởi ngắt ưu tiên
• Cuối chương trình con phục vụ ngắt, khôi phục ngữ cảnh và tiếp cao hơn
tục chương trình đang bị tạm dừng
• Xảy ra ngắt lồng nhau
73 76

Hoạt động ngắt (tiếp) 3. Hoạt động vào-ra


„ Hoạt động vào-ra: là hoạt động trao đổi dữ
liệu giữa mô-đun vào-ra với bên trong máy
tính.
„ Các kiểu hoạt động vào-ra:
„ CPU trao đổi dữ liệu với mô-đun vào-ra
„ Mô-đun vào-ra trao đổi dữ liệu trực tiếp
với bộ nhớ chính (DMA- Direct Memory
Access).
74 77

Chu trình lệnh với ngắt 1.6. Liên kết hệ thống (BUS)
1. Luồng thông tin trong máy tính
„ Các mô-đun trong máy tính:
• CPU
• Mô-đun nhớ
• Mô-đun vào-ra
→cần được kết nối với nhau

75 78

13
3/6/2017

Kết nối mô-đun nhớ Kết nối mô-đun vào-ra (tiếp)


„ Địa chỉ đưa đến để xác định cổng vào-ra
„ Ra dữ liệu (Output)
• Nhận dữ liệu từ CPU hoặc bộ nhớ chính
• Đưa dữ liệu ra thiết bị ngoại vi
„ Vào dữ liệu (Input)
• Nhận dữ liệu từ thiết bị ngoại vi
• Đưa dữ liệu vào CPU hoặc bộ nhớ chính
„ Nhận các tín hiệu điều khiển từ CPU
„ Phát các tín hiệu điều khiển đến thiết bị ngoại vi
„ Phát các tín hiệu ngắt đến CPU

79 82

Kết nối mô-đun nhớ (tiếp) Kết nối CPU


„ Địa chỉ đưa đến để xác định ngăn nhớ
„ Dữ liệu được đưa đến khi ghi
„ Dữ liệu hoặc lệnh được đưa ra khi đọc
(lưu ý: bộ nhớ không phân biệt lệnh và dữ
liệu)
„ Nhận các tín hiệu điều khiển:
• Điều khiển đọc (Read)
• Điều khiển ghi (Write)
80 83

Kết nối mô-đun vào-ra Kết nối CPU (tiếp)


„ Phát địa chỉ đến các mô-đun nhớ hay các
mô-đun vào-ra
„ Đọc lệnh và dữ liệu
„ Đưa dữ liệu ra (sau khi xử lý)
„ Phát tín hiệu điều khiển đến các mô-đun
nhớ và các mô-đun vào-ra
„ Nhận các tín hiệu ngắt

81 84

14
3/6/2017

2. Cấu trúc bus cơ bản Bus dữ liệu


„ Bus: tập hợp các đường kết nối dùng để vận „ Chức năng:
chuyển thông tin giữa các mô-đun của máy tính • vận chuyển lệnh từ bộ nhớ đến CPU
với nhau. • vận chuyển dữ liệu giữa CPU, mô đun nhớ, mô đun
„ Các bus chức năng: vào-ra với nhau
• Bus địa chỉ „ Độ rộng bus dữ liệu: Xác định số bit dữ liệu có
• Bus dữ liệu thể được trao đổi đồng thời.
• Bus điều khiển •
„ Độ rộng bus: là số đường dây của bus có thể • M thường là 8, 16, 32, 64,128 bit.
truyền các bit thông tin đồng thời (chỉ dùng cho „ Ví dụ: Các bộ xử lý Pentium có bus dữ liệu 64
bus địa chỉ và bus dữ liệu) bit
85 88

Sơ đồ cấu trúc bus cơ bản Bus điều khiển


„ Chức năng: vận chuyển các tín hiệu điều
khiển
„ Các loại tín hiệu điều khiển:
• Các tín hiệu điều khiển đọc/ghi
• Các tín hiệu điều khiển ngắt
• Các tín hiệu điều khiển bus

86 89

Một số tín hiệu điều khiển điển


Bus địa chỉ
hình
„ Chức năng: vận chuyển địa chỉ để xác định ngăn nhớ „ Các tín hiệu (phát ra từ CPU) điều khiển đọc-
hay cổng vào-ra ghi:
„ Độ rộng bus địa chỉ: cho biết số lượng ngăn nhớ tối đa • Memory Read (MEMR): điều khiển đọc dữ liệu từ một
được đánh địa chỉ. ngăn nhớ có địa chỉ xác định lên bus dữ liệu.
• Memory Write (MEMW): điều khiển ghi dữ liệu có sẵn
„ có thể đánh địa chỉ tối đa cho 2N ngăn nhớ (không gian trên bus dữ liệu đến một ngăn nhớ có địa chỉ xác
địa chỉ bộ nhớ) định.
„ Ví dụ: • I/O Read (IOR): điều khiển đọc dữ liệu từ một cổng
• Bộ xử lý Pentium có bus địa chỉ 32 bit vào-ra có địa chỉ xác định lên bus dữ liệu.
• có khả năng đánh địa chỉ cho 232 bytes nhớ (4GBytes) (ngăn • I/O Write (IOW): điều khiển ghi dữ liệu có sẵn trên
nhớ tổ chức theo byte)
bus dữ liệu ra một cổng có địa chỉ xác định.
87 90

15
3/6/2017

Một số tín hiệu điều khiển điển


3. Phân cấp bus trong máy tính
hình (tiếp)
„ Các tín hiệu điều khiển ngắt: „ Tổ chức thành nhiều bus trong hệ thống
• Interrupt Request (INTR): Tín hiệu từ bộ điều khiển máy tính
vào-ra gửi đến yêu cầu ngắt CPU để trao đổi vàora.
Tín hiệu INTR có thể bị che. • Cho các thành phần khác nhau:
• Interrupt Acknowledge (INTA): Tín hiệu phát ra từ „ Bus của bộ xử lý
CPU báo cho bộ điều khiển vào-ra biết CPU chấp „ Bus của bộ nhớ chính
nhận ngắt để trao đổi vào-ra. „ Các bus vào-ra

• Non Maskable Interrupt (NMI): tín hiệu ngắt không • Các bus khác nhau về tốc độ
che được gửi đến ngắt CPU.
• Reset: Tín hiệu từ bên ngoài gửi đến CPU và các „ Bus bộ nhớ chính và các bus vào-ra
thành phần khác để khởi động lại máy tính. không phụ thuộc vào bộ xử lý cụ thể.
91 94

Một số tín hiệu điều khiển điển


Một số bus điển hình trong PC
hình (tiếp)
„ Các tín hiệu điều khiển bus: „ Bus của bộ xử lý (Front Side Bus - FSB): có tốc độ
nhanh nhất
• Bus Request (BRQ) hay là Hold: Tín hiệu từ
„ Bus của bộ nhớ chính (nối ghép với các mô-đun RAM)
mô-đun điều khiển vào-ra gửi đến yêu cầu
„ AGP bus (Accelerated Graphic Port) - Bus đồ họa tăng
CPU chuyển nhượng quyền sử dụng bus. tốc: nối ghép card màn hình tăng tốc.
• Bus Grant (BGT) hay là Hold Acknowledge „ PCI bus(Peripheral Component Interconnect): nối ghép
(HLDA): Tín hiệu phát ra từ CPU chấp nhận với các thiết bị ngoại vi có tốc độ trao đổi dữ liệu nhanh.
chuyển nhượng quyền sử dụng bus. „ IDE (Integrated Device Electronics): Bus kết nối với ổ
• Lock/ Unlock: Tín hiệu cấm/cho-phép xin đĩa cứng hoặc ổ đĩa CD, DVD
chuyển nhượng bus „ USB (Universal Serial Bus): Bus nối tiếp đa năng

92 95

Máy tính Pentium 4 dùng


Đặc điểm của cấu trúc đơn bus
Chipset 845
„ Bus hệ thống chỉ phục vụ được một yêu cầu trao
đổi dữ liệu tại một thời điểm
„ Bus hệ thống phải có tốc độ bằng tốc độ bus
của mô-đun nhanh nhất trong hệ thống
„ Bus hệ thống phụ thuộc vào cấu trúc bus (các
tín hiệu) của bộ xử lý → các mô-đun nhớ và các
mô-đun vào-ra cũng phụ thuộc vào bộ xử lý.
„ Khắc phục: phân cấp bus → cấu trúc đa bus

93 96

16
3/6/2017

Chipset 865 Ví dụ về bo mạch chính

97 100

4. Các vấn đề liên quan đến


Chipset 955
thiết kế bus
„ Các kiểu bus
„ Phân xử bus
„ Định thời bus

98 101

Chipset 975 Các kiểu bus


„ Bus dành riêng (Dedicated):
• Các đường địa chỉ và dữ liệu tách rời
• Ưu điểm: điều khiển đơn giản
• Nhược điểm: có nhiều đường kết nối
„ Bus dồn kênh (Multiplexed)
• Các đường dùng chung cho địa chỉ và dữ liệu
• Có đường điều khiển để phân biệt có địa chỉ hay có dữ liệu
• Ưu điểm: có ít đường dây
• Nhược điểm:
„ Điều khiển phức tạp hơn
„ Hiệu năng hạn chế

99 102

17
3/6/2017

Phân xử bus Giản đồ định thời Bus đồng bộ


„ Có nhiều mô-đun điều khiển bus
• ví dụ: CPU và bộ điều khiển vào-ra
„ Chỉ cho phép một mô-đun điều khiển bus
ở một thời điểm.
„ Phân xử bus có thể là tập trung hay phân
tán.

103 106

Giản đồ định thời thao tác đọc


Phân xử bus (tiếp)
của Bus không đồng bộ
„ Phân xử bus tập trung
• Có một Bộ điều khiển bus (Bus Controller)
hay còn gọi là Bộ phân xử bus (Arbiter)
• Có thể là một phần của CPU hoặc mạch tách
rời.
„ Phân xử bus phân tán
• Mỗi một mô-đun có thể chiếm bus
• Có đường điều khiển đến tất cả các môđun
khác
104 107

Giản đồ định thời thao tác ghi


Định thời bus (Timing)
của Bus không đồng bộ
„ Phối hợp các sự kiện trên bus
„ Bus đồng bộ
• Các sự kiện trên bus được xác định bởi một tín hiệu
xung nhịp xác định (clock)
• Bus Điều khiển bao gồm cả đường Clock
• Tất cả các mô-đun có thể đọc đường clock
„ Bus không đồng bộ
• Không có đường tín hiệu Clock
• Kết thúc một sự kiện này trên bus sẽ kích hoạt cho
một sự kiện tiếp theo
105 108

18
3/6/2017

1. Hệ thập phân
„ Cơ số 10
„ 10 chữ số: 0,1,2,3,4,5,6,7,8,9
„ Dùng n chữ số thập phân có thể biểu diễn
HẾT CHƯƠNG 1 được 10n giá trị khác nhau:
„ 00...000 = 0
„ 99...999 = 10n - 1

109 112

Chương 2: Biểu diễn thông tin


Dạng tổng quát của số thập phân
trong máy tính
2.1. Các hệ đếm cơ bản „ Giá trị của A được hiểu như sau:
2.2. Mã hóa và lưu trữ dữ liệu trong máy tính
2.3. Biểu diễn số nguyên
2.4. Thực hiện các phép toán số học với số
nguyên „ Ví dụ:
2.5. Số dấu phẩy động
2.6. Biểu diễn ký tự
110 113

2.1. Các hệ đếm cơ bản Ví dụ số thập phân


„ Hệ thập phân (Decimal System)
„ con người sử dụng „ Các chữ số của phần nguyên:
„ Hệ nhị phân (Binary System)
„ máy tính sử dụng
„ Hệ mười sáu (Hexadecimal System)
„ dùng để viết gọn cho số nhị phân
„ Các chữ số của phần thập phân:

111 114

19
3/6/2017

2. Hệ nhị phân 2. Hệ nhị phân


„ Cơ số 2 „ Chuyển đổi số nguyên thập phân sang nhị
„ 2 chữ số nhị phân: 0 và 1 phân
„ chữ số nhị phân gọi là bit (binary digit)
• Phương pháp 1: chia dần cho 2 rồi lấy phần dư
• Phương pháp 2: Phân tích thành tổng của các
„ Bit là đơn vị thông tin nhỏ nhất
số 2i =>nhanh hơn
„ Dùng n bit có thể biểu diễn được 2n giá trị
khác nhau:
• 00...000 = 0
• 11...111 = 2n - 1
115 118

Dạng tổng quát của số nhị phân 2. Hệ nhị phân


„ Có một số nhị phân A như sau: „ Phương pháp chia dần cho 2

„ Giá trị của A được tính như sau:

116 119

Phương pháp phân tích thành


Ví dụ số nhị phân
tổng của các 2i
„ Ví dụ 1: chuyển đổi 105(10)
„ 105 = 64 + 32 + 8 +1 = 26 + 25 + 23 + 20

„ Kết quả: 105(10) = 0110 1001(2)


„ Ví dụ 2: 17000(10) = 16384 + 512 + 64 + 32 + 8
= 214 + 29 + 26 + 25 + 23
17000(10) = 0100 0010 0110 1000(2)
117 120

20
3/6/2017

Chuyển đổi số lẻ thập phân sang


3. Hệ mười sáu (Hexa)
nhị phân
„ Ví dụ 1: chuyển đổi 0.6875(10)

„ Kết quả : 0.6875(10)= 0.1011(2)

121 124

Chuyển đổi số lẻ thập phân sang


3. Hệ mười sáu (Hexa)
nhị phân (tiếp)

122 125

Chuyển đổi số lẻ thập phân sang


4. Chuyển đổi giữa các hệ đếm
nhị phân (tiếp)
„ Chuyển đổi hệ 10 ↔ 16
„ Chuyển đổi hệ 2 ↔ 8
„ Chuyển đổi hệ 2 ↔ 16
„ Chuyển đổi hệ 8 ↔ 16

123 126

21
3/6/2017

2.2. Mã hóa và lưu trữ dữ liệu 2.2. Mã hóa và lưu trữ dữ liệu
trong máy tính trong máy tính (tiếp)
1. Nguyên tắc chung về mã hóa dữ liệu „ Độ dài từ dữ liệu
• Mọi dữ liệu đưa vào máy tính đều phải được • Độ dài từ dữ liệu là số bit được sử dụng để mã
mã hóa thành số nhị phân hóa loại dữ liệu tương ứng
• Các loại dữ liệu • Thường là bội của 8-bit
„ Dữ liệu nhân tạo: do con người qui ước • VD: 8, 16, 32, 64 bit
„ Dữ liệu tự nhiên: tồn tại khách quan với con người

127 130

2.2. Mã hóa và lưu trữ dữ liệu 2.2. Mã hóa và lưu trữ dữ liệu
trong máy tính (tiếp) trong máy tính (tiếp)
„ Mã hoá dữ liệu nhân tạo 2. Thứ tự lưu trữ các byte trong bộ nhớ chính
• Mã hóa theo các chuẩn qui ước „ Bộ nhớ chính thường tổ chức theo byte
• Dữ liệu số: „ Hai cách lưu trữ dữ liệu nhiều byte:
… Đầu nhỏ (Little-endian): Byte có ý nghĩa thấp được lưu trữ
„ Số nguyên: mã hóa theo một số chuẩn
ở ngăn nhớ có địa chỉ nhỏ, byte có ý nghĩa cao được lưu
„ Số thực: mã hóa bằng số dấu phẩy động trữ ở ngăn nhớ có địa chỉ lớn.
• Dữ liệu ký tự: mã hóa theo bộ mã ký tự … Đầu to (Big-endian): Byte có ý nghĩa cao được lưu trữ ở
ngăn nhớ có địa chỉ nhỏ, byte có ý nghĩa thấp được lưu trữ
ở ngăn nhớ có địa chỉ lớn.

128 131

2.2. Mã hóa và lưu trữ dữ liệu 2.2. Mã hóa và lưu trữ dữ liệu
trong máy tính (tiếp) trong máy tính (tiếp)
„ Mã hóa và tái tạo tín hiệu vật lý „ Ví dụ lưu trữ dữ liệu 32-bit

129 132

22
3/6/2017

2.2. Mã hóa và lưu trữ dữ liệu


Các ví dụ
trong máy tính (tiếp)
„ Lưu trữ của các bộ xử lý điển hình
• Intel 80x86 và các Pentium: little-endian
• Motorola 680x0, SunSPARC: big-endian
• Power PC, Itanium: big-endian

133 136

2.3. Biểu diễn số nguyên Các ví dụ (tiếp)


„ Số nguyên không dấu (Unsigned Integer)
„ Số nguyên có dấu (Signed Integer)

134 137

1. Biểu diễn số nguyên không dấu Các ví dụ (tiếp)


„ Nguyên tắc tổng quát: Dùng n bit biểu diễn „ Với n = 8 bit
số nguyên không dấu A: • Biểu diễn được các giá trị từ 0 đến 255

135 138

23
3/6/2017

Các ví dụ (tiếp) Số bù chín và Số bù mười (tiếp)


„ Trục số học với n = 8 bit

139 142

Các ví dụ (tiếp) b. Số bù một và Số bù hai


„ Với n = 16 bit, 32 bit, 64 bit

140 143

2. Biểu diễn số nguyên có dấu b. Số bù một và Số bù hai (tiếp)


a. Số bù chín và Số bù mười

141 144

24
3/6/2017

Quy tắc tìm Số bù một và Số bù


Biểu diễn số âm
hai

145 148

c. Biểu diễn số nguyên có dấu Biểu diễn tổng quát cho số


bằng mã bù hai nguyên có dấu

146 149

Biểu diễn số dương Các ví dụ

147 150

25
3/6/2017

Các ví dụ (tiếp) Với n = 16 bit, 32 bit, 64 bit

151 154

Với n = 8 bit Chuyển đổi từ byte thành word


„ Biểu diễn được các giá trị từ -128 đến +127

152 155

Trục số học số nguyên có dấu với 3. Biểu diễn số nguyên theo mã


n = 8 bit BCD

153 156

26
3/6/2017

2.4. Thực hiện các phép toán số


Ví dụ số BCD
học với số nguyên
1. Phép cộng số nguyên không dấu
• Bộ cộng n-bit

157 160

Nguyên tắc cộng số nguyên


Các kiểu lưu trữ số BCD
không dấu
„ Khi cộng hai số nguyên không dấu n-bit, kết
quả nhận được là n-bit:

158 161

Phép cộng số BCD Ví dụ cộng số nguyên không dấu

159 162

27
3/6/2017

Ví dụ cộng số nguyên có dấu bị


2. Phép đảo dấu
tràn

163 166

3. Cộng số nguyên có dấu 4. Nguyên tắc thực hiện phép trừ


„ Phép trừ hai số nguyên: X-Y = X+(-Y)
„ Nguyên tắc: Lấy bù hai của Y để được –Y,
rồi cộng với X

164 167

Ví dụ cộng số nguyên có dấu


5. Nhân số nguyên không dấu
không tràn

165 168

28
3/6/2017

5. Nhân số nguyên không dấu


Ví dụ nhân số nguyên không dấu
(tiếp)
„ Các tích riêng phần được xác định như sau:
• Nếu bit của số nhân bằng 0 → tích riêng phần bằng 0.
• Nếu bit của số nhân bằng 1 → tích riêng phần bằng số
bị nhân.
• Tích riêng phần tiếp theo được dịch trái một bit so với
tích riêng phần trước đó.
„ Tích bằng tổng các tích riêng phần
„ Nhân hai số nguyên n-bit, tích có độ dài 2n bit
(không bao giờ tràn).

169 172

Bộ nhân số nguyên không dấu 6. Nhân số nguyên có dấu


„ Sử dụng thuật giải nhân không dấu
„ Sử dụng thuật giải Booth

170 173

Lưu đồ nhân số nguyên không Sử dụng thuật giải nhân không


dấu dấu
„ Bước 1. Chuyển đổi số bị nhân và số nhân thành
số dương tương ứng
„ Bước 2. Nhân hai số dương bằng thuật giải nhân
số nguyên không dấu, được tích của hai số
dương.
„ Bước 3. Hiệu chỉnh dấu của tích:
• Nếu hai thừa số ban đầu cùng dấu thì giữ nguyên kết quả ở bước
2.
• Nếu hai thừa số ban đầu là khác dấu thì đảo dấu kết quả của
bước 2.

171 174

29
3/6/2017

Thuật giải Booth Lưu đồ chia số nguyên không dấu

175 178

7. Chia số nguyên không dấu 8. Chia số nguyên có dấu


„ Bước 1. Chuyển đổi số bị chia và số chia về thành số dương
tương ứng.
„ Bước 2. Sử dụng thuật giải chia số nguyên không dấu để chia
hai số dương, kết quả nhận được là thương Q và phần dư R
đều là dương
„ Bước 3. Hiệu chỉnh dấu của kết quả như sau:
(Lưu ý: phép đảo dấu thực chất là thực hiện phép lấy bù hai)

176 179

Bộ chia số nguyên không dấu 2.5. Số thực dấu phẩy động


1. Nguyên tắc chung

177 180

30
3/6/2017

2. Chuẩn IEEE754/85 Ví dụ 1
„ Cơ số R = 2
„ Các dạng:
• Dạng 32-bit
• Dạng 44-bit
• Dạng 64-bit
• Dạng 80-bit

181 184

Các dạng biểu diễn chính Ví dụ 2

182 185

Dạng 32 bit Ví dụ 3

183 186

31
3/6/2017

Bài tập Dạng 64-bit


Biểu diễn các số thực sau đây về dạng số
dấu phẩy động IEEE754 32-bit:
X = - 27.0625; Y = 1/32

187 190

Các qui ước đặc biệt Dạng 80-bit

188 191

3.Thực hiện phép toán số dấu


Dải giá trị biểu diễn
phẩy động

189 192

32
3/6/2017

Thuật toán nhân số dấu phẩy


Các khả năng tràn số
động

193 196

Phép cộng và phép trừ Thuật toán chia số dấu phẩy động
„ Kiểm tra các số hạng có bằng 0 hay không
„ Hiệu chỉnh phần định trị
„ Cộng hoặc trừ phần định trị
„ Chuẩn hoá kết quả

194 197

Thuật toán cộng/trừ số dấu phẩy


2.6. Biểu diễn ký tự
động
„ Bộ mã ASCII (American Standard Code for
Information Interchange)
„ Bộ mã Unicode

195 198

33
3/6/2017

1. Bộ mã ASCII Các ký tự hiển thị chuẩn

199 202

Các ký tự chuẩn Các ký tự hiển thị chuẩn (tiếp)

200 203

Các ký tự hiển thị chuẩn (tiếp)

201 204

34
3/6/2017

Các mã điều khiển: có mã Các mã điều khiển (tiếp)

205 208

Các mã điều khiển (tiếp) Các ký tự mở rộng


„ Các ký tự mở rộng được định nghĩa bởi:
• nhà chế tạo máy tính
• người phát triển phần mềm.
„ Ví dụ:
• Bộ mã ký tự mở rộng của IBM→IBM-PC.
• Bộ mã ký tự mở rộng của Apple →Macintosh
• Bộ mã tiếng Việt TCVN3.

206 209

Các mã điều khiển (tiếp) 2. Bộ mã hợp nhất: Unicode


• Do các hãng máy tính hàng đầu thiết kế
• Bộ mã 16-bit
• Bộ mã đa ngôn ngữ
• Có hỗ trợ các ký tự tiếng Việt

207 210

35
3/6/2017

4.1. Cấu trúc cơ bản của CPU


1. Nhiệm vụ và cấu trúc của CPU
• Nhiệm vụ của CPU:
„ Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ nhớ.
„ Giải mã lệnh (Decode Instruction): xác định thao tác mà lệnh
yêu cầu.
HẾT CHƯƠNG 2 „ Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ hoặc các
cổng vào-ra.
„ Xử lý dữ liệu (Process Data): thực hiện phép toán số học hay
phép toán logic với các dữ liệu.
„ Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay cổng vào-ra

211 214

Chương 3: Mạch logic số Sơ đồ cấu trúc cơ bản của CPU

212 215

Chương 4: Bộ xử lý CPU Các thành phần cơ bản của CPU


„ Cấu trúc cơ bản của CPU „ Đơn vị điều khiển (Control Unit - CU)
„ Tập lệnh „ Đơn vị số học và logic (Arithmetic and Logic
„ Hoạt động của CPU Unit - ALU)
„ Kiến trúc của các bộ xử lý tiên tiến „ Tập thanh ghi (Register Set - RS)

„ Kiến trúc Intel „ Đơn vị nối ghép bus (Bus Interface Unit –
BIU)
„ Bus bên trong (Internal Bus)

213 216

36
3/6/2017

2. Đơn vị số học và logic Mô hình kết nối đơn vị điều khiển


„ Chức năng: Thực hiện các phép toán số
học và phép toán logic:
• Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo
dấu
• Logic: AND, OR, XOR, NOT, phép dịch bit.

217 220

Các tín hiệu đưa đến đơn vị điều


Mô hình kết nối ALU
khiển
„ Clock: tín hiệu nhịp từ mạch tạo dao động
bên ngoài.
„ Mã lệnh từ thanh ghi lệnh đưa đến để giải
mã.
„ Các cờ từ thanh ghi cờ cho biết trạng thái
của CPU.
„ Các tín hiệu yêu cầu từ bus điều khiển

218 221

Các tín hiệu phát ra từ đơn vị điều


3. Đơn vị điều khiển
khiển
„ Chức năng „ Các tín hiệu điều khiển bên trong CPU:
• Điều khiển nhận lệnh từ bộ nhớ đưa vào thanh • Điều khiển các thanh ghi
ghi lệnh • Điều khiển ALU
• Tăng nội dung của PC để trỏ sang lệnh kế tiếp „ Các tín hiệu điều khiển bên ngoài CPU:
• Giải mã lệnh đã được nhận để xác định thao • Điều khiển bộ nhớ
tác mà lệnh yêu cầu
• Điều khiển các mô-đun vào-ra
• Phát ra các 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 và
đáp ứng với các yêu cầu đó.
219 222

37
3/6/2017

Các phương pháp thiết kế đơn vị


Đơn vị điều khiển nối kết cứng
điều khiển
„ Đơn vị điều khiển vi chương trình
(Microprogrammed Control Unit)
„ Đơn vị điều khiển nối kết cứng (Hardwired
Control Unit)

223 226

Đơn vị điều khiển nối kết cứng


Đơn vị điều khiển vi chương trình
(tiếp)
„ Sử dụng mạch cứng để giải mã và tạo các
tín hiệu điều khiển thực hiện lệnh
„ Tốc độ nhanh
„ Đơn vị điều khiển phức tạp

224 227

Đơn vị điều khiển vi chương trình


4.Tập thanh ghi
(tiếp)
„ Bộ nhớ vi chương trình (ROM) lưu trữ các vi „ Chức năng và đặc điểm:
chương trình (microprogram) • Chứa các thông tin tạm thời phục vụ cho hoạt
„ Một vi chương trình bao gồm các vi lệnh động ở thời điểm hiện tại của CPU
(microinstruction) • Được coi là mức đầu tiên của hệ thống nhớ
„ Mỗi vi lệnh mã hoá cho một vi thao tác • Số lượng thanh ghi nhiều → tăng hiệu năng
(microoperation) của CPU
„ Để hoàn thành một lệnh cần thực hiện một hoặc • Có hai loại thanh ghi:
một vài vi chương trình „ Các thanh ghi lập trình được
„ Tốc độ chậm „ Các thanh ghi không lập trình được
225 228

38
3/6/2017

Phân loại thanh ghi theo chức


Minh họa bộ đếm chương trình
năng
„ Thanh ghi địa chỉ: quản lý địa chỉ của ngăn nhớ
hay cổng vào-ra.
„ Thanh ghi dữ liệu: chứa tạm thời các dữ liệu.
„ Thanh ghi đa năng: có thể chứa địa chỉ hoặc dữ
liệu.
„ Thanh ghi điều khiển/trạng thái: chứa các thông
tin điều khiển và trạng thái của CPU.
„ Thanh ghi lệnh: chứa lệnh đang được thực hiện

229 232

Một số thanh ghi điển hình Thanh ghi con trỏ dữ liệu
„ Các thanh ghi địa chỉ „ Chứa địa chỉ của
• Bộ đếm chương trình PC (Program Counter) ngăn nhớ dữ liệu
• Con trỏ dữ liệu DP (Data Pointer) mà CPU muốn
• Con trỏ ngăn xếp SP (Stack Pointer) truy nhập
• Thanh ghi cơ sở và thanh ghi chỉ số (Base „ Thường có một
Register & Index Register) số thanh ghi con
„ Các thanh ghi dữ liệu trỏ dữ liệu
„ Thanh ghi trạng thái
230 233

Bộ đếm chương trình PC Ngăn xếp (Stack)


„ Còn được gọi là con trỏ lệnh IP (Instruction „ Ngăn xếp là vùng nhớ có cấu trúc LIFO
Pointer) (Last In - First Out)
„ Giữ địa chỉ của lệnh tiếp theo sẽ được nhận „ Ngăn xếp thường dùng để phục vụ cho
vào. chương trình con
„ Sau khi một lệnh được nhận vào, nội dung „ Đáy ngăn xếp là một ngăn nhớ xác định
PC tự động tăng để trỏ sang lệnh kế tiếp. „ Đỉnh ngăn xếp là thông tin nằm ở vị trí trên
cùng trong ngăn xếp
„ Đỉnh ngăn xếp có thể bị thay đổi
231 234

39
3/6/2017

Con trỏ ngăn xếp SP (Stack Minh họa thanh ghi cơ sở và


Pointer) thanh ghi chỉ số
„ Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp
„ Khi cất một thông tin vào ngăn xếp:
• Nội dung của SP tự động giảm
• Thông tin được cất vào ngăn nhớ được trỏ bởi SP
„ Khi lấy một thông tin ra khỏi ngăn xếp:
• Thông tin được đọc từ ngăn nhớ được trỏ bởi SP
• Nội dung của SP tự động tăng
„ Khi ngăn xếp rỗng, SP trỏ vào đáy

235 238

Minh họa con trỏ ngăn xếp SP Các thanh ghi dữ liệu
„ Chứa các dữ liệu tạm thời hoặc các kết quả
trung gian
„ Cần có nhiều thanh ghi dữ liệu
„ Các thanh ghi số nguyên: 8, 16, 32, 64 bit
„ Các thanh ghi số dấu phẩy động

236 239

Thanh ghi cơ sở và thanh ghi chỉ Thanh ghi trạng thái (Status
số Register)
„ Thanh ghi cơ sở: chứa địa chỉ của ngăn • Còn gọi là thanh ghi cờ (Flag Register)
nhớ cơ sở (địa chỉ cơ sở) • Chứa các thông tin trạng thái của CPU
Các cờ phép toán: báo hiệu trạng thái của kết quả
„ Thanh ghi chỉ số: chứa độ lệch địa chỉ giữa
„
phép toán
ngăn nhớ mà CPU cần truy nhập so với „ Các cờ điều khiển: biểu thị trạng thái điều khiển của
ngăn nhớ cơ sở (chỉ số) CPU
„ Địa chỉ của ngăn nhớ cần truy nhập = địa
chỉ cơ sở + chỉ số

237 240

40
3/6/2017

Ví dụ cờ phép toán 4.2. Tập lệnh


„ Cờ Zero (cờ rỗng): được thiết lập lên 1 khi kết quả của 1. Giới thiệu chung về tập lệnh
phép toán bằng 0.
• Mỗi bộ xử lý có một tập lệnh xác định
„ Cờ Sign (cờ dấu): được thiết lập lên 1 khi kết quả phép
toán nhỏ hơn 0 • Tập lệnh thường có hàng chục đến hàng trăm
„ Cờ Carry (cờ nhớ): được thiết lập lên 1 nếu phép toán có lệnh
nhớ ra ngoài bit cao nhất → cờ báo tràn với số không dấu. • Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý
„ Cờ Overflow (cờ tràn): được thiết lập lên 1 nếu cộng hai hiểu được để thực hiện một thao tác xác định.
số nguyên cùng dấu mà kết quả có dấu ngược lại → cờ
báo tràn với số có dấu. • Các lệnh được mô tả bằng các ký hiệu gợi nhớ
→ chính là các lệnh của hợp ngữ

241 244

Ví dụ cờ điều khiển Các thành phần của lệnh máy


„ Cờ Interrupt (Cờ cho phép ngắt):
„ Nếu IF = 1 → CPU ở trạng thái cho phép
Mã thao tác (operation code → opcode): mã hóa cho thao
ngắt với tín hiệu yêu cầu ngắt từ bên ngoài „
tác mà bộ xử lý phải thực hiện
gửi tới „ Địa chỉ toán hạng: chỉ ra nơi chứa các toán hạng mà thao
„ Nếu IF = 0 → CPU ở trạng thái cấm ngắt tác sẽ tác động
• Toán hạng nguồn: dữ liệu vào của thao tác
với tín hiệu yêu cầu ngắt từ bên ngoài gửi • Toán hạng đích: dữ liệu ra của thao tác
tới

242 245

Số lượng địa chỉ toán hạng trong


Tập thanh ghi của một số bộ xử lý
lệnh (1)
„ Ba địa chỉ toán hạng:
• 2 toán hạng nguồn, 1 toán hạng đích
• c=a+b
• Từ lệnh dài vì phải mã hoá địa chỉ cho cả ba
toán hạng
• Được sử dụng trên các bộ xử lý tiên tiến

243 246

41
3/6/2017

Số lượng địa chỉ toán hạng trong


Đánh giá về số địa chỉ toán hạng
lệnh (2)
„ Hai địa chỉ toán hạng: „ Nhiều địa chỉ toán hạng
• Các lệnh phức tạp hơn
• Một toán hạng vừa là toán hạng nguồn vừa là
• Cần nhiều thanh ghi
toán hạng đích; toán hạng còn lại là toán hạng • Chương trình có ít lệnh hơn
nguồn • Nhận lệnh và thực hiện lệnh chậm hơn
• a=a+b „ Ít địa chỉ toán hạng
• Giá trị cũ của 1 toán hạng nguồn bị mất vì phải • Các lệnh đơn giản hơn
• Cần ít thanh ghi
chứa kết quả
• Chương trình có nhiều lệnh hơn
• Rút gọn độ dài từ lệnh • Nhận lệnh và thực hiện lệnh nhanh hơn
• Phổ biến
247 250

Số lượng địa chỉ toán hạng trong Các vấn đề của thiết kế tập lệnh
lệnh (3) (1)
„ Một địa chỉ toán hạng: „ Về thao tác
• Một toán hạng được chỉ ra trong lệnh • Bao nhiêu thao tác ?
• Một toán hạng là ngầm định → thường là thanh • Các thao tác nào ?
ghi (thanh chứa –accumulator) • Mức độ phức tạp của các thao tác ?
• Được sử dụng trên các máy ở các thế hệ trước „ Các kiểu dữ liệu
„ Các khuôn dạng lệnh
• Độ dài của trường mã thao tác
• Số lượng địa chỉ toán hạng
248 251

Số lượng địa chỉ toán hạng trong Các vấn đề của thiết kế tập lệnh
lệnh (4) (2)
„ 0 địa chỉ toán hạng: „ Các thanh ghi
• Các toán hạng đều được ngầm định • Số thanh ghi của CPU được sử dụng
• Sử dụng Stack • Các thao tác nào được thực hiện trên các thanh ghi
• Ví dụ: „ Các phương pháp định địa chỉ (xét sau)
push a (addressing modes)
push b
add „ RISC hay CISC (xét sau)
pop c • Reduced Instruction Set Computing
có nghĩa là : c = a+b • Complex Instruction Set Computing
• không thông dụng

249 252

42
3/6/2017

2. Các kiểu thao tác cơ bản Các lệnh logic


„ Chuyển dữ liệu „ AND Thực hiện phép AND hai toán hạng
„ Xử lý số học với số nguyên „ OR Thực hiện phép OR hai toán hạng
„ Xử lý logic „ XOR Thực hiện phép XOR hai toán hạng
„ Điều khiển vào-ra „ NOT Đảo bit của toán hạng (lấy bù 1)
„ Chuyển điều khiển (rẽ nhánh) „ TEST Thực hiện phép AND hai toán hạng
„ Điều khiển hệ thống để lập cờ

253 256

Các lệnh chuyển dữ liệu Minh hoạ các lệnh AND, OR, XOR
„ MOVE Copy dữ liệu từ nguồn đến đích „ Giả sử có hai thanh ghi chứa dữ liệu như sau:
„ LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý (R1) = 1010 1010
(R2) = 0000 1111
„ STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ
„ R1 → (R1) AND (R2) = 0000 1010
„ EXCHANGE Trao đổi nội dung của nguồn và đích Phép toán AND dùng để xoá một số bit và giữ nguyên một số bit còn
„ CLEAR Chuyển các bit 0 vào toán hạng đích lại của toán hạng.
„ SET Chuyển các bit 1 vào toán hạng đích „ R1 → (R1) OR (R2) = 1010 1111
Phép toán OR dùng để thiết lập một số bit và giữ nguyên một số bit
„ PUSH Cất nội dung toán hạng nguồn vào ngăn còn lại của toán hạng.
xếp „ R1 → (R1) XOR (R2) = 1010 0101
„ POP Lấy nội dung đỉnh ngăn xếp đưa đến Phép toán XOR dùng để đảo một số bit và giữ nguyên một số bit còn
toán hạng đích lại của toán hạng.
254 257

Các lệnh số học Các lệnh logic (tiếp)


„ ADD Cộng hai toán hạng „ SHIFT Dịch trái (phải) toán hạng
„ SUBTRACT Trừ hai toán hạng
„ ROTATE Quay trái (phải) toán hạng
„ MULTIPLY Nhân hai toán hạng
„ DIVIDE Chia hai toán hạng
„ ABSOLUTE Lấy trị tuyệt đối toán hạng
„ NEGATE Đổi dấu toán hạng (lấy bù 2)
„ INCREMENT Tăng toán hạng thêm 1
„ DECREMENT Giảm toán hạng đi 1
„ COMPARE Trừ hai toán hạng để lập cờ
255 258

43
3/6/2017

Các thao tác SHIFT và ROTATE Lệnh rẽ nhánh không điều kiện
„ Chuyển tới thực hiện
lệnh ở vị trí có địa chỉ
XXX:
„ PC ← XXX

259 262

Các lệnh vào ra chuyên dụng Lệnh rẽ nhánh có điều kiện


„ INPUT Copy dữ liệu từ một cổng xác „ Trong lệnh có kèm theo điều kiện
định đưa đến đích „ Kiểm tra điều kiện trong lệnh:
• Nếu điều kiện đúng → chuyển tới thực hiện lệnh ở vị trí
„ OUTPUT Copy dữ liệu từ nguồn đến
có địa chỉ XXX
một cổng xác định PC ← XXX
• Nếu điều kiện sai → chuyển sang thực hiện
lệnh_kế_tiếp
„ Điều kiện thường được kiểm tra thông qua các cờ
„ Có nhiều lệnh rẽ nhánh có điều kiện
260 263

Minh hoạ lệnh rẽ nhánh có điều


Các lệnh chuyển điều khiển
kiện
„ JUMP (BRANCH) Lệnh nhảy không điều kiện:
• nạp vào PC một địa chỉ xác định
„ JUMP CONDITIONAL Lệnh nhảy có điều kiện:
• điều kiện đúng → nạp vào PC một địa chỉ xác định
• điều kiện sai → không làm gì cả
„ CALL Lệnh gọi chương trình con:
• Cất nội dung của PC (địa chỉ trở về) ra một vị trí xác định (thường ở
Stack)
• Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con
„ RETURN Lệnh trở về từ chương trình con:
• Khôi phục địa chỉ trở về trả lại cho PC để trở về chương trình chính

261 264

44
3/6/2017

Lệnh CALL và RETURN Sử dụng Stack


„ Lệnh gọi chương trình con: lệnh CALL
• Cất nội dung PC (chứa địa chỉ của lệnh_kế_tiếp) ra
Stack
• Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình
con được gọi
→Bộ xử lý được chuyển sang thực hiện chương trình
con tương ứng
„ Lệnh trở về từ chương trình con: lệnh RETURN
• Lấy địa chỉ của lệnh_kế_tiếp được cất ở Stack nạp trả
lại cho PC → Bộ xử lý được điều khiển quay trở về
thực hiện tiếp lệnh nằm sau lệnh CALL 265 268

Minh hoạ lệnh CALL và RETURN Các lệnh điều khiển hệ thống
„ HALT Dừng thực hiện chương trình
„ WAIT Tạm dừng thực hiện chương trình, lặp
kiểm tra điều kiện cho đến khi thoả mãn thì tiếp
tục thực hiện
„ NO OPERATION Không thực hiện gì cả
„ LOCK Cấm không cho xin chuyển nhượng bus
„ UNLOCK Cho phép xin chuyển nhượng bus

266 269

3. Các phương pháp định địa chỉ


Gọi các thủ tục lồng nhau
(addressing modes)
Khái niệm về định địa chỉ (addressing)
„ Toán hạng của lệnh có thể là:
• Một giá trị cụ thể nằm ngay trong lệnh
• Nội dung của thanh ghi
• Nội dung của ngăn nhớ hoặc cổng vào-ra
„ Phương pháp định địa chỉ là cách thức địa
chỉ hóa trong trường địa chỉ của lệnh để
xác định nơi chứa toán hạng
267 270

45
3/6/2017

Các phương pháp định địa chỉ


Sơ đồ định địa chỉ thanh ghi
thông dụng
„ Định địa chỉ tức thì
„ Định địa chỉ thanh ghi
„ Định địa chỉ trực tiếp
„ Định địa chỉ gián tiếp qua thanh ghi
„ Định địa chỉ gián tiếp
„ Định địa chỉ dịch chuyển

271 274

Định địa chỉ tức thì Định địa chỉ trực tiếp
„ Toán hạng nằm ngay trong Trường địa chỉ của „ Toán hạng là ngăn nhớ có địa chỉ được chỉ
lệnh ra trực tiếp trong Trường địa chỉ của lệnh
„ Chỉ có thể là toán hạng nguồn
„ Ví dụ: ADD R1, A ;R1 ← R1 + (A)
„ Ví dụ:
• Cộng nội dung thanh ghi R1 với nội dung của
ADD R1, 5 ; R1← R1+5 ngăn nhớ có địa chỉ là A
„ Không tham chiếu bộ nhớ • Tìm toán hạng trong bộ nhớ ở địa chỉ A
„ Truy nhập toán hạng rất nhanh „ CPU tham chiếu bộ nhớ một lần để truy
„ Dải giá trị của toán hạng bị hạn chế nhập dữ liệu
272 275

Định địa chỉ thanh ghi Sơ đồ định địa chỉ trực tiếp
„ Toán hạng được chứa trong thanh ghi có tên
trong Trường địa chỉ
„ Ví dụ:
ADD R1, R2 ; R1← R1+R2
„ Số lượng thanh ghi ít → Trường địa chỉ chỉ cần ít
bit
„ Không tham chiếu bộ nhớ
„ Truy nhập toán hạng nhanh
„ Tăng số lượng thanh ghi → hiệu quả hơn
273 276

46
3/6/2017

Định địa chỉ gián tiếp qua thanh Sơ đồ định địa chỉ gián tiếp qua
ghi ngăn nhớ
„ Toán hạng là ngăn nhớ có địa chỉ nằm
trong thanh ghi
„ Trường địa chỉ cho biết tên thanh ghi đó
„ Thanh ghi có thể là ngầm định
„ Thanh ghi này được gọi là thanh ghi con trỏ
„ Vùng nhớ có thể được tham chiếu là lớn
(2n), (với n là độ dài của thanh ghi)

277 280

Sơ đồ định địa chỉ gián tiếp qua


Định địa chỉ dịch chuyển
thanh ghi
„ Để xác định toán hạng, Trường địa chỉ
chứa hai thành phần:
„ Tên thanh ghi
„ Hằng số
„ Địa chỉ của toán hạng = nội dung thanh ghi
+ hằng số
„ Thanh ghi có thể được ngầm định

278 281

Định địa chỉ gián tiếp qua ngăn


Sơ đồ định địa chỉ dịch chuyển
nhớ
„ Ngăn nhớ được trỏ bởi Trường địa chỉ của
lệnh chứa địa chỉ của toán hạng
„ Có thể gián tiếp nhiều lần
„ Giống như khái niệm biến con trỏ và biến
động trong lập trình
„ CPU phải thực hiện tham chiếu bộ nhớ
nhiều lần để tìm toán hạng → chậm
„ Vùng nhớ có thể được tham chiếu là lớn
279 282

47
3/6/2017

Các dạng của định địa chỉ dịch


Nhận lệnh
chuyển
„ Địa chỉ hoá tương đối với PC „ CPU đưa địa chỉ của lệnh cần nhận từ bộ
• Thanh ghi là Bộ đếm chương trình PC đếm chương trình PC ra bus địa chỉ
• Toán hạng có địa chỉ cách ngăn nhớ được trỏ bởi PC
một độ lệch xác định „ CPU phát tín hiệu điều khiển đọc bộ nhớ

„ Định địa chỉ cơ sở „ Lệnh từ bộ nhớ được đặt lên bus dữ liệu và
• Thanh ghi chứa địa chỉ cơ sở được CPU copy vào thanh ghi lệnh IR
• Hằng số là chỉ số „ CPU tăng nội dung PC để trỏ sang lệnh kế
„ Định địa chỉ chỉ số tiếp
• Hằng số là địa chỉ cơ sở
• Thanh ghi chứa chỉ số
283 286

4.3. Hoạt động của CPU Sơ đồ mô tả quá trình nhận lệnh


1. Chu trình lệnh
• Nhận lệnh
• Giải mã lệnh
• Nhận toán hạng
• Thực hiện lệnh
• Cất toán hạng
• Ngắt

284 287

Giản đồ trạng thái chu trình lệnh Giải mã lệnh


„ Lệnh từ thanh ghi lệnh IR được đưa đến
đơn vị điều khiển
„ Đơn vị điều khiển tiến hành giải mã lệnh để
xác định thao tác phải thực hiện
„ Giải mã lệnh xảy ra bên trong CPU

285 288

48
3/6/2017

Nhận dữ liệu Thực hiện lệnh


„ CPU đưa địa chỉ của toán hạng ra bus địa „ Có nhiều dạng tuỳ thuộc vào lệnh
chỉ „ Có thể là:
„ CPU phát tín hiệu điều khiển đọc • Đọc/Ghi bộ nhớ
„ Toán hạng được đọc vào CPU • Vào/Ra
„ Tương tự như nhận lệnh • Chuyển giữa các thanh ghi
• Thao tác số học/logic
• Chuyển điều khiển (rẽ nhánh)
• ...
289 292

Nhận dữ liệu gián tiếp Ghi toán hạng


„ CPU đưa địa chỉ ra bus địa chỉ „ CPU đưa địa chỉ ra bus địa chỉ
„ CPU phát tín hiệu điều khiển đọc „ CPU đưa dữ liệu cần ghi ra bus dữ liệu
„ Nội dung ngăn nhớ được đọc vào CPU, đó „ CPU phát tín hiệu điều khiển ghi
chính là địa chỉ của toán hạng „ Dữ liệu trên bus dữ liệu được copy đến vị
„ Địa chỉ này được CPU phát ra bus địa chỉ trí xác định
để tìm ra toán hạng
„ CPU phát tín hiệu điều khiển đọc
„ Toán hạng được đọc vào CPU
290 293

Sơ đồ mô tả quá trình ghi toán


Sơ đồ tả nhận toán hạng gián tiếp
hạng

291 294

49
3/6/2017

Biểu đồ thời gian của đường ống


Ngắt
lệnh
„ Nội dung của bộ đếm chương trình PC (địa chỉ trở
về sau khi ngắt) được đưa ra bus dữ liệu
„ CPU đưa địa chỉ (thường được lấy từ con trỏ
ngăn xếp SP) ra bus địa chỉ
„ CPU phát tín hiệu điều khiển ghi bộ nhớ
„ Địa chỉ trở về trên bus dữ liệu được ghi ra vị trí
xác định (ở ngăn xếp)
„ Địa chỉ lệnh đầu tiên của chương trình con điều
khiển ngắt được nạp vào PC
295 298

Sơ đồ mô tả chu trình ngắt Các Hazard của đường ống lệnh


„ Hazard cấu trúc: do nhiều công đoạn dùng
chung một tài nguyên
„ Hazard dữ liệu: lệnh sau sử dụng dữ liệu
kết quả của lệnh trước
„ Hazard điều khiển: do rẽ nhánh gây ra

296 299

2. Đường ống lệnh (Instruction 4.4. Các kỹ thuật tiên tiến của bộ
Pipelining) xử lý
„ Chia chu trình lệnh thành các công đoạn và cho phép thực „ Cấu trúc chung của các bộ xử lý tiên tiến
hiện gối lên nhau (như dây chuyền lắp ráp)
„ Chẳng hạn có 6 công đoạn: „ Các kiến trúc song song mức lệnh
• Nhận lệnh (Fetch Instruction - FI) „ Kiến trúc RISC
• Giải mã lệnh (Decode Instruction - DI)
• Tính địa chỉ toán hạng (Calculate Operand Address-CO)
• Nhận toán hạng (Fetch Operands - FO)
• Thực hiện lệnh (Execute Instruction - EI)
• Ghi toán hạng (Write Operands – WO)

297 300

50
3/6/2017

1. Cấu trúc chung của các bộ xử


Đơn vị quản lý bộ nhớ
lý tiên tiến
„ Chuyển đổi địa chỉ ảo thành địa chỉ vật lý
„ Cung cấp cơ chế phân trang/phân đoạn
„ Cung cấp chế độ bảo vệ bộ nhớ

301 304

2. Các kiến trúc song song mức


Các đơn vị xử lý dữ liệu
lệnh
„ Các đơn vị số nguyên „ Siêu đường ống (Superpipeline &
„ Các đơn vị số dấu phẩy động Hyperpipeline)
„ Các đơn vị chức năng đặc biệt „ Siêu vô hướng (Superscalar)

„ Đơn vị xử lý dữ liệu âm thanh „ VLIW (Very Long Instruction Word)

„ Đơn vị xử lý dữ liệu hình ảnh


„ Đơn vị xử lý dữ liệu vector

302 305

Bộ nhớ cache Superpipeline


„ Được tích hợp trên chip vi xử lý
„ Bao gồm hai mức cache:
• Cache L1 gồm hai phần tách rời:
„ Cache lệnh
„ Cache dữ liệu
→giải quyết xung đột khi nhận lệnh và dữ liệu
• Cache L2: chung cho lệnh và dữ liệu

303 306

51
3/6/2017

Superscalar Các đặc trưng của RISC


„ Số lượng lệnh ít
„ Hầu hết các lệnh truy nhập toán hạng ở các thanh ghi
„ Truy nhập bộ nhớ bằng các lệnh
„ LOAD/STORE
„ Thời gian thực hiện lệnh là một chu kỳ máy
„ Các lệnh có độ dài cố định (32 bit)
„ Số lượng khuôn dạng lệnh là ít (<=4)
„ CPU có tập thanh ghi lớn
„ Có ít mode địa chỉ (<=4)
„ Hỗ trợ các thao tác của ngôn ngữ bậc cao
„ Đều được thiết kế kiểu pipeline lệnh
307 310

VLIW (Very Long Instruction


Cửa sổ thanh ghi
Word)

308 311

3. RISC 4.5. Kiến trúc Intel


„ CISC và RISC „ Kiến trúc 4-bit: 4004
„ Kiến trúc 8-bit: 8008,8080,8085
• CISC →Complex Instruction Set Computer:
„ Kiến trúc 16-bit: 8086/8088,80186,80286
„ Máy tính với tập lệnh phức tạp
„ Kiến trúc 32-bit: 80386, 80486,
„ Các bộ xử lý truyền thống: x86, 680x0
Pentium,Pentium II,
• RISC → Reduced Instruction Set Computer:
Celeron, Pentium III,
„ Máy tính với tập lệnh thu gọn
Pentium 4
„ SunSPARC, Power PC, ...
„ Kiến trúc 64-bit: Itanium
„ RISC đối nghịch với CISC
„ 128 bit ?

309 312

52
3/6/2017

1. Kiến trúc 16-bit (IA-16)


„ Các thanh ghi bên trong: 16-bit
„ Xử lý các phép toán số nguyên với 16-bit
„ Quản lý bộ nhớ theo đoạn 64KBytes
„ Mở đầu cho dòng máy tính IBM-PC HẾT CHƯƠNG 3

313 316

2. Kiến trúc 32-bit (IA-32) Chương 5: Bộ nhớ máy tính


„ Các thanh ghi bên trong: 32-bit 5.1. Tổng quan về hệ thống nhớ
„ Xử lý các phép toán số nguyên với 32-bit
„ Có ba chế độ làm việc:
5.2. Bộ nhớ bán dẫn
• Chế độ 8086 thực (Real 8086 mode): làm việc như một bộ xử lý 5.3. Bộ nhớ chính
8086
• Chế độ 8086 ảo (Virtual 8086 mode): làm việc như nhiều bộ xử lý 5.4. Bộ nhớ cache
8086 (đa nhiệm 16-bit)
• Chế độ bảo vệ (Protected mode)
5.5. Bộ nhớ ngoài
„

„
đa nhiệm 32-bit
quản lý bộ nhớ ảo
5.6. Bộ nhớ ảo
„ Xử lý các phép toán số dấu phẩy động (từ 80486) 5.7. Hệ thống nhớ trên máy tính cá nhân
314 317

3. Kiến trúc 64-bit (IA-64) 5.1. Tổng quan về hệ thống nhớ


„ Các thanh ghi bên trong: 64-bit 1. Các đặc trưng của hệ thống nhớ
„ Xử lý các phép toán số nguyên với 64-bit „ Vị trí
• Bên trong CPU:
„ Xử lý các phép toán số dấu phẩy động „ tập thanh ghi
„ Không tương thích phần cứng với các bộ • Bộ nhớ trong:
bộ nhớ chính
xử lý trước đó „

„ bộ nhớ cache
„ Tương thích phần mềm bằng cách giả lập • Bộ nhớ ngoài: các thiết bị nhớ
môi trường „ Dung lượng
„ Độ dài từ nhớ (tính bằng bit)
„ Số lượng từ nhớ
315 318

53
3/6/2017

Các đặc trưng của hệ thống nhớ


2. Phân cấp hệ thống nhớ
(tiếp)
„ Đơn vị truyền
• Từ nhớ
• Khối nhớ
„ Phương pháp truy nhập
• Truy nhập tuần tự (băng từ)
• Truy nhập trực tiếp (các loại đĩa)
• Truy nhập ngẫu nhiên (bộ nhớ bán dẫn)
• Truy nhập liên kết (cache)
319 322

Các đặc trưng của hệ thống nhớ 3. Phát hiện và hiệu chỉnh lỗi
(tiếp) trong bộ nhớ
„ Hiệu năng (performance) „ Nguyên tắc chung: cần tạo ra và lưu trữ thêm thông tin dư
thừa.
• Thời gian truy nhập
„ Từ dữ liệu cần ghi vào bộ nhớ: m bit
• Chu kỳ nhớ „ Cần tạo ra và lưu trữ từ mã: k bit
• Tốc độ truyền →Lưu trữ (m+k) bit
„ Kiểu vật lý „ Khi đọc ra có các khả năng sau:
• Không phát hiện thấy dữ liệu lỗi
• Bộ nhớ bán dẫn • Phát hiện thấy dữ liệu lỗi và có thể hiệu chỉnh dữ liệu thành đúng
• Bộ nhớ từ • Phát hiện thấy lỗi nhưng không có khả năng hiệu chỉnh → cần
phát ra tín hiệu báo lỗi.
• Bộ nhớ quang
320 323

Các đặc trưng của hệ thống nhớ


Sơ đồ phát hiện và hiệu chỉnh lỗi
(tiếp)
„ Các đặc tính vật lý
• Khả biến / Không khả biến
(volatile / nonvolatile)
• Xoá được / không xoá được
„ Tổ chức

321 324

54
3/6/2017

Ví dụ mã sửa lỗi Hamming (m=4,


Các kiểu ROM
k=3)
„ ROM mặt nạ:
• thông tin được ghi khi sản xuất
• rất đắt
„ PROM (Programmable ROM)
• Cần thiết bị chuyên dụng để ghi bằng chương trình →
chỉ ghi được một lần
„ EPROM (Erasable PROM)
• Cần thiết bị chuyên dụng để ghi bằng chương trình →
ghi được nhiều lần
• Trước khi ghi lại, xóa bằng tia cực tím
325 328

5.2. Bộ nhớ bán dẫn Các kiểu ROM (tiếp)


1. Phân loại „ EEPROM (Electrically Erasable PROM)
• Có thể ghi theo từng byte
• Xóa bằng điện
„ Flash memory (Bộ nhớ cực nhanh)
• Ghi theo khối
• Xóa bằng điện

326 329

ROM (Read Only Memory) RAM (Random Access Memory)


„ Bộ nhớ không khả biến „ Bộ nhớ đọc-ghi (Read/Write Memory)
„ Lưu trữ các thông tin sau: „ Khả biến
• Thư viện các chương trình con „ Lưu trữ thông tin tạm thời
• Các chương trình điều khiển hệ thống (BIOS) „ Có hai loại: SRAM và DRAM
• Các bảng chức năng
(Static and Dynamic)
• Vi chương trình

327 330

55
3/6/2017

SRAM (Static) – RAM tĩnh 2. Tổ chức của chip nhớ


„ Các bit được lưu trữ bằng các Flip-Flop → „ Sơ đồ cơ bản của chip nhớ
thông tin ổn định
„ Cấu trúc phức tạp
„ Dung lượng chip nhỏ
„ Tốc độ nhanh
„ Đắt tiền
„ Dùng làm bộ nhớ cache

331 334

DRAM (Dynamic) – RAM động Các tín hiệu của chip nhớ
„ Các bit được lưu trữ trên tụ điện
→ cần phải có mạch làm tươi
„ Cấu trúc đơn giản
„ Dung lượng lớn
„ Tốc độ chậm hơn
„ Rẻ tiền hơn
„ Dùng làm bộ nhớ chính

332 335

Các DRAM tiên tiến Tổ chức bộ nhớ một chiều


„ Enhanced DRAM
„ Cache DRAM
„ Synchronous DRAM (SDRAM): làm việc
được đồng bộ bởi xung clock
„ DDR-SDRAM (Double Data Rate SDRAM)
„ Rambus DRAM (RDRAM)

333 336

56
3/6/2017

Tổ chức bộ nhớ hai chiều Tổ chức của DRAM

337 340

Tổ chức bộ nhớ hai chiều Chip nhớ

338 341

Ví dụ chip nhớ 16 Mb DRAM (4M


Tổ chức của DRAM
x 4)

339 342

57
3/6/2017

IBM 64Mb SDRAM Ví dụ tăng độ dài từ nhớ

343 346

Bài toán tăng độ dài từ nhớ tổng


3. Thiết kế mô-đun nhớ bán dẫn
quát
„ Dung lượng chip nhớ 2n m bit x „ Cho chip nhớ 2n x mbit
„ Cần thiết kế để tăng dung lượng: „ Thiết kế mô-đun nhớ 2n x (k.m) bit
• Thiết kế tăng độ dài từ nhớ „ Dùng k chip nhớ
• Thiết kế tăng số lượng từ nhớ
• Thiết kế kết hợp

344 347

Tăng độ dài từ nhớ Tăng số lượng từ nhớ


VD1: VD2:
„ Cho chip nhớ SRAM 4K x 4 bit „ Cho chip nhớ SRAM 4K x 8 bit
„ Thiết kế mô-đun nhớ 4K x 8 bit „ Thiết kế mô-đun nhớ 8K x 8 bit
„ Giải: „ Giải:
„ Dung lượng chip nhớ = 212 x 4 bit „ Dung lượng chip nhớ = 212 x 8 bit
„ chip nhớ có: „ chip nhớ có:
• 12 chân địa chỉ • 12 chân địa chỉ
• 4 chân dữ liệu • 8 chân dữ liệu
„ mô-đun nhớ cần có: „ Dung lượng mô-đun nhớ 213 x 8
• 12 chân địa chỉ • 13 chân địa chỉ
• 8 chân dữ liệu • 8 chân dữ liệu
345 348

58
3/6/2017

Tăng số lượng từ nhớ 5.3. Bộ nhớ chính


1. Các đặc trưng cơ bản
• Chứa các chương trình đang thực hiện và các dữ liệu
đang được sử dụng
• Tồn tại trên mọi hệ thống máy tính
• Bao gồm các ngăn nhớ được đánh địa chỉ trực tiếp bởi
CPU
• Dung lượng của bộ nhớ chính nhỏ hơn không gian địa
chỉ bộ nhớ mà CPU quản lý.
• Việc quản lý logic bộ nhớ chính tuỳ thuộc vào hệ điều
hành
349 352

2. Tổ chức bộ nhớ đan xen


Bài tập
(interleaved memory)
1. Tăng số lượng từ gấp 4 lần: „ Độ rộng của bus dữ liệu để trao đổi với bộ
• Cho chip nhớ SRAM 4K x 8 bit nhớ: m = 8, 16, 32, 64,128 ... Bit
• Thiết kế mô-đun nhớ 16K x 8 bit
„ Các ngăn nhớ được tổ chức theo byte
2. Tăng số lượng từ gấp 8 lần:
• Cho chip nhớ SRAM 4K x 8 bit →tổ chức bộ nhớ vật lý khác nhau
• Thiết kế mô-đun nhớ 32K x 8 bit
3. Thiết kế kết hợp:
• Cho chip nhớ SRAM 4K x 4 bit
• Thiết kế mô-đun nhớ 8K x 8 bit
350 353

Bộ giải mã 2→4 m=8bit →một băng nhớ tuyến tính

351 354

59
3/6/2017

5.4. Bộ nhớ đệm nhanh (cache


m=16bit → hai băng nhớ đan xen
memory)
1. Nguyên tắc chung của cache
„ Nguyên lý cục bộ hoá tham chiếu bộ nhớ: Trong
một khoảng thời gian đủ nhỏ CPU thường chỉ
tham chiếu các thông tin trong một khối nhớ cục
bộ
„ Ví dụ:
• Cấu trúc chương trình tuần tự
• Vòng lặp có thân nhỏ
• Cấu trúc dữ liệu mảng

355 358

Nguyên tắc chung của cache


m=32bit → bốn băng nhớ đan xen
(tiếp)
„ Cache có tốc độ nhanh hơn bộ nhớ chính
„ Cache được đặt giữa CPU và bộ nhớ chính nhằm
tăng tốc độ CPU truy cập bộ nhớ
„ Cache có thể được đặt trên chip CPU

356 359

m=64bit →tám băng nhớ đan xen Ví dụ về thao tác của cache
„ CPU yêu cầu nội dung của ngăn nhớ
„ CPU kiểm tra trên cache với dữ liệu này
„ Nếu có, CPU nhận dữ liệu từ cache(nhanh)
„ Nếu không có, đọc Block nhớ chứa dữ liệu
từ bộ nhớ chính vào cache
„ Tiếp đó chuyển dữ liệu từ cache vào CPU

357 360

60
3/6/2017

Cấu trúc chung của cache / bộ


2. Các phương pháp ánh xạ
nhớ chính
„ (Chính là các phương pháp tổ chức bộ nhớ
cache)
„ Ánh xạ trực tiếp
(Direct mapping)
„ Ánh xạ liên kết toàn phần
(Fully associative mapping)
„ Ánh xạ liên kết tập hợp
(Set associative mapping)

361 364

Cấu trúc chung của cache / bộ


Ánh xạ trực tiếp
nhớ chính (tiếp)

362 365

Cấu trúc chung của cache / bộ


Minh hoạ ánh xạ trực tiếp
nhớ chính (tiếp)
„ Một số Block của bộ nhớ chính được nạp vào các
Line của cache.
„ Nội dung Tag (thẻ nhớ) cho biết Block nào của bộ
nhớ chính hiện đang được chứa ở Line đó.
„ Khi CPU truy nhập (đọc/ghi) một từ nhớ, có hai
khả năng xảy ra:
• Từ nhớ đó có trong cache (cache hit)
• Từ nhớ đó không có trong cache (cache miss).

363 366

61
3/6/2017

Đặc điểm của ánh xạ liên kết toàn


Đặc điểm của ánh xạ trực tiếp
phần
„ So sánh đồng thời với tất cả các Tag →mất
nhiều thời gian
„ Xác suất cache hit cao.
„ Bộ so sánh phức tạp.

367 370

Ánh xạ liên kết toàn phần Ánh xạ liên kết tập hợp
„ Mỗi Block có thể nạp vào bất kỳ Line nào
của cache.
„ Địa chỉ của bộ nhớ chính bao gồm hai
trường:
• Trường Word giống như trường hợp ở trên.
• Trường Tag dùng để xác định Block của bộ
nhớ chính.
„ Tag xác định Block đang nằm ở Line đó
368 371

Minh hoạ ánh xạ liên kết toàn


Minh hoạ ánh xạ liên kết tập hợp
phần

369 372

62
3/6/2017

Đặc điểm của ánh xạ liên kết tập


Với ánh xạ liên kết toàn phần
hợp

373 376

Với ánh xạ liên kết tập hợp 4


Ví dụ về ánh xạ địa chỉ
đường
„ Không gian địa chỉ bộ nhớ chính = 4GB
„ Dung lượng bộ nhớ cache là 256KB
„ Kích thước Line (Block) = 32byte.
„ Xác định số bit của các trường địa chỉ cho
ba trường hợp tổ chức:
• Ánh xạ trực tiếp
• Ánh xạ liên kết toàn phần
• Ánh xạ liên kết tập hợp 4 đường
374 377

3. Thuật giải thay thế (1): Ánh xạ


Với ánh xạ trực tiếp
trực tiếp
„ Không phải lựa chọn
„ Mỗi Block chỉ ánh xạ vào một Line xác định
„ Thay thế Block ở Line đó

375 378

63
3/6/2017

Thuật giải thay thế (2): Ánh xạ liên


Sơ đồ Pentium 4
kết
„ Được thực hiện bằng phần cứng (nhanh)
„ Random: Thay thế ngẫu nhiên
„ FIFO (First In First Out): Thay thế Block nào nằm lâu nhất
ở trong Set đó
„ LFU (Least Frequently Used): Thay thế Block nào trong
Set có số lần truy nhập ít nhất trong cùng một khoảng thời
gian
„ LRU (Least Recently Used): Thay thế Block ở trong Set
tương ứng có thời gian lâu nhất không được tham chiếu
tới.

379 382

4. Phương pháp ghi dữ liệu khi PowerPC G4 (dùng cho Power


cache hit Mac)
„ Ghi xuyên qua (Write-through):
• ghi cả cache và cả bộ nhớ chính
• tốc độ chậm
„ Ghi trả sau (Write-back):
• chỉ ghi ra cache
• tốc độ nhanh
• khi Block trong cache bị thay thế cần phải ghi
trả cả Block về bộ nhớ chính
380 383

5. Cache trên các bộ xử lý Intel 5.5. Bộ nhớ ngoài


80486: 8KB cache L1 trên chip
„
1. Các kiểu bộ nhớ ngoài
„ Pentium: có hai cache L1 trên chip
• Cache lệnh = 8KB • Băng từ
• Cache dữ liệu = 8KB
• Đĩa từ
„ Pentium 4 (2000): hai mức cache L1 và L2 trên chip
• Cache L1: • Đĩa quang
mỗi cache 8KB
• Flash Disk
„

„ Kích thước Line = 64 byte


„ ánh xạ liên kết tập hợp 4 đường
• cache L2
„ 256KB
„ Kích thước Line = 128 byte
„ ánh xạ liên kết tập hợp 8 đường

381 384

64
3/6/2017

2. Đĩa từ Cylinders

385 388

Các đặc tính đĩa từ Đĩa mềm


„ Đầu từ cố định hay đầu từ di động „ 8”, 5.25”, 3.5”
„ Đĩa cố định hay thay đổi „ Dung lượng nhỏ: chỉ tới 1.44Mbyte
„ Một mặt hay hai mặt „ Tốc độ chậm
„ Một đĩa hay nhiều đĩa „ Thông dụng
„ Cơ chế đầu từ „ Rẻ tiền
• Tiếp xúc (đĩa mềm) „ Tương lai có thể không dùng nữa ?
• Không tiếp xúc

386 389

Nhiều đĩa Đĩa cứng


„ Một hoặc nhiều đĩa
„ Thông dụng
„ Dung lượng tăng lên rất nhanh
• 1993: 200MB
• 2004: 30GB, 40GB
• 2013: 1TB, 2TB
„ Tốc độ đọc/ghi nhanh
„ Rẻ tiền
387 390

65
3/6/2017

RAID RAID 3 & 4


„ Redundant Array of Inexpensive Disks
„ Redundant Array of Independent Disks
„ Hệ thống nhớ dung lượng lớn

391 394

Đặc điểm của RAID RAID 5 & 6


„ Tập các đĩa cứng vật lý được OS coi như một ổ
logic duy nhất → dung lượng lớn
„ Dữ liệu được lưu trữ phân tán trên các ổ đĩa vật
lý → truy cập song song (nhanh)
„ Có thể sử dụng dung lượng dư thừa để lưu trữ
các thông tin kiểm tra chẵn lẻ, cho phép khôi phục
lại thông tin trong trường hợp đĩa bị hỏng → an
toàn thông tin
„ 7 loại phổ biến (RAID 0 – 6)
392 395

RAID 0, 1, 2 Ánh xạ dữ liệu của RAID 0

393 396

66
3/6/2017

3. Đĩa quang 5.6. Bộ nhớ ảo (Virtual Memory)


„ CD-ROM (Compact Disk ROM) „ Khái niệm bộ nhớ ảo: gồm bộ nhớ chính và bộ
„ CD-R (Recordable CD) nhớ ngoài mà được CPU coi như là một bộ nhớ
„ CD-RW (Rewriteable CD) duy nhất (bộ nhớ chính).
„ Dung lượng thông dụng 650MB „ Các kỹ thuật thực hiện bộ nhớ ảo:
„ Ổ đĩa CD: • Kỹ thuật phân trang: Chia không gian địa chỉ bộ nhớ
• Ổ CD-ROM thành các trang nhớ có kích thước bằng nhau và nằm
• Ổ CD-Writer: Ghi một phiên hoặc ghi nhiều phiên liền kề nhau
• Ổ CD-RW
Thông dụng: kích thước trang = 4KBytes
„ Tốc độ đọc cơ sở 150KByte/s.
• Kỹ thuật phân đoạn: Chia không gian nhớ thành các
„ Tốc độ bội, ví dụ: 48x, 52x,... đoạn nhớ có kích thước thay đổi, các đoạn nhớ có thể
397
gối lên nhau. 400

5.7. Hệ thống nhớ trên PC hiện


3. Đĩa quang (tiếp)
nay
„ DVD „ Bộ nhớ cache: tích hợp trên chip vi xử lý
• Digital Video Disk: chỉ dùng trên ổ đĩa xem „ Bộ nhớ chính: Tồn tại dưới dạng các mô-
video đun nhớ RAM
• Digital Versatile Disk: ổ trên máy tính • SIMM – Single Inline Memory Module
• Ghi một hoặc hai mặt „ 30 chân: 8 đường dữ liệu
• Một hoặc hai lớp trên một mặt „ 72 chân: 32 đường dữ liệu
• Thông dụng: 4,7GB/lớp • DIMM – Dual Inline Memory Module
„ 64 đường dữ liệu
• RIMM – Rambus DRAM
398 401

Hệ thống nhớ trên PC hiện nay


4. Flash Disk
(tiếp)
„ Thường kết nối qua cổng USB „ ROM BIOS chứa các chương trình sau:
• Chương trình POST (Power On Self Test)
„ Không phải dạng đĩa • Chương trình CMOS Setup
• Chương trình Bootstrap loader
„ Bộ nhớ bán dẫn cực nhanh (flash memory)
• Các trình điều khiển vào-ra cơ bản (BIOS)
„ Dung lượng tăng nhanh „ CMOS RAM:
• Chứa thông tin cấu hình hệ thống
„ Thuận tiện
• Đồng hồ hệ thống
• Có pin nuôi riêng
„ Video RAM: quản lý thông tin của màn hình
„ Các loại bộ nhớ ngoài
399 402

67
3/6/2017

Cấu trúc cơ bản của hệ thống


vào-ra

„ Hết chương 5

403 406

Chương 6: Hệ thống vào ra (IO) Đặc điểm của vào-ra


6.1. Tổng quan về hệ thống vào-ra „ Tồn tại đa dạng các thiết bị ngoại vi khác nhau về:
• Nguyên tắc hoạt động
6.2. Các phương pháp điều khiển vào-ra
• Tốc độ
6.3. Nối ghép thiết bị ngoại vi • Khuôn dạng dữ liệu
6.4. Các cổng vào-ra thông dụng trên PC „Tất cả các thiết bị ngoại vi đều chậm hơn CPU và
RAM
→Cần có các mô-đun vào-ra để nối ghép các thiết
bị ngoại vi với CPU và bộ nhớ chính

404 407

6.1. Tổng quan về hệ thống vào-


2. Các thiết bị ngoại vi
ra
1. Giới thiệu chung „ Chức năng: chuyển đổi dữ liệu giữa bên
„ Chức năng của hệ thống vào-ra: Trao đổi thông trong và bên ngoài máy tính
tin giữa máy tính với thế giới bên ngoài
„ Phân loại:
„ Các thao tác cơ bản:
• Thiết bị ngoại vi giao tiếp người-máy: Bàn
• Vào dữ liệu (Input)
phím, Màn hình, Máy in,...
• Ra dữ liệu (Output)
• Thiết bị ngoại vi giao tiếp máy-máy: gồm các
„ Các thành phần chính: thiết bị theo dõi và kiểm tra
• Các thiết bị ngoại vi
• Thiết bị ngoại vi truyền thông: Modem, Network
• Các mô-đun vào-ra
Interface Card (NIC)
405 408

68
3/6/2017

Cấu trúc chung của thiết bị ngoại Cấu trúc chung của mô-đun vào-
vi ra

409 412

Các thành phần của thiết bị ngoại Các thành phần của mô-đun vào-
vi ra
„ Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu „ Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá
giữa bên ngoài và bên trong máy tính trình trao đổi
„ Các cổng vào-ra (I/O Port): kết nối với thiết bị
„ Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa
ngoại vi, mỗi cổng có một địa chỉ xác định
mô-đun vào-ra và thiết bị ngoại vi
„ Thanh ghi trạng thái/điều khiển: lưu giữ thông tin
„ Khối logic điều khiển: điều khiển hoạt động trạng thái/điều khiển cho các cổng vào-ra
của thiết bị ngoại vi đáp ứng theo yêu cầu „ Khối logic điều khiển: điều khiển môđun vào-ra
từ mô-đun vào-ra

410 413

3. Mô-đun vào-ra 4. Địa chỉ hóa cổng vào-ra


„ Chức năng của mô-đun vào-ra: a. Không gian địa chỉ của bộ xử lý
• Điều khiển và định thời
• Trao đổi thông tin với CPU
• Trao đổi thông tin với thiết bị ngoại vi
• Đệm giữa bên trong máy tính với thiết bị ngoại
vi
• Phát hiện lỗi của thiết bị ngoại vi

411 414

69
3/6/2017

Không gian địa chỉ của bộ xử lý b. Các phương pháp địa chỉ hoá
(tiếp) cổng vào-ra
„ Một số bộ xử lý chỉ quản lý duy nhất một „ Vào-ra riêng biệt (Isolated IO hay IO
không gian địa chỉ: mapped IO)
• không gian địa chỉ bộ nhớ: 2N địa chỉ „ Vào-ra theo ánh xạ bộ nhớ (Memory
„ Ví dụ: Các bộ xử lý 680x0 (Motorola) mapped IO)

415 418

Không gian địa chỉ của bộ xử lý


Vào-ra riêng biệt
(tiếp)
„ Một số bộ xử lý quản lý hai không gian địa „ Cổng vào-ra được đánh địa chỉ theo không
chỉ tách biệt: gian địa chỉ vào-ra
• Không gian địa chỉ bộ nhớ: 2N địa chỉ „ CPU trao đổi dữ liệu với cổng vào-ra thông
• Không gian địa chỉ vào-ra: 2N1 địa chỉ qua các lệnh vào-ra chuyên dụng (IN, OUT)
• Có tín hiệu điều khiển phân biệt truy nhập „ Chỉ có thể thực hiện trên các hệ thống có
không gian địa chỉ quản lý không gian địa chỉ vào-ra riêng biệt
• Tập lệnh có các lệnh vào-ra chuyên dụng

416 419

Không gian địa chỉ của bộ xử lý


Vào-ra theo ánh xạ bộ nhớ
(tiếp)
„ Ví dụ: Pentium (Intel) „ Cổng vào-ra được đánh địa chỉ theo không
• không gian địa chỉ bộ nhớ = 232 byte = 4GB gian địa chỉ bộ nhớ
• không gian địa chỉ vào-ra = 216 byte = 64KB „ Vào-ra giống như đọc/ghi bộ nhớ
• Tín hiệu điều khiển M / IO „ CPU trao đổi dữ liệu với cổng vào-ra thông
• Lệnh vào-ra chuyên dụng: IN, OUT qua các lệnh truy nhập dữ liệu bộ nhớ
„ Có thể thực hiện trên mọi hệ thống

417 420

70
3/6/2017

6.2. Các phương pháp điều khiển


Các lệnh vào-ra
vào-ra
„ Vào-ra bằng chương trình (Programmed „ Với vào-ra riêng biệt: sử dụng các lệnh vào-
IO) ra chuyên dụng (IN, OUT).
„ Vào-ra điều khiển bằng ngắt (Interrupt „ Với vào-ra theo bản đồ bộ nhớ: sử dụng
Driven IO) các lệnh trao đổi dữ liệu với bộ nhớ.
„ Truy nhập bộ nhớ trực tiếp – DMA (Direct
Memory Access)

421 424

1. Vào-ra bằng chương trình Lưu đồ đoạn chương trình vào-ra


„ Nguyên tắc chung: CPU điều khiển trực tiếp
vào-ra bằng chương trình → cần phải lập
trình vào-ra.

422 425

Hoạt động của vào-ra bằng


Các tín hiệu điều khiển vào-ra
chương trình
„ Tín hiệu điều khiển (Control): kích hoạt thiết bị „ CPU yêu cầu thao tác vào-ra
ngoại vi
„ Mô-đun vào-ra thực hiện thao tác
„ Tín hiệu kiểm tra (Test): kiểm tra trạng thái của
mô-đun vào-ra và thiết bị ngoại vi „ Mô-đun vào-ra thiết lập các bit trạng thái

„ Tín hiệu điều khiển đọc (Read): yêu cầu môđun „ CPU kiểm tra các bit trạng thái:
vào-ra nhận dữ liệu từ thiết bị ngoại vi và đưa vào • Nếu chưa sẵn sàng thì quay lại kiểm tra
thanh ghi đệm dữ liệu, rồi CPU nhận dữ liệu đó • Nếu sẵn sàng thì chuyển sang trao đổi dữ liệu
„ Tín hiệu điều khiển ghi (Write): yêu cầu môđun với mô-đun vào-ra
vào-ra lấy dữ liệu trên bus dữ liệu đưa đến thanh
ghi đệm dữ liệu rồi chuyển ra thiết bị ngoại vi 423 426

71
3/6/2017

Hoạt động vào dữ liệu: nhìn từ


Đặc điểm
mô-đun vào-ra
„ Vào-ra do ý muốn của người lập trình „ Mô-đun vào-ra nhận tín hiệu điều khiển
„ CPU trực tiếp điều khiển vào-ra „ đọc từ CPU
„ CPU đợi mô-đun vào-ra → tiêu tốn thời „ Mô-đun vào-ra nhận dữ liệu từ thiết bị ngoại
gian của CPU vi, trong khi đó CPU làm việc khác
„ Khi đã có dữ liệu → mô-đun vào-ra phát tín
hiệu ngắt CPU
„ CPU yêu cầu dữ liệu
„ Mô-đun vào-ra chuyển dữ liệu đến CPU
427 430

Hoạt động vào dữ liệu: nhìn từ


2. Vào-ra điều khiển bằng ngắt
CPU
„ Nguyên tắc chung: „ Phát tín hiệu điều khiển đọc
• CPU không phải đợi trạng thái sẵn sàng của „ Làm việc khác
mô-đun vào-ra, CPU thực hiện một chương „ Cuối mỗi chu trình lệnh, kiểm tra tín hiệu ngắt
trình nào đó „ Nếu bị ngắt:
• Khi mô-đun vào-ra sẵn sàng thì nó phát tín hiệu • Cất ngữ cảnh (nội dung các thanh ghi)
ngắt CPU • Thực hiện chương trình con ngắt để vào dữ liệu
• CPU thực hiện chương trình con vào-ra tương • Khôi phục ngữ cảnh của chương trình đang thực hiện
ứng để trao đổi dữ liệu
• CPU trở lại tiếp tục thực hiện chương trình
đang bị ngắt 428 431

Chuyển điều khiển đến chương


Các vấn đề nảy sinh khi thiết kế
trình con ngắt
„ Làm thế nào để xác định được mô-đun vào-
ra nào phát tín hiệu ngắt ?
„ CPU làm như thế nào khi có nhiều yêu cầu
ngắt cùng xẩy ra ?

429 432

72
3/6/2017

Các phương pháp nối ghép ngắt Hỏi vòng bằng phần cứng
„ Sử dụng nhiều đường yêu cầu ngắt
„ Hỏi vòng bằng phần mềm (Software Poll)
„ Hỏi vòng bằng phần cứng (Daisy Chain or
Hardware Poll)
„ Sử dụng bộ điều khiển ngắt (PIC)

433 436

Kiểm tra vòng bằng phần cứng


Nhiều đường yêu cầu ngắt
(tiếp)
„ CPU phát tín hiệu chấp nhận ngắt (INTA)
đến mô-đun vào-ra đầu tiên
„ Nếu mô-đun vào-ra đó không gây ra ngắt
thì nó gửi tín hiệu đến mô-đun kế tiếp cho
„ Mỗi mô-đun vào-ra được nối với một đường yêu đến khi xác định được mô-đun gây ngắt
cầu ngắt
„ Thứ tự các mô-đun vào-ra kết nối trong
„ CPU phải có nhiều đường tín hiệu yêu cầu ngắt
chuỗi xác định thứ tự ưu tiên
„ Hạn chế số lượng mô-đun vào-ra
„ Các đường ngắt được qui định mức ưu tiên
434 437

Hỏi vòng bằng phần mềm Bộ điều khiển ngắt lập trình được

„ CPU thực hiện phần mềm hỏi lần lượt từng mô- „ PIC – Programmable Interrupt Controller
đun vào-ra „ PIC có nhiều đường vào yêu cầu ngắt có qui định
„ Chậm mức ưu tiên
„ Thứ tự các mô-đun được hỏi vòng chính là thứ tự „ PIC chọn một yêu cầu ngắt không bị cấm có mức
ưu tiên ưu tiên cao nhất gửi tới CPU
435 438

73
3/6/2017

Đặc điểm của vào-ra điều khiển


Sơ đồ cấu trúc của DMAC
bằng ngắt
„ Có sự kết hợp giữa phần cứng và phần
mềm
„ Phần cứng: gây ngắt CPU
„ Phần mềm: trao đổi dữ liệu
„ CPU trực tiếp điều khiển vào-ra
„ CPU không phải đợi mô-đun vào-ra → hiệu
quả sử dụng CPU tốt hơn

439 442

Ngắt của 80x86 Các thành phần của DMAC


„ Tổ chức kiểu vector ngắt „ Thanh ghi dữ liệu: chứa dữ liệu trao đổi
„ Số hiệu ngắt: n (00-FF) „ Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ
„ Bảng vector ngắt: 256 x 4 byte = 1024bytes dữ liệu
00000 – 003FF „ Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao
„ Lệnh INT n đổi
„ Logic điều khiển: điều khiển hoạt động của
DMAC

440 443

3. DMA (Direct Memory Access) Hoạt động DMA


„ CPU “nói” cho DMAC
„ Vào-ra bằng chương trình và bằng ngắt do CPU • Vào hay Ra dữ liệu
trực tiếp điều khiển: • Địa chỉ thiết bị vào-ra (cổng vào-ra tương ứng)
„ Chiếm thời gian của CPU • Địa chỉ đầu của mảng nhớ chứa dữ liệu →nạp vàothanh ghi địa
chỉ
„ Tốc độ truyền bị hạn chế vì phải chuyển qua CPU • Số từ dữ liệu cần truyền → nạp vào bộ đếm dữ liệu
„ Để khắc phục dùng DMA „ CPU làm việc khác
„ Thêm mô-đun phần cứng trên bus → DMAC „ DMAC điều khiển trao đổi dữ liệu
(Controller) „ Sau khi truyền được một từ dữ liệu thì:
• nội dung thanh ghi địa chỉ tăng
„ DMAC điều khiển trao đổi dữ liệu giữa môđun • nội dung bộ đếm dữ liệu giảm
vào-ra với bộ nhớ chính „ Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt CPU để
441
báo kết thúc DMA 444

74
3/6/2017

Các kiểu thực hiện DMA Cấu hình DMA (3)


„ DMA truyền theo khối (Block-transfer DMA):
DMAC sử dụng bus để truyền xong cả khối dữ
liệu
„ DMA lấy chu kỳ (Cycle Stealing DMA): DMAC
cưỡng bức CPU treo tạm thời từng chu kỳ bus,
DMAC chiếm bus thực hiện truyền một từ dữ liệu. „ Bus vào-ra tách rời hỗ trợ tất cả các thiết bị
„ DMA trong suốt (Transparent DMA): DMAC nhận cho phép DMA
biết những chu kỳ nào CPU không sử dụng bus
thì chiếm bus để trao đổi một từ dữ liệu. „ Mỗi lần truyền, DMAC sử dụng bus một lần
• Giữa DMAC với bộ nhớ
445 448

Cấu hình DMA (1) Đặc điểm của DMA


„ CPU không tham gia trong quá trình trao
đổi dữ liệu
„ DMAC điều khiển trao đổi dữ liệu giữa bộ

„ Mỗi lần truyền, DMAC sử dụng bus hai lần nhớ chính với mô-đun vào-ra (hoàn toàn
bằng phần cứng)→ tốc độ nhanh
• Giữa mô-đun vào-ra với DMAC
„ Phù hợp với các yêu cầu trao đổi mảng dữ
• Giữa DMAC với bộ nhớ
liệu có kích thước lớn

446 449

4. Kênh vào-ra hay là bộ xử lý


Cấu hình DMA (2)
vào-ra
„ Việc điều khiển vào-ra được thực hiện bởi
một bộ xử lý vào-ra chuyên dụng
„ Bộ xử lý vào-ra hoạt động theo chương
trình của riêng nó
„ Chương trình của bộ xử lý vào-ra có thể
„ DMAC điều khiển một hoặc vài mô-đun
vào-ra nằm trong bộ nhớ chính hoặc nằm trong
một bộ nhớ riêng
„ Mỗi lần truyền, DMAC sử dụng bus một lần
„ Hoạt động theo kiến trúc đa xử lý
• Giữa DMAC với bộ nhớ
447 450

75
3/6/2017

6.3. Nối ghép thiết bị ngoại vi 2. Các cấu hình nối ghép
1. Các kiểu nối ghép vào-ra „ Điểm tới điểm (Point to Point)
• Thông qua một cổng vào-ra nối ghép với một thiết bị
„ Nối ghép song song
ngoại vi
„ Nối ghép nối tiếp „ Điểm tới đa điểm (Point to Multipoint)
• Thông qua một cổng vào-ra cho phép nối ghép được
với nhiều thiết bị ngoại vi
• Ví dụ:
„ SCSI (Small Computer System Interface): 7 hoặc 15 thiết bị
„ USB (Universal Serial Bus): 127 thiết bị
„ IEEE 1394 (FireWire): 63 thiết bị

451 454

5.4. Các cổng vào-ra thông dụng


Nối ghép song song
trên PC
„ Các cổng PS/2: nối ghép bàn phím và chuột
„ Cổng nối ghép màn hình
„ Cổng LPT (Line Printer): nối ghép với máy in, là cổng
song song (Parallel Port) – 25 chân
„ Cổng COM (Communication): nối ghép với MODEM, là
cổng nối tiếp (Serial Port) - 9 hoặc 25 chân
„ Truyền nhiều bit song song „ Cổng USB (Universal Serial Bus): Cổng nối tiếp đa năng,
cho phép nối ghép tối đa 127 thiết bị, nhờ các USB Hub
„ Tốc độ nhanh
„ ...
„ Cần nhiều đường truyền dữ liệu

452 455

Nối ghép nối tiếp

„ Truyền lần lượt từng bit Hết chương 6


„ Cần có bộ chuyển đổi từ dữ liệu song song
sang nối tiếp hoặc/và ngược lại
„ Tốc độ chậm hơn
„ Cần ít đường truyền dữ liệu
453 456

76
3/6/2017

chương 7: Kiến trúc máy tính tiên


SIMD
tiến
7.1. Phân loại kiến trúc máy tính
7.2. Một số kiến trúc song song thông dụng

457 460

7.1. Phân loại kiến trúc máy tính SIMD (tiếp)


„ Phân loại của Michael Flynn (1966) „ Đơn dòng lệnh điều khiển đồng thời các phần tử
• SISD - Single Instruction Stream, Single Data xử lý PE (processing elements)
Stream „ Mỗi phần tử xử lý có một bộ nhớ dữ liệu riêng LM
• SIMD - Single Instruction Stream, Multiple Data (local memory)
Stream „ Mỗi lệnh được thực hiện trên một tập các dữ liệu
• MISD - Multiple Instruction Stream, Single Data khác nhau
Stream „ Các mô hình SIMD
• MIMD - Multiple Instruction Stream, Multiple • Vector Computer
Data Stream • Array processor
458 461

SISD MISD
„ Một luồng dữ liệu cùng được truyền đến
một tập các bộ xử lý
„ CU: Control Unit „ Mỗi bộ xử lý thực hiện một dãy lệnh khác
„ PU: Processing Unit nhau.
„ MU: Memory Unit „ Không tồn tại máy tính thực tế
„ Một bộ xử lý
„ Có thể có trong tương lai
„ Đơn dòng lệnh
„ Dữ liệu được lưu trữ trong một bộ nhớ
„ Chính là Kiến trúc von Neumann
459 462

77
3/6/2017

7.2. Một số kiến trúc MIMD thông


MIMD
dụng
„ Tập các bộ xử lý 1.SMP (Symmetric Multiprocessors)
„ 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
„ Các mô hình MIMD
• Multiprocessors (Shared Memory)
• Multicomputers (Distributed Memory)

463 466

MIMD - Shared Memory SMP (tiếp)


„ Một máy tính có n >= 2 bộ xử lý giống nhau
„ Các bộ xử lý dùng chung bộ nhớ và hệ thống
vào-ra
„ Thời gian truy cập bộ nhớ là bằng nhau với các
bộ xử lý
„ Tất cả các bộ xử lý chia sẻ truy nhập vào-ra
„ Các bộ xử lý có thể thực hiện chức năng giống
nhau
„ Hệ thống được điều khiển bởi một hệ điều hành
464 phân tán 467

MIMD - Distributed Memory Ưu điểm của SMP


„ Hiệu năng
• Các công việc có thể thực hiện song song
„ Tính sẵn dùng
• Các bộ xử lý có thể thực hiện các chức năng
giống nhau, vì vậy lỗi của một bộ xử lý sẽ
không làm dừng hệ thống
„ Khả năng mở rộng
• Người sử dụng có thể tăng hiệu năng bằng
cách thêm bộ xử lý
465 468

78
3/6/2017

2. Cluster (Phân cụm) Cluster of SMPs


„ 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 (~ Gbps)
„ Mỗi máy tính có thể làm việc độc lập
„ Mỗi máy tính được gọi là một node
„ 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
469 472

Ví dụ: Hệ thống máy chủ Google


Cluster (tiếp)
(12/ 2000)
„ Dễ dàng xây dựng và mở rộng „ Cluster of PCs
„ Tính sẵn sàng cao „ Hơn 6.000 bộ xử lý
„ Khả năng chịu lỗi „ Hệ thống lưu trữ dùng RAID: có 12.000 đĩa
„ Giá thành rẻ với hiệu năng cao cứng ~ 1petabyte (1triệu GB)
„ 2 site ở Silicon Valley, 1site ở Virginia
„ Mỗi site được kết nối với Internet qua OC48
(2488Mbps)

470 473

Cluster of PCs

Hết chương 7

471 474

79

You might also like