You are on page 1of 625

Chương 1

Tổng quan về
Kiến trúc máy tính

IT-FIT 20221 1
Nội dung
• Các khái niệm và định nghĩa cơ bản
• Nguyên lý họat động
• Nội dung môn học
• Phân lọai máy tính
• Lịch sử phát triển máy tính
• Tổ chức tổng quát máy tính

IT-FIT 20221 2
Các khái niệm và định nghĩa
• Máy tính (Computer)
– Máy tính là thiết bị điện tử xử lý dữ liệu,
hoạt động một cách tự động dưới sự điều
khiển của chương trình được lưu trữ trong
bộ nhớ chính của nó.

IT-FIT 20221 3
Các khái niệm và định nghĩa
• Hệ thống máy tính (Computer system)
– Một hệ thống máy tính bao gồm một máy tính và
các thiết bị ngoại vi.
• Thiết bị ngoại vi (Peripherals)
– Bao gồm các thiết bị nhập (input devices), thiết bị
xuất (output devices) và bộ nhớ thứ cấp (secondary
storage).

IT-FIT 20221 4
Các khái niệm và định nghĩa
• Chương trình (program)
– Danh sách các lệnh (command) hoặc chỉ thị
(instruction) để bộ xử lý trong máy tính thi hành.
• Lệnh và tập lệnh
– Bộ xử lý (CPU) trong máy tính đuợc thiết kế để
hiểu và thi hành được các lệnh được thiết kế truớc
của nhà sản xuất CPU
– Tập hợp tất cả các lệnh CPU hiểu đuợc gọi là tập
lệnh (instruction set) của CPU đó

IT-FIT 20221 5
Các khái niệm và định nghĩa
• Lập trình (programming)
– Việc viết 1 chương trình cho máy tính chạy gọi là lập trình.
Người viết chương trình gọi là lập trình viên (programmer)
– Máy tính không thể tự nó giải được 1 bài tóan vì cần có
chương trình do con người viết ra.
– Người lập trình phải biết cách giải bài toán mới có thể viết
chương trình cho máy giải được.
• Xử lý dữ liệu (data processing)
– Bao gồm các thao tác: Thu thập, nhập, lưu trữ, tìm kiếm,
tính tóan, trình bày kết quả.
– Hệ thống máy tính cần có con người tham gia.
IT-FIT 20221 6
Các khái niệm và định nghĩa
• Ngôn ngữ lập trình
– Ngôn ngữ tự nhiên (natural language):
• Do con nguời sử dụng. Lệ thuộc ngữ cảnh, không có tính chính xác
và nhất quán cần thiết cho máy tính
• Không sử dụng được cho máy tính
– Ngôn ngữ máy (machine language)
• Là các ký hiệu nhị phân (số 0 và 1) mà các linh kiện điện tử trong
máy tính hiểu và xử lý được.
• Rất khó khăn khi con nguời sử dụng trực tiếp.
– Ngôn ngữ dùng ký hiệu/ Hợp ngữ Symbolic language/
Assembly language dạng ký hiệu/gợi nhớ của tập lệnh CPU
– Ngôn ngữ lập trình (programming language)
• Là trung gian giữa ngôn ngữ tự nhiên và ngôn ngữ máy.
IT-FIT 20221 7
Các khái niệm và định nghĩa

Con nguời Máy tính

Ngôn ngữ Ngôn ngữ Ngôn ngữ


Tự nhiên Lập trình Máy

Ngôn ngữ Ngôn ngữ


Cấp cao Cấp thấp
HLL LLL
High Level Language Low Level Language

IT-FIT 20221 8
Các khái niệm và định nghĩa
• Chương trình dịch (translator)
– Máy tính không hiểu đuợc ngôn ngữ lập trình và
ngôn ngữ tự nhiên
– Cần phải dịch ngôn ngữ lập trình do con nguời viết
ra ngôn ngữ máy để máy tính thi hành
– Việc dịch có thể thực hiện tự động thông qua 1
chương trình gọi là chương trình dịch
– Bao gồm 2 loại:
• Trình Biên dịch (Compiler)
• Trình Thông dịch (Interpreter)

IT-FIT 20221 9
Các khái niệm và định nghĩa
• Thành phần máy tính
– Phần cứng (hardware)
• Bộ xử lý CPU
• Bộ nhớ (Memory)
• Thiết bị ngoại vi
– Phần mềm (software)
• Hệ thống (system software)
• Ứng dụng (application software)
– Phần dẻo (firmware)
• Trung gian giữa phần cứng và phần mềm

IT-FIT 20221 10
Nguyên lý họat động
• Mô hình Turing
– Là một mô hình máy tính lý thuyết do nhà toán
học nguời Anh Alan Turing đưa ra năm 1936 gọi là
máy Turing
– Dùng để kiểm tra khả năng giải các lọai bài toán
khác nhau bằng các thuật toán trên máy móc
– Luận đề Church-Turing khẳng định mọi hàm toán
học tính được thì cũng có thể dùng các máy Turing
để tính, và do đó cho phép định nghĩa các khái
niệm như sự tính được của hàm hay thuật toán.

IT-FIT 20221 11
Nguyên lý họat động
• Máy Turing
– Gồm 1 dải băng dài
vô hạn có nhiều ô.
– 1 đầu đọc/ghi để
đọc/ ghi từng ký tự
hoặc dịch chuyển
trên 1 ô của dải
băng.
– 1 khối xử lý chứa
tập các trạng thái

IT-FIT 20221 12
Nguyên lý họat động
• Nguyên lý hoạt động máy Turing
– Máy làm việc theo từng bước rời rạc. Một lệnh của
máy như sau : qiSiSjXqj.
– Nghĩa là : trạng thái hiện hành của máy là qi đầu đọc
ghi đang ở ô Si thì sẽ ghi đè Sj vào ô hiện tại và dịch
chuyển hoặc đứng yên theo chỉ thị là X và trạng thái
mới của máy là qj
– Dữ liệu của bài toán là 1 chuỗi các ký hiệu thuộc tập
các ký hiệu của máy không kể ký hiệu rỗng b
– Trạng thái trong ban đầu của máy là q0 .được cất vô
băng. Quá trình sẽ dừng lại khi trạng thái trong của
máy là trạng thái kết thúc qf.
IT-FIT 20221 13
Nguyên lý họat động
• Ví dụ máy Turing
– Thực hiện phép toán NOT trên chuỗi các bit 0/1
– Chuỗi dữ liệu nhập ban đầu là 10
– Tập các ký hiệu của máy {0,1}
– Tập các trạng thái trong {q0, q1}
– Tập lệnh gồm 3 lệnh : q001Rq0, q010Rq0, q0bbNq1

q0 Ban đầu q0

1 0 b … 0 0 b …
q1
q0 Dừng
0 1 b …
0 202211
IT-FIT b … Kết quả 01 14
Nguyên lý họat động
• Mô hình Von Neumann
– Là một mô hình máy tính thực tế do nhà toán học
người Mỹ gốc Hungary John Von Neumann đưa ra
khi tham gia thiết kế máy tính EDVAC năm 1945.
- Máy gồm 3 khối cơ
bản : đơn vị xử lý, bộ
nhớ và hệ thống xuất
nhập.
- Hiện đang áp dụng
cho các máy tính
ngày
IT-FITnay.
20221 15
Nguyên lý họat động
• Nguyên lý Von Neumann
– Chương trình điều khiển xử lý dữ liệu cũng được
xem là data và được lưu trữ trong bộ nhớ gọi là
chương trình lưu trữ.
– Bộ nhớ chia làm nhiều ô, mỗi ô có 1 địa chỉ (đánh
số thứ tự) để có thể chọn lựa ô nhớ trong quá trình
đọc ghi dữ liệu. (nguyên lý định địa chỉ)
– Các lệnh được thực hiện tuần tự nhờ 1 bộ đếm
chương trình (thanh ghi lệnh) nằm bên trong đơn
vị xử lý.

IT-FIT 20221 16
Nguyên lý họat động
• Sơ đồ máy tính Von Neumann
CPU Bộ nhớ chính
Đọc lệnh Lưu trữ thông tin
Phân tích lệnh Nơi chứa chương trình
Thực thi lệnh để CPU đọc và thực thi

Khối xuất nhập


❑ Giao tiếp với môi trường bên ngoài
❑ Xuất nhập dữ liệu, bộ nhớ phụ
IT-FIT 20221 17
Nguyên lý họat động
• Kiến trúc Harvard
• Được sử dụng trong máy Harvard Mark I (IBM 1944)
• Bao gồm 2 khối bộ nhớ riêng biệt:
• Bộ nhớ lệnh chương trình
• Bộ nhớ dữ liệu
• Máy tính Von Neumann ngày nay chỉ sử dụng 1 khối bộ
nhớ chung cho cả chương trình và dữ liệu
• Tuy nhiên một số loại máy có sử dụng kiến trúc Harvard

IT-FIT 20221 18
Nguyên lý họat động
• Tại sao sử dụng kiến trúc Von Neumann?
– Tạo ra các máy tính đa năng, lập trình được
• Giải các bài toán khác nhau bằng các chương trình khác
nhau.
– Các lệnh chương trình được thi hành 1 cách tự
động
– Máy tính có thể chế tạo từ các linh kiện điện tử cơ
bản
• Chức năng xử lý dữ liệu thực hiện bằng các cổng logic
• Chức năng lưu trữ dữ liệu thực hiện qua các ô nhớ
• Chức năng truyền dữ liệu thực hiện qua các đường
truyền dẫn điện
IT-FIT 20221 19
Nội dung môn học
• Cung cấp các kiến thức cơ bản về nguyên lý
hoạt động và tổ chức ở các máy tính số
– Vấn đề đánh giá hiệu suất
– Kiến trúc tập lệnh
– Tính toán số học
– Đường đi dữ liệu và tín hiệu điều khiển
– Hệ thống bộ nhớ
– Giao tiếp với ngoại vi

IT-FIT 20221 20
Nội dung môn học
• Mục đích môn học
– Nắm vững các kiến thức cơ bản về tổ chức và hoạt
động của máy tính số
– Làm nền tảng để tìm hiểu cấu trúc của các phần tử
khác nhau trong một máy tính số
– Vận dụng để thiết kế, cải tạo, sửa chữa các hệ thống
ứng dụng vi xử lý–vi điều khiển, vi mạch, hệ thống
nhúng
– Vận dụng vào thiết kế, cải tạo các hệ thống phần mềm
sao cho hoạt động hiệu quả, phù hợp với kiến trúc
phần cứng

IT-FIT 20221 21
Nội dung môn học
• Sự phân cấp máy tính theo Tanenbaum
Chương trình Ln
Máy ảo Mn với ngôn ngữ máy Ln được dịch hay phiên
Cấp n
dịch chạy trên máy
cấp thấp hơn
...

Máy ảo M4 với ngôn ngữ máy L4 Chương trình L3


Cấp 4 được dịch hay phiên
dịch chạy trên M1
Cấp 3 Máy ảo M3 với ngôn ngữ máy L3 hay M2
Chương trình L2
được dịch hay phiên
Cấp 2 Máy ảo M2 với ngôn ngữ máy L2
dịch chạy trên M1
Chương trình L1
Cấp 1 Máy thật M1 với ngôn ngữ máy L1 được thi hành trực
tiếp trên phần cứng
IT-FIT 20221 22
Nội dung môn học
• Sự phân cấp máy tính theo Tanenbaum (tiếp)
Cấp 5 Cấp ngôn ngữ hướng vấn đề
Dịch (compiler)
Cấp 4 Cấp ngôn ngữ hợp dịch
Dịch (assembler)
Cấp 3 Cấp máy hệ điều hành
Dịch một phần
Cấp 2 Cấp máy quy ước
Phiên dịch (hoặc thực thi trực tiếp)
Cấp 1 Cấp vi lập trình
Vi chương trình chạy trên phần cứng
Cấp 0 Cấp logic số
IT-FIT 20221 23
Nội dung môn học
• Các quan niệm về máy tính theo thời gian
Application
Algorithm
Programming Language Parallel
computing,
Original Operating System/Virtual Machines security, …
domain of the Domain of
computer
Instruction Set Architecture (ISA) recent
architect Microarchitecture computer
(‘50s-’80s) architecture
Gates/Register-Transfer Level (RTL) (‘90s)
Reliability,
Circuits
power, …
Devices
Reinvigoration of
Physics
IT-FIT 20221
computer architecture,
24
mid-2000s onward.
Nội dung môn học
• Các thuật ngữ thuờng gặp:
– Cấu trúc máy tính (computer structure)
– Kiến trúc máy tính (computer architechture)
– Tổ chức máy tính (computer organization)
• Kiến trúc máy tính liên quan đến các thuộc tính của
một hệ thống máy tính có khả năng thấy được đối với
người lập trình, hoặc các thuộc tính có ảnh hưởng trực
tiếp đến logic thực hiện của chương trình (phần mềm)

IT-FIT 20221 25
Nội dung môn học
• Tổ chức máy tính liên quan đến các khối chức năng và
sự kết nối giữa chúng để thực hiện các đặc tả kiến trúc
(nghĩa là làm thế nào hiện thực các tính năng kiến trúc)
• Ví dụ: Tín hiệu điều khiển, giao tiếp giữa máy tính và
các thiết bị ngoại vi, công nghệ bộ nhớ, …(phần cứng)

IT-FIT 20221 26
Nội dung môn học
• Vị trí KTMT và TCMT

IT-FIT 20221 27
Nội dung môn học
• So sánh KTMT và TCMT
– Ví dụ chức năng “nhân”:
• Kiến trúc: có hay không có lệnh nhân.
• Tổ chức: một đơn vị thực hiện chức năng “nhân” đặc biệt hay việc
dùng nhiều đơn vị “cộng” để thực hiện chức năng “nhân”.
• Nhiều nhà sản xuất máy tính đưa ra dòng (họ) các mẫu máy
tính, các máy này có cùng kiến trúc nhưng khác nhau về
mặt tổ chức
– Tất cả máy tính họ x86 của Intel có cùng kiến trúc cơ bản
– Họ System/370 của IBM có cùng kiến trúc cơ bản
• Điều này dẫn đến
– Nhiều máy khác nhau trong cùng họ có giá thành và hiệu suất
khác nhau
– Tổ chức sẽ thay đổi theo công nghệ
• Tương thích về chương trình
• IT-FIT
Tối thiểu
20221 đối với các máy thế hệ trước (backward) 28
Nội dung môn học
• Tại sao học KTMT ?
– Để trở thành chuyên nghiệp trong lĩnh vực máy tính ngày
nay, bạn không nên xem máy tính như một hộp đen (black
box) thực hiện các chương trình bằng ma thuật.
– Bạn nên hiểu các thành phần chức năng của một hệ thống
máy tính, đặc tính, hiệu suất và tương tác của chúng.
– Bạn cần hiểu rõ kiến trúc máy tính để có thể xây dựng các
chương trình chạy hiệu quả trên máy tính.
– Khi chọn lựa để dùng một hệ thống, bạn phải có khả năng
hiểu được ưu và nhược điểm của các thành phần khác nhau,
ví dụ tốc độ xung nhịp CPU so với kích thước bộ nhớ.

IT-FIT 20221 29
Nội dung môn học
• Cấu trúc và Chức năng
– Nhận biết bản chất phân cấp của các hệ thống phức tạp
nhất
• Hệ thống phân cấp là tập hợp các hệ thống con có quan hệ
với nhau, sao cho mỗi hệ thống con này lại có tính phân cấp
về cấu trúc như vậy, cho đến khi chúng ta đạt đến hệ thống
con nguyên tử thấp nhất
– Cấu trúc là cách mà các thành phần quan hệ với các
thành phần khác
– Chức năng là tác vụ của các thành phần chức năng
riêng biệt nằm trong cấu trúc
– Theo cách mô tả, có 2 cách tiếp cận
• Bottom-up
• Top-down
IT-FIT 20221 30
Nội dung môn học
• Chức năng Máy tính
– Xử lý dữ liệu (Data
processing)
– Lưu trữ dữ liệu (Data
storage)
– Dịch chuyển dữ liệu (Data
movement)
– Điều khiển (Control)

IT-FIT 20221 31
Nội dung môn học
• Các tác vụ

Dịch chuyển dữ liệu Lưu trữ dữ liệu Xử lý dữ liệu


IT-FIT 20221 32
Nội dung môn học
• Cấu trúc - Top Level
Peripherals Computer

Central Main
Processing Memory
Unit

Computer
Systems
Interconnection

Input
Output
Communication
lines

IT-FIT 20221 33
Nội dung môn học
• Cấu trúc - CPU
CPU

Computer Arithmetic
Registers and
I/O Login Unit
System CPU
Bus
Internal CPU
Memory Interconnection

Control
Unit

IT-FIT 20221 34
Nội dung môn học
• Cấu trúc – Bộ điều khiển

IT-FIT 20221 35
Phân lọai máy tính
• Theo công nghệ • Theo khả năng xử lý
– Máy tính tương tự – Máy vi tính (micro
(analog) computer)
– Máy tính số (digital) – Máy mini (mini computer)
• Theo mức độ sử dụng – Máy tính lớn (main frame)
– Siêu máy tính (super
– Máy chuyên dụng
computer)
– Máy đa dụng
• Theo thế hệ
• Theo nguyên lý họat – Thế hệ 1
động – Thế hệ 2
• Von Neumann – Thế hệ 3
• Phi Von Neumann – Thế hệ 4 …
IT-FIT 20221 36
Phân lọai máy tính
• Bài tập phân biệt các lọai máy tính sau:
– Workstation
– Client
– Server
– Desktop
– Laptop
– Palmtop
– Terminal
–…
IT-FIT 20221 37
Lịch sử phát triển máy tính
The zeroth
generation

The first
generation

The second
generation

The third
generation

The fourth
generationIT-FIT 20221 38
Lịch sử phát triển máy tính
• Thế hệ 1 (1945-1955)
– Công nghệ chế tạo: Đèn điện tử
– Phần cứng: chưa có. Sau này xuất hiện băng giấy
và phiếu đục lỗ. Chỉ có 1 lọai máy mainframe.
– Ngôn ngữ lập trình: chưa có, sử dụng ngôn ngữ
máy
– Hệ điều hành: chưa có
– Các máy điển hình: ENIAC, EDVAC, IAS
– Đặc điểm: tính toán chậm, kích thức lớn, tiêu thụ
nhiều năng luợng. Chế tạo đơn lẻ.
IT-FIT 20221 39
Lịch sử phát triển máy tính
• Thế hệ 2 (1955-1965)
– Công nghệ chế tạo: Transistor
– Phần cứng: Băng từ, máy in. Xuất hiện máy mini
– Ngôn ngữ lập trình: Assembly, Fortran, Cobol
– Hệ điều hành: Đơn giản (Control program,
Monitor). Xử lý theo lô, xử lý offline.
– Các máy điển hình: PDP-1, IBM 7094, CDC 6600
– Đặc điểm: Tốc độ nhanh hơn, kích thức thu hẹp
nhưng vẫn còn lớn, tiêu thụ ít năng luợng hơn. Sản
xuất hàng lọat theo đơn đặt hàng.
IT-FIT 20221 40
Lịch sử phát triển máy tính
• Thế hệ 3 (1965-1980)
– Công nghệ chế tạo: Mạch tích hợp IC
– Phần cứng: Màn hình, đĩa cứng. Xuất hiện siêu máy
tính. Xuất hiện họ các máy tính.
– Ngôn ngữ lập trình: Phát triển mạnh: Algol , Pascal, C
– Hệ điều hành: Xử lý đa chương, chia sẻ thời gian, xuất
hiện UNIX
– Các máy điển hình: IBM/360, DEC PDP-11, Cray-1
– Đặc điểm: Tốc độ nhanh, kích thức nhỏ, tiêu thụ ít
năng luợng, ngày càng dễ sử dụng

IT-FIT 20221 41
Lịch sử phát triển máy tính
• Thế hệ 4 (1980 - nay)
– Công nghệ chế tạo: Mạch tích hợp IC cỡ lớn (VLSI).
Độ tích hợp ngày càng cao theo định luật Moore
– Phần cứng: Phát triển đa dạng. Xuất hiện máy vi tính.
– Ngôn ngữ lập trình: Phát triển mạnh hơn và dễ lập
trình hơn: C++, Java, Prolog, Lisp
– Hệ điều hành: Đồ họa, mạng, đa xử lý, xử lý phân tán
– Các máy điển hình: IBM PC, Mac
– Đặc điểm: Tốc độ rất cao, kích thức rất nhỏ, thân thiện
với con nguời, hỗ trợ multimedia,…

IT-FIT 20221 42
Lịch sử phát triển máy tính
• Định luật Moore
– Do Gordon Moore, người đồng sáng lập công ty Intel đưa
ra từ 1965: “Số lượng transistor trong 1 chip tăng gấp đôi
sau 18 tháng”

IT-FIT 20221 43
Lịch sử phát triển máy tính
• Tại sao chưa có thế hệ 5?
– Dự án máy tính thế hệ 5 của Nhật bản
– Xuất hiện máy vi tính
– Xuất hiện mạng Internet tòan cầu
– Xuất hiện các siêu máy tính cực mạnh
– Máy tính đã xâm nhập vào mọi lĩnh vực trong đời
sống con nguời

IT-FIT 20221 44
Tổ chức tổng quát máy tính
• Sơ đồ tổ chức tổng quát
THIẾT BỊ
NGỌAI VI

CPU BỘ NHỚ ĐIỀU KHIỂN

BUS HỆ THỐNG

IT-FIT 20221 45
Tổ chức tổng quát máy tính
• CPU
– Chức năng: Điều khiển mọi họat động bên trong
MT và thực hiện các phép tính
– Thành phần:
• CU (Control Unit)
• ALU (Arithmetic & Logic Unit)
• Các thanh ghi (Registers)
– Khả năng xử lý : bit
• 8, 16, 32, 64 bit …
– Tốc độ xử lý (tính toán): ???

IT-FIT 20221 46
Tổ chức tổng quát máy tính
• CPU (tiếp)
– Nhiệm vụ: thi hành chương trình
– Chu trình lệnh: Lấy lệnh, thi hành lệnh

IT-FIT 20221 47
Tổ chức tổng quát máy tính
• Bộ nhớ (memory)
– Chức năng: Lưu trữ dữ liệu và chương trình trong máy tính
– Tổ chức : Bộ nhớ đuợc chia ra các ô có kích thước bằng
nhau. Mỗi ô có thể lưu trữ 1 byte hoặc 1 từ máy (word). 1
word có thể chứa 2, 4, 8, 16,… byte tùy theo nhà sản xuất
máy tính.
– Cần địa chỉ (address) để gán cho các ô nhớ. Mục đích để
phân biệt các ô nhớ với nhau khi truy cập dữ liệu
– Phân lọai bộ nhớ:
• RAM (Random Access Memory)
• ROM (Read Only Memory)
• Cache

IT-FIT 20221 48
Tổ chức tổng quát máy tính
• Bộ nhớ (tiếp)
– Phân cấp bộ nhớ
– Khác biệt: Dung lượng, tốc độ truy cập, giá thành

IT-FIT 20221 49
Tổ chức tổng quát máy tính
• Bộ nhớ (tiếp)
– Đặc điểm các loại bộ nhớ

IT-FIT 20221 50
Tổ chức tổng quát máy tính
• Bộ nhớ (tiếp)
– Các mức cache

IT-FIT 20221 51
Tổ chức tổng quát máy tính
• Thiết bị ngọai vi (peripherals)
– Chức năng: giao tiếp giữa máy tính với thế giới
bên ngoài (con người)
– Nhiệm vụ: chuyển đổi dạng dữ liệu giữa con người
và máy tính
– Phân loại:
• Thiết bị nhập (input devices)
• Thiết bị xuất (output devices)
• Thiết bị truyền thông (communication devices)
• Thiết bị lưu trữ (storage devices)

IT-FIT 20221 52
Tổ chức tổng quát máy tính
• Thiết bị ngọai vi (tiếp)
– Các lọai thiết bị lưu trữ
• Giấy
– Băng giấy đục lỗ, Phiếu đục lỗ, …
• Từ tính
– Xuyến từ, Trống từ, Băng từ
– Đĩa từ (Đĩa mềm, Đĩa cứng)
• Quang học
– CD/ DVD
– Blue-ray, HD-DVD
• Quang từ
– MO disk
• Bán dẫn
– USB Flash, SSD, thẻ nhớ, …
• Khác
– Bubble, Hologram, ...
IT-FIT 20221 53
Tổ chức tổng quát máy tính
• Thiết bị ngọai vi (tiếp)
– Tốc độ truy cập 1 số thiết bị ngoại vi thông dụng

IT-FIT 20221 54
Tổ chức tổng quát máy tính
• Bus hệ thống
– Mục đích: Tổ chức dạng bus được dùng để đơn giản
hóa việc tổ chức và phân luồng dữ liệu trong hệ thống
máy tính
– Chức năng: Liên kết & truyền tín hiệu giữa các thành
phần trong MT
– Cần cơ chế sao cho tại một thời điểm, chỉ có 1 thanh
ghi có thể đặt dữ liệu lên bus để tránh tranh chấp bus
– Phân lọai:
• Data bus
• Address bus
– Không gian địa chỉ
• Control bus
IT-FIT 20221 55
Tổ chức tổng quát máy tính
• Bus hệ thống (tiếp)
– Mô hình hệ thống máy tính 3 bus

CPU Memory
Address Address
Address bus
Instruction
Registers Instruction
Control bus :
Data
CU ALU :
Data Data
Data bus

IT-FIT 20221 56
Tổ chức tổng quát máy tính
• Bus hệ thống (tiếp)
– Ví dụ về Control bus

IT-FIT 20221 57
Tổ chức tổng quát máy tính
• Bus hệ thống (tiếp)
– Đồng bộ bus: Các thành phần trong máy tính phải hoạt
động đồng bộ.
• Mỗi họat động cơ bản được chia ra nhiều buớc nhỏ
• Cần 1 trọng tài đánh nhịp để điều khiển từng buớc hoạt động
• Ví dụ: thao tác đọc bộ nhớ được chia ra:
– CPU gửi yêu cầu đọc cho BN (bus điều khiển)
– CPU gửi địa chỉ cần đọc cho BN (bus địa chỉ)
– BN giải mã địa chỉ
– BN xuất dữ liệu cho CPU (bus dữ liệu)
• Một chu kỳ lệnh gồm nhiều chu kỳ máy (4 như VD trên)
• Đơn vị đo tốc độ xung nhịp: Hertz (Hz)
– 2 chế độ tốc độ họat động trong CPU máy tính
– Sự tồn tại BN cache
IT-FIT 20221 58
Tổ chức tổng quát máy tính
• Bus hệ thống (tiếp)
– Ví dụ minh hoạ về sự đồng bộ bus

IT-FIT 20221 59
Tổ chức tổng quát máy tính
• Bus hệ thống (tiếp)
– Trong thực tế người ta phân bus hệ thống ra nhiều mức tốc
độ do có sự chênh lệch của các thành phần trong máy tính

IT-FIT 20221 60
Chương 2

Biểu diễn thông tin


trong máy tính
Nội dung
1. Các hệ thống số
2. Biểu diễn số nguyên
3. Biểu diễn số thực
4. Biểu diễn ký tự
5. Biểu diễn các dạng thông tin khác
6. Biểu diễn chương trình

IT-FIT 2021 62
Các hệ thống số
• Hệ thống số theo phép cộng
– Mỗi ký số có giá trị độc lập không lệ thuộc vị trí của ký số.
– Giá trị của con số đuợc tính bằng cách cộng/ trừ giá trị từng
ký số.
– Ví dụ 1: Hệ thống số Hy lạp và La mã
1 I 20 XX
2 II 25 XXV
3 III 29 XIX
4 IV 50 L
5 V 75 LXXV
6 VI 100 C
10 X 500 D
11 XI 1000 M
IT-FIT 2021 63
16 XVI
Các hệ thống số
• Ví dụ về số La mã
1. XXXVI
2. XL
3. XVII
4. DCCLVI
5. MCMLXIX
• Nhược điểm
– Khó biểu diễn và tính tóan với các số lớn
– Cần nhiều ký số để biểu diễn các số lớn
– Không có số không và số âm
– Không nhất quán về quy tắc. VD số 49 biểu diễn bằng
IL (50-1) hay XLIX (40+9)?
IT-FIT 2021 64
Các hệ thống số
• Hệ thống số theo phép cộng (tiếp)
– Ví dụ 2: Hệ Ai cập cổ đại

=?

IT-FIT 2021 65
Các hệ thống số
• Hệ thống số theo vị trí
– Mỗi vị trí số có giá trị khác nhau tùy theo cơ số
– Ví dụ: Hệ thập phân
Hàng trăm Hàng chục Đơn vị
6 3 8

– Ví dụ: Hệ nhị thập phân Mayan

twenties Units
2 x 20 + 7 = 47
twenties units
18 x 20 + 5 = 365
IT-FIT 2021 66
Các hệ thống số
• Hệ thống số theo vị trí (tiếp)
– Ví dụ: Hệ thống lục thập phân Babylon

sixties units 3600s 60s 1s

IT-FIT 2021 =64 = 3724


67
Các hệ thống số
• Hệ thống số theo vị trí (tiếp)
– Tính giá trị số: dựa theo cơ số và bậc lũy thừa theo vị trí số.
Dùng n ký số trong hệ cơ số B có thể biểu diễn Bn giá trị
khác nhau
– Ví dụ: hệ thập phân với cơ số B=10
• 123,45= 1x102 + 2x101 + 3x100 + 4x10-1 + 5x10-2
– Tổng quát: Một số ở hệ cơ số B gồm n..-m ký số:
anan-1…a1a0a-1…a-(m-1)a-m
Được tính giá trị theo biểu thức:
−m

 a .B
i =n
i
i

IT-FIT 2021 68
Các hệ thống số

IT-FIT 2021 69
Các hệ thống số

IT-FIT 2021 70
Các hệ thống số
Thập phân Nhị phân Bát phân Thập lục phân
• Đối 0 0 0 0

chiếu 1
2
1
10
1
2
1
2
giữa các 3 11 3 3

hệ thống 4 100 4 4

số
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
IT-FIT 2021 15 1111 17 F 71
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số
– Đổi từ số hệ bất kỳ sang hệ thập phân: áp dụng biểu thức
−m

 a .B
i =n
i
i

– Ví dụ 1: Đổi số nhị phân 1101001.1011(2) sang thập phân


1101001.1011(2) =
6 5 4 3 2 1 0 -1 -2 -3 -4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4


= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625
= 105.6875(10)

IT-FIT 2021 72
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số (tiếp)
– Ví dụ 2: Đổi các số sau ra thập phân
• 264.36(8)
• CAFE.85(16)
– Đổi từ hệ thập phân sang hệ bất kỳ:
• Qui tắc 1: Đổi phần nguyên riêng và đổi phần thập phân
(lẻ) riêng sau đó ghép lại
• Qui tắc 2: Đổi số nguyên hệ thập phân sang hệ B bằng
cách chia liên tiếp số cần đổi cho B và giữ lại số dư cho
đến khi thương số bằng không. Số cần tìm là các số dư
viết theo chiều nguợc lại

IT-FIT 2021 73
Các hệ thống số

IT-FIT 2021 74
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số (tiếp)
– Ví dụ
• Đổi 105(10) ra nhị phân
105 : 2 = 52 dư 1
52 : 2 = 26 dư 0
26 : 2 = 13 dư 0
13 : 2 = 6 dư 1
6 : 2 = 3 dư 0
3 : 2 = 1 dư 1
1 : 2 = 0 dư 1
Kết quả: 105(10) = 1101001(2)

IT-FIT 2021 75
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số (tiếp)
– Ví dụ
• Đổi 0.6875(10) ra nhị phân
0.6875 x 2 = 1.375 phần nguyên = 1
0.375 x 2 = 0.75 phần nguyên = 0
0.75 x 2 = 1.5 phần nguyên = 1
0.5 x 2 = 1.0 phần nguyên = 1
• Kết quả : 0.6875(10)= 0.1011(2)
– Ghép lại: 105.6875(10) = 1101001.1011(2)

IT-FIT 2021 76
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số (tiếp)
– Đổi từ hệ nhị phân sang hệ bát phân và nguợc lại
• Qui tắc: ghép 3 ký số nhị phân đổi ra 1 ký số bát phân (hoặc
nguợc lại).
– Đổi từ hệ nhị phân sang hệ thập lục phân và ngược lại
• Qui tắc: ghép 4 ký số nhị phân đổi ra 1 ký số thập lục phân
(hoặc nguợc lại).
– Ví dụ:
• B3(16) = 1011 0011(2)
• 10 110 011(2) = 263(8)
– Đổi giữa bát phân sang thập lục phân và ngược lại
• Qui tắc: Đổi sang 1 hệ trung gian (thường là nhị phân như ví
dụ trên)
IT-FIT 2021 77
Biểu diễn số nguyên

n −1
A=  a .2
i =0
i
i

IT-FIT 2021 78
Biểu diễn số nguyên

IT-FIT 2021 79
Biểu diễn số nguyên
• Số nguyên không dấu (tiếp)
– Ví dụ 2. Cho các số nguyên không dấu M, N được
biểu diễn bằng 8-bit như sau:
• M = 0001 0010
• N = 1011 1001
Xác định giá trị của chúng ?
• Giải:
– M = 0001 0010 = 24 + 21 = 16 + 2 = 18
– N = 1011 1001 = 27 + 25 + 24 + 23 + 20
= 128 + 32 + 16 + 8 + 1 = 185
IT-FIT 2021 80
Biểu diễn số nguyên
• Số nguyên không dấu (tiếp)
– Với n = 8 bit
0000 0000 = 0
0000 0001 = 1
0000 0010 = 2
0000 0011 = 3
...
1111 1111 = 255 Biểu diễn được các giá trị từ 0 đến 255
– Chú ý:
1111 1111
+ 0000 0001
1 0000 0000 Vậy: 255 + 1 = 0 ?
➔ do tràn nhớ ra ngoài
IT-FIT 2021 81
Biểu diễn số nguyên
• Số nguyên không dấu (tiếp)
– Trục số học với n = 8 bit

– Với n=16 bit


• Dải biểu diễn
0 đến 65.535 (0 – 216-1)
– Với n=32 bit : 0 đến 232-1
– VớiIT-FIT
n=642021
bit : 0 đến 264-1 82
Biểu diễn số nguyên

Thập Nhị Thập Nhị


phân phân phân phân
+0 0000 -0 1000
+1 0001 -1 1001
+2 0010 -2 1010
+3 0011 -3 1011
+4 0100 -4 1100
+5 0101 -5 1101
+6 0110 -6 1110
+7 0111 -7 1111
IT-FIT 2021 83
Biểu diễn số nguyên
• Số nguyên có dấu (tiếp)
– Nhược điểm
• Tồn tại 2 số 0: +0 và -0
• Kết quả tính tóan không chính xác
• Ví dụ : tính (+4) + (-2)
+4 0100
-2 1010
+2 1110 (-6) ➔ kết quả ra -6 chứ không phải +2
– Cách khắc phục: Dùng số bù 2

IT-FIT 2021 84
Biểu diễn số nguyên
• Số nguyên có dấu (tiếp)
– Qui tắc 2: Dùng số bù 2 (two’s-complement) để
biểu diễn số âm.
• [Số bù 2] = [Số bù 1] + 1
• Số bù 1 tính bằng cách đảo các bit 1 ➔ 0 và 0 ➔ 1
• Ví dụ tìm số bù 2 của +2
– Số +2 : 0010
– Số bù 1 : 1101 (đảo các bit)
– Công thêm 1: + 1
– Số bù 2 : 1110

IT-FIT 2021 85
Biểu diễn số nguyên
• Số nguyên có dấu (tiếp) Thập Nhị Thập Nhị
– Ví dụ bảng số 4 bit dùng số phân phân phân phân
bù 2 cho số âm +0 0000 - -
– Kết quả: +1 0001 -1 1111
• Chỉ còn 1 số +0 +2 0010 -2 1110
• Bù 2 của bù 2 bằng chính nó
+3 0011 -3 1101
• Mở rộng thêm số -8
+4 0100 -4 1100
• Kết quả tính toán chính xác.
• Ví dụ : tính lại (+4) + (-2) +5 0101 -5 1011
+4 0100 +6 0110 -6 1010
-2 1110 +7 0111 -7 1001
+2 1 0010 (+2)
- - -8 1000
(bỏIT-FIT
qua2021bit tràn số) 86
Biểu diễn số nguyên
• Số nguyên có dấu (tiếp)
– Ví dụ biểu diễn các số nguyên có dấu sau đây bằng 8-bit:
A = +58 ; B = -80
– Giải:
A = +58 = 0011 1010(2)
B = -80
Ta có: + 80 = 0101 0000
Số bù một = 1010 1111
+1
Số bù hai = 1011 0000
Vậy: B = -80 = 1011 0000(2)
IT-FIT 2021 87
Biểu diễn số nguyên
• Số nguyên có dấu (tiếp)
– Trục số học số nguyên có dấu với n = 8 bit
• Dải biểu diễn
-128 … +127
– Với n=16 bit
• -32768 … + 32767
– Với n=32 bit : -2-31 … +231-1
– Với n=64 bit : -2-63 … +263-1
– Nhược điểm: không thể chứa số
lớn hơn dải giới hạn (tràn số)
IT-FIT 2021 88
Biểu diễn số nguyên
• Số nguyên có dấu (tiếp)
• Để tránh việc 2 nửa trục số
không liên tục nhau và khó so
sánh số nào lớn hơn → cần
sắp xếp lại
• Mã thừa 2n-1
– Cộng thêm 2n-1 vào bảng giá trị
theo số bù 2, n=số bit phần số
– Khắc phục được các nhược
điểm trên
– Không cần biểu diễn dấu cho số
âm
• Ví dụ bảng mã thừa 7 cho
trường hợp số 3 bit
IT-FIT 2021 89
Biểu diễn số nguyên
• So sánh các dạng số nguyên 4 bit

IT-FIT 2021 90
Biểu diễn số nguyên
• Số BCD (Binary Code Decimal)
– Số nhị phân có nhược điểm khó biểu diễn chính xác
đối với số rất lớn hoặc rất nhỏ.
– Trong 1 số trường hợp đòi hỏi tính tóan chính xác từng
ký số (ví dụng trong tài chánh, ngân hàng,…)
– Qui tắc : Mã hóa mỗi ký số thập phân 0…9 bằng 1
byte. Chỉ sử dụng 4 bit cuối, 4 bit đầu = 0 hoặc sử
dụng cho các mục đích khác.
– Để tiết kiệm bộ nhớ, có thể ghép 2 ký số vào 1 byte, 4
bit đầu 1 ký số, 4 bit cuối 1 ký sô. Phương pháp này
gọi là số BCD dạng dồn (packed-BCD)
– Áp dụng cho số nguyên hoặc số thực dấu chấm tĩnh.

IT-FIT 2021 91
Biểu diễn số nguyên
• Bảng mã BCD
Ký số BCD Ghi chú:
0 0000 • Mỗi số BCD chính là mã
1 0001 nhị phân của các ký số.
• Có 6 mã không được sử
2 0010 dụng:
3 0011 • 1010
4 0100 • 1011
• 1100
5 0101
• 1101
6 0110 • 1110
7 0111 • 1111
8 1000 • Đơn vị 4 bit (=1/2 byte)
được gọi là nibble
9
IT-FIT 2021 1001 92
Biểu diễn số nguyên
• Số BCD (tiếp)
– Ví dụ biểu diễn số 35:
• Unpacked-BCD: 0000 0011 0000 0101 (2 byte)
• Packed-BCD: 0011 0101 (1 byte)
– Phép cộng trên số BCD
35 0011 0101BCD
+ 61 + 0110 0001BCD
96 1001 0110BCD
kết quả đúng (không phải hiệu chỉnh)
87 1000 0111BCD
+ 96 + 1001 0110BCD
183 1 0001 1101 → kết quả sai
+ 0110 0110 hiệu chỉnh
0001 1000 0011BCD → kết quả đúng 1 8 3
Hiệu chỉnh: cộng thêm 6 ở những vị trí có nhớ (>9)
IT-FIT 2021 93
Biểu diễn số thực
• Số thực dấu chấm tĩnh (fixed-point decimal)
– Qui tắc: Qui ước 1 vị trí chứa dấu chấm thập phân.
Số thực được lưu trữ bằng 2 số nguyên:
• Số nguyên có dấu cho phần nguyên
• Số nguyên không dấu cho phần thập phân
– Ví dụ: Một số thực 16 bit
12 bit integer part 4 bit fractional part

– Chọn vị trí dấu chấm sao cho phù hợp độ chính


xác cần biểu diễn cho từng thành phần

IT-FIT 2021 94
Biểu diễn số thực
• Số thực dấu chấm tĩnh (tiếp)
– Nhược điểm: Khó biểu diễn các số quá nhỏ hoặc
quá lớn
– Ví dụ:
• Số 1,234,000,000,000,000,000.00 cần nhiều bit cho
phần nguyên
• Số 0.000 000 000 000 000 123 456 cần nhiều bit cho
phần thập phân
– Cách khắc phục: Chuyển sang số dạng khoa học
(dấu chấm động)

IT-FIT 2021 95
Biểu diễn số thực
• Số thực dấu chấm động (floating-point decimal)
– Qui tắc : Cho phép thay đổi vị trí dấu chấm thập phân
cho phù hợp nhu cầu với độ chính xác vừa phải
– Ví dụ
• -123,000,000,000,000,000.00 = -123 x 1015 (-123 E+15)
• +0.000 000 000 000 000 123 = 123 x 10-18 (+123 E-18)
– Số thực được lưu trữ bằng 2 số nguyên
• Số nguyên có dấu cho phần định trị
• Số nguyên có dấu cho phần lũy thừa
– Nhược điểm: Độ chính xác giới hạn

IT-FIT 2021 96
Biểu diễn số thực
• Số thực dấu chấm động (tiếp)
– Tổng quát: một số thực X được biểu diễn theo kiểu
số dấu chấm động như sau:
X = M * RE
• M là phần định trị (Mantissa),
• R là cơ số (Radix),
• E là phần mũ (Exponent).
– Trước đây mỗi hãng sản xuất máy tính tự qui định
các thành phần M, R và E riêng biệt dẫn đến khó
trao đổi dữ liệu → cần chuẩn hóa

IT-FIT 2021 97
Biểu diễn số thực
• Chuẩn IEEE754
– Qui định về định dạng và sử dụng số dấu chấm động trong
máy tính
– Do IEEE (Institute of Electrical and Electronic Engineers)
ban hành lần đầu 1985, phiên bản mới nhất ban hành 2008
– Sử dụng cơ số nhị phân (R=2)
– Các định dạng
• Chính xác đơn (single precision): 32 bit
• Chính xác kép (double precision): 64 bit
• Chính xác mở rộng (extended precision) trên CPU Intel: 80 bit
• Phiên bản 2008 có thêm định dạng 128 bit

IT-FIT 2021 98
Biểu diễn số thực
• Chuẩn IEEE754 (tiếp)
– Định dạng số thực theo IEEE754
S e m
– S : là bit dấu của phần định trị M:
• S = 0 : số dương
• S = 1 : số âm
– e : là mã thừa n (excess-n) của phần mũ E, n là số bit biểu
diễn số của E (do đó không cần lưu bit dấu cho E)
• e = E + (2n-1) → E = e – (2n-1)
– m : là phần lẻ của phần định trị M ở dạng chuẩn:
• M = 1.m (Chú ý: Không sử dụng số bù 2)
– Công thức xác định giá trị của số thực:
• X = (-1)S x 1.m x 2E
IT-FIT 2021 99
Biểu diễn số thực
• Chuẩn IEEE754 (tiếp)
Số bit Số bit Mã Giải biểu Ký số
Lọai
của e của m thừa n diễn chính xác
Chính xác
8 23 127 ±1 E ±38 7
đơn 32 bit
Chính xác
11 52 1023 ±1 E ±308 16
kép 64 bit
Mở rộng
15 64 16383 ±1 E ±4932 19
80 bit
– Cần chú ý khi sử dụng và so sánh số thực vì độ chính xác bị giới hạn.
– Ví dụ lưu số 123,456,789,012 bằng số thực 32 bit chỉ bảo đảm chính
xác 7 ký số có nghĩa đầu tiên, các ký số còn lại không chính xác

IT-FIT 2021 100


Biểu diễn số thực
• Chuẩn IEEE754 (tiếp)
– Ví dụ 1: Xác định giá trị của số thực được biểu
diễn bằng 32-bit X=C1560000(16):
• X=1100 0001 0101 0110 0000 0000 0000 0000(2)
• S = 1 → số âm
• e = 1000 0010(2) = 130(10) → E = 130-127=3
– Vậy
• X = -1.10101100 * 23 = -1101.011(2) = -13.375(10)

IT-FIT 2021 101


Biểu diễn số thực
• Chuẩn IEEE754 (tiếp)
– Ví dụ 2: Biểu diễn số thực X= 83.75 về dạng số dấu
chấm động IEEE754 dạng 32-bit
Giải:
• X = 83.75(10) = 1010011.11(2) = 1.01001111 x 26
Ta có:
• S = 0 vì đây là số dương
• E = e-127 = 6 →
• e = 127 + 6 = 133(10) = 1000 0101(2)
Vậy:
• X = 0100 0010 1010 0111 1000 0000 0000 0000(2)
• X = 42A78000(16)
IT-FIT 2021 102
Biểu diễn số thực
• Chuẩn IEEE754 (tiếp)
– Các qui ước đặc biệt
• Các bit của e bằng 0, các bit của m khác 0, thì phần định trị không ở
dạng chuẩn: 0.m (dạng chuẩn là 1.m)
• Các bit của e bằng 0, các bit của m bằng 0, thì X = ± 0
• Các bit của e bằng 1, các bit của m bằng 0, thì X = ± ∞
• Các bit của e bằng 1, còn m có chứa ít nhất một bit bằng 1, thì nó
không biểu diễn cho số nào cả (NaN - not a number)

IT-FIT 2021 103


Biểu diễn số thực
• Chuẩn IEEE754 (tiếp)
– Các khả năng tràn số
• Tràn trên số mũ (Exponent Overflow): mũ dương vượt ra khỏi giá
trị cực đại của số mũ dương có thể. (→ ∞)
• Tràn dưới số mũ (Exponent Underflow): mũ âm vượt ra khỏi giá trị
cực đại của số mũ âm có thể (→ 0).
• Tràn trên phần định trị (Mantissa Overflow): cộng hai phần định trị
có cùng dấu, kết quả bị nhớ ra ngoài bit cao nhất.
• Tràn dưới phần định trị (Mantissa Underflow): Khi hiệu chỉnh phần
định trị, các số bị mất ở bên phải phần định trị.

IT-FIT 2021 104


Biểu diễn số thực
• Tính toán trên số thực
– Thực hiện các phép tính phức tạp
– Đối với phép tính cộng & trừ
• Kiểm tra = zéro ?
• Hiệu chỉnh phần số mũ
• Cộng hoặc trừ phần định trị
• Chuẩn hoá kết quả
– Đối với phép tính nhân & chia
• Kiểm tra = zéro ?
• Cộng hoặc trừ phần số mũ
• Nhân hoặc chia phần định trị, xác định dấu kết quả
• Chuẩn hoá và làm tròn
IT-FIT 2021 105
Biểu diễn số thực
• Đơn vị đo tốc độ tính toán
– Tốc độ xung nhịp (Hertz)
• Dựa trên đồng hồ xung nhịp
– Millions of instructions per second (MIPS)
• Dựa trên phép tính số nguyên
– Millions of floating point operations per second (MFLOPS)
• Dựa trên phép tính số thực
– Benchmarks
• Dựa trên các phần mềm đặc trưng thông dụng viết bằng NNLT cấp
cao (HLL)
• Ví dụ: Hệ thống SPEC (System Performance Evaluation
Corporation)
IT-FIT 2021 106
Biểu diễn ký tự
• Khái niệm
– Thông tin và dữ liệu do con người sử dụng ở dạng văn bản
thường được sử dụng nhất
– Văn bản bao gồm các lọai ký tự:
• Chữ thường : a…z
• Chữ hoa : A…Z
• Số : 0…9
• Các dấu : +, -, @, #, &, [, ],…
– Ngòai ra còn cần biểu diễn các ký tự điều khiển khi trao đổi
thông tin với thiết bị ngọai vi : xuống dòng, sang trang,
xóa, …

IT-FIT 2021 107


Biểu diễn ký tự
• Nguyên tắc chung về mã hóa dữ liệu
– Mọi dữ liệu đưa vào máy tính đều phải được mã hóa thành
số nhị phân, ánh xạ 1-1 và có chiều dài bit bằng nhau.
– Các loại dữ liệu
• Dữ liệu nhân tạo: do con người qui ước trong các bộ mã chuẩn
riêng biệt
• Dữ liệu tự nhiên: tồn tại khách quan với con người, thường ở dạng
Analog ➔ cần chuyển đổi ra dạng Digital
– Độ dài từ dữ liệu là số bit được sử dụng để mã hóa loại dữ
liệu tương ứng
• Thường là bội của 8-bit
• VD: 8, 16, 32, 64 bit
– Các phần mềm điều khiển nhập/ xuất TBNV sẽ đảm nhiệm
việc mã hóa
IT-FIT 2021 108
Biểu diễn ký tự
• Qui tắc chuyển đổi tín hiệu vật lý dạng analog
sang dạng digital (ví dụ: âm thanh, hình ảnh,
video,…)

IT-FIT 2021 109


Biểu diễn ký tự
• Các bộ mã cổ điển
– Mã Morse:
• Dùng các dấu chấm và
gạch, chiều dài mã khác
nhau
• Sử dụng trong điện tín và
truyền dữ liệu trước đây
• Không phân biệt chữ
thường và hoa, thiếu các ký
hiệu và ký tự điều khiển →
không phù hợp mã hóa dữ
liệu trong máy tính
IT-FIT 2021 110
Biểu diễn ký tự
• Các bộ mã cổ điển (tiếp)
– Mã Baudot
• Dùng 5 bit mã hóa các ký tự, dấu, số và một số ký tự điều
khiển. Do chỉ mã hóa được 32 ký tự nên phải ghép chung 2
bộ mã để mã hoá đủ các ký tự cần thiết. Phân biệt 2 mã bằng
ký tự 1B/1F → 1 mã được biểu diễn cho 2 ký tự
• Được sử dụng nhiều trong điện báo và telex trước đây

Bài tập: Tìm


hiểu thêm về
Semaphore

IT-FIT 2021 111


Biểu diễn ký tự
• Mã hóa ký tự trong máy tính
– Ban đầu mỗi công ty sản xuất đưa ra 1 bộ mã theo qui
ước riêng → không trao đổi được thông tin giữa các
lọai máy tính
– VD: Cty 1 Cty 2
A 1 A 10
B 2 B 11
C 3… C 12 …
– Bộ mã EBCDIC của IBM được sử dụng rộng rãi nhất
– Cần có bộ mã chuẩn thống nhất cho mọi máy tính và
mọi quốc gia: Mã ASCII và Unicode

IT-FIT 2021 112


Biểu diễn ký tự
• Mã hóa ký tự trong máy tính (tiếp)
– Mã EBCDIC (Extended BCD Interchange Code) do
công ty IBM ban hành 1963 để sử dụng cho hệ thống
IBM/360 và sau đó được áp dụng cho nhiều hệ thống
khác
– Được mở rộng từ mã BCD
– Sử dụng 8 bit có thể mã hóa tối đa 256 ký tự (thực tế
EBCDIC không sử dụng hết)
• 0-63: Các ký tự điều khiển, không in được
• 64-127: Dấu
• 129-169: Chữ thường
• 193-233: Chữ hoa
• 240-249:
IT-FIT 2021 Số 113
Biểu diễn ký tự
• Bảng mã EBCDIC

IT-FIT 2021 114


Biểu diễn ký tự
• Mã hóa ký tự trong máy tính (tiếp)
– Mã ASCII (American Standard Code for Information
Interchange) do ANSI ban hành từ 1963
– Sau này được CCITT (ITU) và ISO công nhận và được
sử dụng rộng rãi trên thế giới
– Sử dụng 7 bit để mã hóa được tối đa 128 ký tự. Mỗi ký
tự lưu trong 1 byte dữ liệu. Bit thứ 8 sau này được sử
dụng làm bit kiểm tra (parity bit) hoặc để mở rộng bộ
mã (mã ASCII mở rộng 8 bit).
• 0-31: Các ký tự điều khiển, không in được
• 48-57: Số
• 65-90: Chữ hoa
• 97-122: Chữ thường
• 32-48, 58-64, 91-96, 123-127: Dấu (xen kẽ giữa các vùng)
IT-FIT 2021 115
Biểu diễn ký tự
• Bảng mã ASCII

Ghi chú:
Bảng trình bày theo
số thập lục phân

Theo số thập phân


• 0-31: Ký tự điều khiển
• 48-57: Số
• 65-90: Chữ hoa
• 97-122: Chữ thường

IT-FIT 2021 116


Biểu diễn ký tự
• Bảng mã ASCII
– Các ký tự điều khiển - Bảng ASCII mở rộng IBM-PC

IT-FIT 2021 117


Biểu diễn ký tự
• Mã tiếng Việt có dấu
– Ban đầu 1 số công ty đưa ra các bộ mã khác nhau nhưng đều mở
rộng từ bộ mã ASCII chuẩn 7 bit lên 8 bit: VNI, ABC, ĐHBK,
Vietware,…(khỏang 43 bộ mã)
– Do 128 vị trí mở rộng không đủ chứa các ký tự tiếng Việt có dấu
nên mỗi bộ mã áp dụng các cách khắc phục khác nhau nhưng
vẫn còn nhiều nhược điểm:
• Dùng 2 bộ mã dựng sẵn khác nhau cho chữ thường và chữ hoa
• Dùng 1 bộ mã, một số ký tự còn thiếu sẽ chèn vào vùng ASCII chuẩn
• Dùng 1 byte ký tự không dấu và 1 byte dấu riêng biệt (mã tổ hợp)
– Năm 1993 VN ban hành bộ mã 8 bit TCVN 5712 và 1999 chỉnh
sửa thêm nhưng vẫn còn nhiều tồn tại nên ít được sử dụng.
– Năm 2001 VN ban hành bộ mã 16 bit TCVN 6909 phù hợp với
chuẩn Unicode và ISO/IEC 10646 khắc phục hầu hết các nhược
điểm nên được sử dụng rộng rãi

IT-FIT 2021 118


Biểu diễn ký tự
• Mã Unicode
– Nhu cầu sử dụng các bộ mã 16-32 bit ngày càng cao để
khắc phục các hạn chế của mã 8 bit:
• Mỗi quốc gia dùng bảng mã ASCII mở rộng riêng biệt (code page)
• Nhu cầu trình bày văn bản của nhiều thứ tiếng đồng thời, đặc biệt là
trên Web
• Một số ngôn ngữ có lượng ký tự cần mã hóa rất lớn, ví dụ CJK
(Chinese, Japanese, Korean)
Ç'është Unicode?, in Albanian Что такое Unicode? in Russian
ዩኒኮድ ምንድን ነው? in Amharic 유니코드에 대해? in Korean
‫ ما هي الشفرة الموحدة "يونِكود" ؟‬in Arabic Шта je Unicode? in Serbian
Ի՞նչ է Յունիկոդը ? in Armenian యూనీకోడ్ అంటే ఏమిటి?, in Telugu
ইউনিককোড কী? in Bangla Unicode คืออะไร? in Thai
यनू िकोड क्या है? in Hindi ዩኒኮድ እንታይ ኢዩ? in Tigrigna
Какво е Unicode ? in Bulgarian ‫ﯘﻧﯩﻜﻮﺩ ﺩﯩﮕﻪﻥ ﻧﯩﻤﻪ؟‬in Uyghur
IT-FIT 2021 119
什麽是Unicode? In Chinese ಯುನಿಕ ೋಡ್ ಎಂದರ ೋನು? in Kannada
Biểu diễn ký tự
• Mã Unicode (tiếp)
– Đặc điểm
• Ban hành năm 1991, hiện nay đã đến phiên bản 6.2
(09/2012).
• Unicode cung cấp một mã số duy nhất cho mỗi ký tự, cho
mọi hệ máy tính, cho mọi chương trình, cho mọi ngôn ngữ.
Hiện nay có thể mã hóa trên 1 triệu ký tự.
• Chuẩn Unicode đã được những công ty công nghệ hàng đầu,
như Apple, HP, IBM, Microsoft, … chấp nhận
• Unicode tương thích với ISO/IEC 10646 và mã ASCII
• Hỗ trợ 3 kiểu định dạng UTF-8, UTF-16 và UTF-32
• Hiện được sử dụng rộng rãi trên tòan cầu, kể cả ở VN

IT-FIT 2021 120


Biểu diễn ký tự
• Mã Unicode (tiếp)
– Tóm tắt bảng mã Unicode 16 bit

IT-FIT 2021 121


Biểu diễn ký tự
• Thứ tự lưu trữ các byte trong bộ nhớ chính
– Bộ nhớ chính thường tổ chức theo byte
– 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ữ ở ngăn nhớ có địa chỉ nhỏ, byte có ý nghĩa cao được
lưu trữ ở ngăn nhớ có địa chỉ lớn.
• Đầ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.
– Áp dụng: Mã Unicode, số, chuỗi ký tự
IT-FIT 2021 122
Biểu diễn ký tự
• Thứ tự lưu trữ các byte trong bộ nhớ chính (tiếp)
– Ví dụ lưu trữ dữ liệu 32-bit
• Intel 80x86 và các Pentium: little-endian
• Motorola 680x0, SunSPARC: big-endian

IT-FIT 2021 123


Biểu diễn ký tự
• Lưu trữ chuỗi ký tự
– Chuỗi ký tự gồm nhiều ký tự ghép lại, mỗi ký tự chiếm 1
byte bộ nhớ nếu là mã ASCII (2 byte nếu là Unicode)
– Cần xác định chiều dài chuỗi (số ký tự có trong chuỗi)
– Mỗi ngôn ngữ lập trình cấp cao qui định cách xác định
khác nhau cho chuỗi ký tự khi lưu trữ.
– Ví dụ:

C dùng ký tự NUL
Pascal dùng 1
byte chiều dài

IT-FIT 2021 124


Biểu diễn các dạng thông tin khác
• Các chuẩn định dạng thông tin thông dụng:
– Hình ảnh: BMP, TIFF, PNG, GIF, JPEG,…
– Âm thanh: WAV, MIDI, MP3, AVI,…
– Văn bản: PDF, HTML, XML,…
– Video: MPEG-4, WMV, DivX,…
– Animation: Flash, SVG, CSS, …
– Khác: Mã vạch, RFID, OCR

IT-FIT 2021 125


Biểu diễn chương trình
• Tập lệnh CPU cũng phải được mã hóa bằng số nhị
phân → Chương trình ngôn ngữ máy ở dạng số
nhị phân
• Hiện nay mỗi công ty sản xuất máy tính qui định
bộ mã lệnh riêng cho CPU của mình sản xuất →
Chương trình viết cho máy này không thể chạy
trên máy khác vì khác mã lệnh

Câu hỏi: tại sao không đưa ra chuẩn thống nhất


mã lệnh cho mọi lọai CPU?

IT-FIT 2021 126


Câu hỏi

IT-FIT 2021 127


Chương 3

Mạch logic số
Nội dung
• Transistor và các cổng logic
• Đại số Boole
• Mạch tổ hợp
• Mạch tính toán
• Mạch tuần tự
• Mạch bộ nhớ

IT-FIT 2021 129


Transistor và các cổng logic
• Transistor
– Phần tử cơ bản nhất cấu tạo máy tính số
ngày nay là transistor do John Bardeen và
Walter Brattain phát minh năm 1947.
– Transistor thường được sử dụng như một
thiết bị khuếch đại hoặc một khóa điện tử
• Mỗi transistor đều có ba cực:
– Cực gốc (base)
– Cực góp (collector)
– Cực phát (emitter)

IT-FIT 2021 130


Transistor và các cổng logic
• Cổng logic (gate)
– Các transistor được ghép nối lại để tạo thành các cổng logic
có thể thực hiện các phép toán logic cơ bản: NOT, AND,
OR, NAND (NOT AND) và NOR (NOT OR)
– Giá trị logic
• 0 : mức điện áp 0...1,5 volt
• 1 : mức điện áp 2...5 volt

– Các cổng cơ bản này lại được lắp ghép thành các phần tử
chức năng lớn hơn như mạch cộng 1 bit, nhớ 1 bit, v.v… từ
đó tạo
IT-FITthành
2021 1 máy tính hoàn chỉnh 131
Transistor và các cổng logic
• Cấu tạo các cổng cơ bản NOT, NAND và NOR

• Ký hiệu

IT-FIT 2021 132


Transistor và các cổng logic
• Bảng chân trị và ký hiệu các cổng logic cơ bản

• Đối với các cổng nhiều ngõ vào, ngõ ra X=1 khi:
• AND : mọi ngõ vào bằng 1
• OR: ít nhất 1 ngõ vào bằng 1
• NAND : ít nhất 1 ngõ vào bằng 0
•IT-FITNOR
2021 : mọi ngõ vào bằng 0 133
Transistor và các cổng logic
• Bảng chân trị các cổng OR và AND 3 ngõ vào

IT-FIT 2021 134


Transistor và các cổng logic
• Một số vi mạch họ 7400

IT-FIT 2021 135


Đại số Boole
• Giới thiệu
– Đại số Boole (Boolean algebra) do nhà toán học George
Boole phát triển từ năm 1854 làm cơ sở cho phép toán
logic.
– Năm 1938 Claude Shannon chứng minh có thể dùng đại số
Boole để thiết kế mạch số trong máy tính
– Đại số Boole dựa trên các biến logic và các phép toán logic
• Biến logic có thể nhận giá trị 1 (TRUE) hoặc 0
(FALSE)
• Phép toán logic cơ bản là AND, OR và NOT
• Hàm logic gồm tập các phép toán và biến logic
IT-FIT 2021 136
Đại số Boole
• Các phép toán logic cơ bản
– Phép toán logic cơ bản AND, OR và NOT với ký
hiệu như sau:
• A AND B : A•B
• A OR B : A + B
• NOT A : A
– Các phép toán khác: NAND, NOR, XOR:
• „A NAND B : A•B
• „A NOR B :A + B
• „A XOR B: A ⊕ B = A • B + A • B
– ThứIT-FIT
tự2021ưu tiên: NOT, AND và NAND, OR và NOR 137
Đại số Boole
• Bảng chân trị (Truth table)

• Ứng dụng đại số Boole


• Phân tích chức năng mạch logic số
• Thiết kế mạch logic số dựa trên hàm cho trước

IT-FIT 2021 138


Đại số Boole
• Ví dụ 1: Cài đặt 1 hàm logic M=F(A, B, C) theo bảng
chân trị cho trước
• Qui tắc: M=0 nếu mọi đầu vào là 0,
M=1 nếu mọi đầu vào là 1 (tổng các
tích).
• Bước 1: Xác định các dòng trong bảng chân
trị có kết quả bằng 1
• Bước 2: Các biến đầu vào được AND với
nhau nếu giá trị trong bảng bằng 1. Nếu giá
trị biến bằng 0 cần NOT nó trước khi AND
• Bước 3: OR tất cả các kết quả từ bước 2.

M=ABC+ABC+ABC+ABC
IT-FIT 2021 139
Đại số Boole
• Ví dụ 1 (tiếp)

M=ABC+ABC+ABC+ABC
Chú ý:
• Mạch thiết kế theo cách này
chưa tối ưu.
• Có 3 cách biểu diễn 1 hàm logic
IT-FIT 2021 140
Đại số Boole
• Ví dụ 2: Xác định hàm logic từ mạch cho trước

IT-FIT 2021 141


Đại số Boole
• Các mạch tương đương
– Ví dụ: AB+AC và A(B+C)

IT-FIT 2021 142


Đại số Boole
• Các mạch tương đương (tiếp)
– Nhận xét: Nên sử dụng mạch tiết kiệm các cổng logic nhất
– Trong thực tế người ta dùng cổng NAND (hoặc NOR) để
tạo ra mọi cổng khác

IT-FIT 2021 143


Đại số Boole
• Các định luật của đại số Boole
• Đồng nhất
• Rỗng
• Không đổi
• Ngịch đảo
• Giao hoán
• Kết hợp
• Phân phối
• Rút gọn
IT-FIT 2021 144
Đại số Boole
• Các định luật của đại số Boole (tt)

IT-FIT 2021 145


Đại số Boole
• Ứng dụng các định luật
– Đơn giản biểu thức logic → Tiết kiệm cổng logic
– Ví dụ : Chứng minh AB + AC + BC = AB + AC
AB + AC + BC
= AB + AC + 1 • BC
= AB +AC + (A + A) • BC
= AB + AC + ABC + ABC
= AB + ABC + AC + ABC
= AB • 1 + ABC + AC • 1 + AC • B
= AB (1 + C) + AC (1 + B)
= AB • 1 + AC • 1 = AB + AC

IT-FIT 2021 146


Mạch tổ hợp
• Khái niệm
– Mạch tổ hợp (combinational circuit) là mạch logic
trong đó tín hiệu ra chỉ phụ thuộc tín hiệu vào ở
thời điểm hiện tại.
– Là mạch không nhớ (memoryless) và được thực
hiện bằng các cổng logic cơ bản
– Mạch tổ hợp được cài đặt từ 1 hàm hoặc bảng chân
trị cho trước
– Được ứng dụng nhiều trong thiết kế mạch máy tính

IT-FIT 2021 147


Mạch tổ hợp
• Bộ dồn kênh (Multiplexer)
– 2n đầu vào dữ liệu D
– n đầu vào lựa chọn S
– 1 đầu ra F
– (S) xác định đầu vào (D) nào sẽ
được nối với đầu ra (F)

S2 S1 F
0 0 D0
0 1 D1
1 0 D2
1 1 D3

IT-FIT 2021 148


Mạch tổ hợp
• Bộ phân kênh (Demultiplexer)
– Ngược với bộ dồn kênh
– Tin hiệu điều khiển (S)
sẽ chọn đầu ra nào kết
nối với đầu vào (I)
– Ví dụ: Demux 1-to-4

IT-FIT 2021 149


Mạch tổ hợp
• Bộ giải mã (Decoder)
– Bộ giải mã chọn một trong 2n đầu ra (O) tương ứng với một
tổ hợp của n đầu vào (I)
– Ví dụ : Mạch giải mã 2 ra 4

IT-FIT 2021 150


Mạch tổ hợp
• Mạch so sánh (Comparator)
– So sánh các bit của 2 ngõ
vào và xuất kết quả 1 nếu
bằng nhau.
– Ví dụ : Mạch so sánh 4 bit
dùng các cổng XOR
A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0
IT-FIT 2021 151
Mạch tính toán
• Mạch dịch (Shifter)
– Dịch các tín hiệu sang trái hoặc phải 1 vị trí. Ứng dụng cho
phép nhân/ chia cho 2.
– Ví dụ : mạch dịch 8 bit với tín hiệu điều khiển chiều dịch
trái (C=0) hay phải (C=1)

IT-FIT 2021 152


Mạch tính toán
• Mạch cộng bán phần (Half adder)
– Cộng 2 bit đầu vào thành 1 bit đầu ra và 1 bit nhớ

Ký hiệu
A Sum
HA
B Carry

IT-FIT 2021 153


Mạch tính toán
• Mạch cộng toàn phần (Full adder)
– Cộng 3 bit đầu vào thành 1 bit đầu ra và 1 bit nhớ
– Cho phép xây dựng bộ cộng nhiều bit

HA HA Ký hiệu
A Sum
B
Carry
FA Carry
in out

IT-FIT 2021 154


Mạch tính toán
• Mạch cộng nhiều bit
– Ghép từ nhiều bộ cộng toàn phần

FA FA FA FA

IT-FIT 2021 155


Mạch tính toán
• Mạch cộng và trừ
– Mạch trừ: Đổi sang số bù 2 rồi cộng
– Có thể dùng chung mạch cộng để thực hiện phép trừ

IT-FIT 2021 156


Mạch tính toán
• Ví dụ ALU 1 bit

F0F1 Functions
00 A AND B
01 A OR B
10 B
11 A + B

Điều kiện
bình thường
ENA=1
ENB=1
INVA=0

IT-FIT 2021 157


Mạch tính toán
• ALU 8 bit
– Ví dụ tạo 1 mạch ALU 8 bit bằng cách ghép 8 bộ
ALU 1 bit ở ví dụ trước

IT-FIT 2021 158


Mạch tuần tự
• Khái niệm
– Mạch tuần tự (sequential circuit) là mạch logic
trong đó tín hiệu ra phụ thuộc tín hiệu vào ở hiện
tại và quá khứ
– Là mạch có nhớ, được thực hiện bằng phần tử nhớ
(Latch, Flip-Flop) và có thể kết hợp với các cổng
logic cơ bản
– Ứng dụng làm bộ nhớ, thanh ghi, mạch đếm,…
trong máy tính

IT-FIT 2021 159


Mạch tuần tự
• Mạch chốt (Latch)
– Dùng 2 cổng NOR mắc hồi tiếp với nhau. S, R là ngõ vào, Q và
Q là ngõ ra.
– Đây là mạch chốt SR. Nó có thể ở 1 trong 2 trạng thái Q=1 hoặc
Q=0 khi S=R=0.
– Khi S=1 → Q=1 bất kể trạng thái truớc đó (set)
– Khi R=1 → Q=0 bất kể trạng thái truớc đó (reset)

IT-FIT 2021 160


Mạch tuần tự
• Mạch chốt SR có xung Clock
– Thêm vào mạch chốt SR 2 cổng AND nối với xung đồng
hồ để điều khiển trạng thái mạch chốt tại thời điểm xác
định
– Tín hiệu vào chỉ có tác dụng khi xung clock=1 (mức cao)

IT-FIT 2021 161


Mạch tuần tự
• Mạch chốt D có xung Clock
– Mạch chốt SR sẽ ở trạng thái không xác định khi S=R=1
– Khắc phục bằng cách chỉ dùng 1 tín hiệu vào và đấu nối R
với S qua cổng NOT
– Đây chính là mạch bộ nhớ 1 bit với D là ngõ vào, Q là ngõ
ra

IT-FIT 2021 162


Mạch bộ nhớ
• Flip-Flop
– Trong thực tế ta muốn bộ nhớ chỉ được ghi trong 1 khoảng
thời gian nhất định → cần thiết kế mạch xung Clock tác
dụng theo cạnh (lên hoặc xuống)

IT-FIT 2021 163


Mạch bộ nhớ
• D Flip-Flop
– Là mạch chốt D có xung Clock điều khiển bằng Flip-flop
– Phân biệt:
• Flip-flop: edge triggered
• Latch: level triggered

IT-FIT 2021 164


Mạch bộ nhớ
• Ký hiệu mạch chốt và Flip-Flop

a) Mạch chốt D tác động theo mức 1 (clock=1)


b) Mạch chốt D tác động theo mức 0 (clock=0)
c) Flip-flop D tác động theo cạnh lên (clock= 0→1)
d) Flip-flop D tác động theo cạnh xuống (clock= 1→0)

IT-FIT 2021 165


Mạch bộ nhớ
• Thanh ghi (Register)
– Việc ghép nối nhiều ô nhớ 1 bit tạo thành
các ô nhớ lớn hơn
– Ví dụ : Vi mạch 74273 gồm 8 D flip-flop
ghép nối lại tạo thành 1 thanh ghi 8 bit

IT-FIT 2021 166


Mạch bộ nhớ
• Ví dụ : mạch bộ
nhớ 4 ô x 3 bit
– A: Address
– I: Input data
– O: Output data
– CS: Chip select
– RD: Read/write
– OE: Output enable

Write:
CS=1, RD=0, OE=0
Read:
CS=1, RD=1, OE=1

IT-FIT 2021 167


Mạch bộ nhớ
• Mạch đệm (Buffer)
– Dùng để đọc dữ liệu đồng bộ trên nhiều đường tín hiệu bằng 1
đường điều khiển riêng.
– Sử dụng các cổng 3 trạng thái (tri-state devices)

(a) Buffer không đảo.


(b) Khi control ở mức cao (=1).
(c) Khi control ở mức thấp (=0).
(d) Buffer đảo.
IT-FIT 2021 168
Mạch bộ nhớ
• Chip bộ nhớ
– Bộ nhớ thường gồm nhiều ô nhớ ghép lại
– Ví dụ 1: Chip bộ nhớ 4Mbit có thể tạo thành từ
512K ô 8 bit hoặc ma trận 2048x2048 ô 1 bit

Ghi chú:
RAS:Row Address Strobe
CAS:Column Address Strobe
CS:Chip select
WE:Write enable
OE:Output enable
D:Data
A:Address
IT-FIT 2021 169
Mạch bộ nhớ
• Chip bộ nhớ (tiếp)
– Mạch giải mã địa chỉ n bit có thể giải mã cho 2n ô nhớ →
cần n chân tín hiệu địa chỉ
– Có thể giảm kích thước bộ giải mã còn n bằng cách tổ
chức thành ma trận các ô nhớ → sử dụng 2 bộ giải mã cho
hàng và cột riêng
– Ví dụ: bộ nhớ 16 ô cần 4 bit địa chỉ có thể tổ chức thành
ma trận 4*4 → chỉ cần giải mã 2 bit cho hàng và 2 bit cho
cột.
– Có thể ghép địa chỉ hàng và cột chung 1 chân tín hiệu →
giảm số chân kết nối bus địa chỉ
– Nhược điểm: cần gấp đôi thời gian truy cập bộ nhớ
IT-FIT 2021 170
Mạch bộ nhớ Row decoder
2-to-4
4-to-16 Word select Decoder 0
Decoder 0 A3 21
A3 23 1 RAM cell RAM cell RAM cell RAM cell
0 1 2 3
2 RAM cell A2 20
A2 2 3 1
2
4
Row RAM cell RAM cell RAM cell RAM cell
A1 1 5 select 4 5 6 7
2
6 RAM cell 2
A0 20 7
RAM cell RAM cell RAM cell RAM cell
8 8 9 10 11
9
3
10
11 RAM cell RAM cell RAM cell RAM cell
12 13 14 15
12
13 Read/Write Read/Write Read/Write Read/Write
logic logic logic logic
14
15 Data in Data in Data in Data in
Data out Data out Data out Data out
Read/ Bit Read/ Bit Read/ Bit Read/ Bit
RAM cell Write select Write select Write select Write select
Data input
Read/Write
Read/Write
logic
X X X X
Column select Data
Data input Data in output
Data 0 1 2 3
Data out output
Read/ Bit Column 2-to-4 Decoder
decoder with enable
Write select
21 20 Enable
Read/Write
Chip select A1 A0
IT-FIT 2021 Chip select 171
Mạch bộ nhớ
• Chip bộ nhớ (tiếp)
– Ví dụ 2: Chip bộ nhớ 512Mbit = 4 bank 128Mbit
• Ma trận 13 bit hàng * 12 bit cột * ô nhớ 4 bit
• Ma trận 13 bit hàng * 10 bit cột * ô nhớ 16 bit

IT-FIT 2021 172


Mạch bộ nhớ
• Tổ chức bộ nhớ
– Bộ nhớ thường gồm nhiều chip nhớ dung lượng nhỏ ghép lại
– Dùng 1 mạch giải mã địa chỉ để chọn chip khi truy cập
– Ví dụ: Bộ nhớ 1KB gồm 4 chip 256B ghép lại

IT-FIT 2021 173


Câu hỏi

IT-FIT 2021 174


Chương 4

Kiến trúc tập lệnh


(Instruction Set Architecture)
Nội dung
• Mô hình lập trình của máy tính
• Các đặc trưng của lệnh máy
• Các kiểu thao tác của lệnh
• Các phương pháp định địa chỉ
• Phân loại tập lệnh
• Kiến trúc tập lệnh Intel x86

IT-FIT 2021 176


Mô hình lập trình của máy tính
• Vị trí kiến trúc tập lệnh ISA trong máy tính
– Nằm giữa phần cứng và NNLT cấp cao HLL
– Giúp phần mềm tương thích khi kiến trúc phần cứng thay
đổi

IT-FIT 2021 177


Mô hình lập trình của máy tính
• Máy tính theo quan điểm lập trình

IT-FIT 2021 178


Mô hình lập trình của máy tính
• Ví dụ về sự thi hành chương trình

IT-FIT 2021 179


Mô hình lập trình của máy tính
• Tập thanh ghi (Registers)
– Chứa các thông tin tạm thời phục vụ cho hoạt động
ở thời điểm hiện tại của CPU
– Được coi là mức đầu tiên của hệ thống bộ nhớ
– Số lượng thanh ghi nhiều → tăng hiệu năng của
CPU
– Có hai loại thanh ghi:
• Các thanh ghi lập trình được
• Các thanh ghi không lập trình được

IT-FIT 2021 180


Mô hình lập trình của máy tính
• Phân loại thanh ghi theo chức năng
– Thanh ghi địa chỉ: quản lý địa chỉ của bộ nhớ hay
cổng IO.
– 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.
IT-FIT 2021 181
Mô hình lập trình của máy tính
• Một số thanh ghi điển hình
– Các thanh ghi địa chỉ (Address Register)
• Bộ đếm chương trình PC (Program Counter)
• Con trỏ dữ liệu DP (Data Pointer)
• Con trỏ ngăn xếp SP (Stack Pointer)
• Thanh ghi cơ sở và thanh ghi chỉ số (Base Register &
Index Register)
– Các thanh ghi dữ liệu (Data Register)
– Thanh ghi trạng thái (Status Register)

IT-FIT 2021 182


Mô hình lập trình của máy tính
• Bộ đếm chương trình PC
– Còn được gọi là con trỏ lệnh IP (Instruction Pointer)
– Giữ địa chỉ của lệnh tiếp theo sẽ được thi hành.
– Sau khi một lệnh được nhận vào, nội dung PC tự động
tăng để trỏ sang lệnh kế tiếp.
• Thanh ghi con trỏ dữ liệu DP
– Chứa địa chỉ của ô nhớ dữ liệu mà CPU muốn truy cập
– Thường có nhiều thanh ghi con trỏ dữ liệu cho phép
chương trình có thể truy cập nhiều vùng nhớ đồng
thời.

IT-FIT 2021 183


Mô hình lập trình của máy tính
• Ngăn xếp (Stack)
– Ngăn xếp là vùng nhớ có cấu trúc LIFO (Last In -
First Out) hoặc FILO (First In - Last Out)
– Ngăn xếp thường dùng để phục vụ cho chương
trình con
– Đáy ngăn xếp là một ô nhớ xác định
– Đỉ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
IT-FIT 2021 184
Mô hình lập trình của máy tính
• Con trỏ ngăn xếp SP (Stack Pointer)
– Chứa địa chỉ của ô nhớ đỉnh ngăn xếp
– Khi cất một thông tin vào ngăn xếp:
• Thao tác PUSH
• Nội dung của SP tự động tăng
• Thông tin được cất vào ô nhớ đang trỏ bởi SP
– Khi lấy một thông tin ra khỏi ngăn xếp:
• Thao tác POP
• Thông tin được đọc từ ô nhớ đang trỏ bởi SP
• Nội dung của SP tự động giảm
– Khi ngăn xếp rỗng, SP trỏ vào đáy

IT-FIT 2021 185


Mô hình lập trình của máy tính
• Thanh ghi cơ sở và thanh ghi
chỉ số
– Thanh ghi cơ sở: chứa địa chỉ
của ngăn nhớ cơ sở (địa chỉ cơ
sở)
– Thanh ghi chỉ số: chứa độ lệch
địa chỉ giữa ngăn nhớ mà CPU
cần truy cập so với ngăn nhớ cơ
sở (chỉ số)
– Địa chỉ của ngăn nhớ cần truy
cập = địa chỉ cơ sở + chỉ số

IT-FIT 2021 186


Mô hình lập trình của máy tính
• Thanh ghi dữ liệu (Data Register)
– 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 chấm động: 32, 64, 80 bit
• Thanh ghi trạng thái (Status Register)
– Còn gọi là thanh ghi cờ (Flags Register) hoặc từ trạng
thái chương trình PSW (Program Status Word)
– 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ả phép toán
• Các cờ điều khiển: biểu thị trạng thái điều khiển của CPU
IT-FIT 2021 187
Mô hình lập trình của máy tính
• Ví dụ cờ phép toán
– Zero Flag (cờ rỗng): được thiết lập lên 1 khi kết quả
của phép toán bằng 0.
– Sign Flag (cờ dấu): được thiết lập lên 1 khi kết quả
phép toán nhỏ hơn 0 (kết qủa âm)
– Carry Flag (cờ nhớ): được thiết lập lên 1 nếu phép toán
có nhớ ra ngoài bit cao nhất → cờ báo tràn với số
không dấu.
– Overflow Flag (cờ tràn): được thiết lập lên 1 nếu cộng
hai 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 .

IT-FIT 2021 188


Mô hình lập trình của máy tính
• Ví dụ cờ điều khiển
– Interrupt Flag (Cờ cho phép ngắt):
• Nếu IF = 1 → CPU ở trạng thái cho phép ngắt với tín
hiệu yêu cầu ngắt từ bên ngoài gửi tới
• Nếu IF = 0 → CPU ở trạng thái cấm ngắt với tín hiệu
yêu cầu ngắt từ bên ngoài gửi tới
– Direction Flag (Cờ hướng):
• Nếu DF=0 → Truy cập bộ nhớ theo hướng tăng
• Nếu DF=1 → Truy cập bộ nhớ theo hướng giảm

IT-FIT 2021 189


Mô hình lập trình của máy tính
• Ví dụ: Tập thanh ghi của một số bộ xử lý

IT-FIT 2021 190


Các đặc trưng của lệnh máy
• Giới thiệu chung về tập lệnh
– Mỗi bộ xử lý có một tập lệnh xác định
– Tập lệnh thường có hàng chục đến hàng trăm lệnh
– Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý
hiểu được để thực hiện một thao tác xác định.
– 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ữ (assembly), ví dụ:
ADD, SUB, LOAD, STORE,…

IT-FIT 2021 191


Các đặc trưng của lệnh máy
• Các thành phần của lệnh máy
Opcode Operand address
– Mã thao tác (operation code): mã hóa cho thao tác mà bộ
xử lý phải thực hiện bằng số nhị phân (làm gì?)
– Địa chỉ toán hạng (operand address): chỉ ra nơi chứa các
toán hạng mà thao tác sẽ tác động (làm ở đâu?)
• Toán hạng nguồn: dữ liệu vào của thao tác
• Toán hạng đích: dữ liệu ra của thao tác
• Toán hạng: Thanh ghi, bộ nhớ, thiết bị ngoại vi,…
• Ví dụ: 1 lệnh 16 bit có 2 toán hạng

IT-FIT 2021 192


Các đặc trưng của lệnh máy
• Số lượng địa chỉ toán hạng trong lệnh
– Ba địa chỉ toán hạng:
• 2 toán hạng nguồn, 1 toán hạng đích
• Ví dụ : a = b + c → ADD A, B, C
• Từ lệnh dài vì phải mã hoá địa chỉ cho cả ba toán hạng
– Hai địa chỉ toán hạng:
• Một toán hạng vừa là toán hạng nguồn vừa là toán hạng đích;
toán hạng còn lại là toán hạng nguồn
• Ví dụ : a = a + b → ADD A, B
• Giá trị cũ của 1 toán hạng nguồn bị mất vì phải chứa kết quả
• Rút gọn độ dài từ lệnh, được sử dụng phổ biến
IT-FIT 2021 193
Các đặc trưng của lệnh máy
• Số lượng địa chỉ toán hạng trong lệnh (tiếp)
– Một địa chỉ toán hạng:
• Một toán hạng được chỉ ra trong lệnh
• Một toán hạng là ngầm định, thường là thanh ghi tích lũy
(accumulator)
• Ví dụ : a = b + c
LOAD B
ADD C
STORE A
– Không địa chỉ toán hạng:
• Các toán hạng đều được ngầm định: Sử dụng Stack
• Ví dụ: a = b + c
PUSH B
PUSH C
ADD
POP A
IT-FIT 2021 194
Các đặc trưng của lệnh máy
• Đánh giá về số địa chỉ toán hạng
– Nhiều địa chỉ toán hạng
• Các lệnh phức tạp hơn
• Cần nhiều thanh ghi
• Chương trình có ít lệnh hơn
• Nhận lệnh và thực hiện lệnh chậm hơn
– Ít địa chỉ toán hạng
• Các lệnh đơn giản hơn
• Cần ít thanh ghi
• Chương trình có nhiều lệnh hơn
• Nhận lệnh và thực hiện lệnh nhanh hơn

IT-FIT 2021 195


Các đặc trưng của lệnh máy
• Các kiểu toán hạng
– Địa chỉ
– Số
• Số nguyên
• Số dấu chấm động Câu hỏi: Khi đọc trong 1 ô
nhớ nhận được gía trị nhị
• Mã BCD
phân 65, làm sao biết
– Ký tự được đây là gì?
• Mã ASCII • Số nguyên 65
• Ký tự ‘A’
– Dữ liệu logic • Lệnh CT 65
• Các bit hoặc các cờ • Địa chỉ 65

IT-FIT 2021 196


Các kiểu thao tác của lệnh
• Phân loại lệnh:
– Di chuyển dữ liệu
– Xử lý số học với số nguyên
– Xử lý logic
– Điều khiển vào-ra (IO)
– Chuyển điều khiển (rẽ nhánh)
– Điều khiển hệ thống

IT-FIT 2021 197


Các kiểu thao tác của lệnh
• Các lệnh di chuyển dữ liệu
– MOVE Copy dữ liệu từ nguồn đến đích
– LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý
– STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ
– EXCHANGE Hoán đổi nội dung của nguồn và đích
– CLEAR Chuyển các bit 0 vào toán hạng đích
– SET Chuyển các bit 1 vào toán hạng đích
– PUSH Cất nội dung toán hạng nguồn vào ngăn
xếp
– POP Lấy nội dung đỉnh ngăn xếp đưa đến
toán hạng đích

IT-FIT 2021 198


Các kiểu thao tác của lệnh
• Các lệnh số học
– ADD Cộng hai toán hạng
– SUBTRACT Trừ hai 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 0 trừ toán hạng)
– 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ờ

IT-FIT 2021 199


Các kiểu thao tác của lệnh
• Các lệnh logic
– AND Thực hiện phép AND hai toán hạng
– OR Thực hiện phép OR hai toán hạng
– XOR Thực hiện phép XOR hai toán hạng
– NOT Đảo bit của toán hạng (lấy bù 1)
– TEST Thực hiện phép AND hai toán hạng để
lập cờ

IT-FIT 2021 200


Các kiểu thao tác của lệnh
• Ví dụ các lệnh logic
– Giả sử có hai thanh ghi chứa dữ liệu như sau:
(R1) = 1010 1010
(R2) = 0000 1111
– R1  (R1) AND (R2) = 0000 1010
Phép toán AND dùng để xoá (Clear) một số bit và giữ
nguyên một số bit còn lại của toán hạng.
– R1  (R1) OR (R2) = 1010 1111
Phép toán OR dùng để thiết lập (Set) một số bit và giữ
nguyên một số bit còn lại của toán hạng.
– R1  (R1) XOR (R2) = 1010 0101
Phép toán XOR dùng để đảo một số bit và giữ nguyên một
số bit còn lại của toán hạng.
IT-FIT 2021 201
Các kiểu thao tác của lệnh
• Các lệnh logic (tiếp)
– SHIFT
Dịch trái (phải) toán
hạng
– ROTATE
Quay trái (phải) toán
hạng

IT-FIT 2021 202


Các kiểu thao tác của lệnh
• Các lệnh nhập xuất chuyên dụng
– INPUT : Copy dữ liệu từ một cổng xác định đưa đến
đích (thiết bị → bộ nhớ)
– OUTPUT: Copy dữ liệu từ nguồn đến một cổng xác
định (bộ nhớ → thiết bị)
• Các lệnh chuyển điều khiển
– JUMP (BRANCH): Lệnh rẽ nhánh không điều kiện
– CONDITIONAL JUMP : Lệnh rẽ nhánh có điều kiện
– CALL : Lệnh gọi chương trình con
– RETURN : Lệnh trở về từ chương trình con
IT-FIT 2021 203
Các kiểu thao tác của lệnh
• Lệnh rẽ nhánh có điều kiện
– Trong lệnh có kèm theo điều kiện
– 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í có
địa chỉ XXX
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 theo các điều kiện khác nhau

IT-FIT 2021 204


Các kiểu thao tác của lệnh
• Minh hoạ lệnh rẽ nhánh không và có điều kiện

IT-FIT 2021 205


Các kiểu thao tác của lệnh
• Minh hoạ lệnh rẽ nhánh không và có điều kiện (tiếp)

IT-FIT 2021 206


Các kiểu thao tác của lệnh
• Lệnh CALL và RETURN
– CALL: Gọi chương trình con
• 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ỉ 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
– RETURN: Trở về từ chương trình
con
• 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
IT-FIT 2021 207
Các kiểu thao tác của lệnh
• Gọi các
chương trình
con lồng nhau

IT-FIT 2021 208


Các kiểu thao tác của lệnh
• Truyền tham số giữa các chương trình con
– Truyền qua Stack
– Ví dụ: P gọi Q(y1,y2) có 2 tham số.

IT-FIT 2021 209


Các kiểu thao tác của lệnh
• 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

IT-FIT 2021 210


Các phương pháp định địa chỉ
• 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 IO
– Phương pháp định địa chỉ (addressing modes) là cách thức
địa chỉ hóa trong vùng địa chỉ của lệnh để xác định nơi
chứa toán hạ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
IT-FIT 2021 211
Các phương pháp định địa chỉ
• Định địa chỉ tức thì (Immediate Addressing)
– Toán hạng nằm ngay trong vùng địa chỉ của lệnh
– Chỉ có thể là toán hạng nguồn
– Ví dụ: ADD R1, 5 ; R1 R1+5
– Không tham chiếu bộ nhớ
– Truy cập toán hạng rất nhanh
– Dải giá trị của toán hạng bị hạn chế

IT-FIT 2021 212


Các phương pháp định địa chỉ
• Định địa chỉ thanh ghi (Register
Addressing)
– Toán hạng được chứa trong thanh ghi có
tên trong vùng địa chỉ
– Ví dụ:
ADD R1, R2 ; R1 R1+R2
– Số lượng thanh ghi ít → vùng địa chỉ cần
ít bit hơn
– Không tham chiếu bộ nhớ
– Truy cập toán hạng nhanh
– Tăng số lượng thanh ghi → hiệu quả hơn
IT-FIT 2021 213
Các phương pháp định địa chỉ
• Định địa chỉ trực tiếp
(Direct Addressing)
– Toán hạng là ngăn nhớ có địa chỉ được
chỉ ra trực tiếp trong vùng địa chỉ của
lệnh
– Ví dụ:
• ADD R1, A ;R1  R1 + (A)
• Cộng nội dung thanh ghi R1 với nội dung
của ô nhớ có địa chỉ là A
• Tìm toán hạng trong bộ nhớ ở địa chỉ A
– CPU tham chiếu bộ nhớ một lần để
truy nhập dữ liệu
IT-FIT 2021 214
Các phương pháp định địa chỉ
• Định địa chỉ gián tiếp qua
thanh ghi (Register
Indirect Addressing)
– Toán hạng là ô nhớ có địa chỉ
nằm trong thanh ghi
– Vù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à con
trỏ (pointer)
– Vùng nhớ có thể được tham
chiếu là lớn (2n, với n là độ dài
của IT-FIT
thanh 2021
ghi) 215
Các phương pháp định địa chỉ
• Định địa chỉ gián tiếp qua bộ nhớ
(Indirect Memory Addressing)

– Bộ nhớ được trỏ bởi vù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
IT-FIT 2021 216
Các phương pháp định địa chỉ
• Định địa chỉ dịch chuyển
(Displacement Addressing)

– Để xác định toán hạng, vù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

IT-FIT 2021 217


Các phương pháp định địa chỉ
• Định địa chỉ dịch chuyển (tiếp)
– Các dạng địa chỉ dịch chuyển
• Địa chỉ hoá tương đối với PC
– Thanh ghi là Bộ đếm chương trình PC
– Toán hạng có địa chỉ cách ô nhớ được trỏ bởi PC
một độ lệch xác định
• Định địa chỉ cơ sở (base)
– Thanh ghi chứa địa chỉ cơ sở
– Hằng số là chỉ số
• Định địa chỉ chỉ số (index)
– Hằng số là địa chỉ cơ sở
– Thanh ghi chứa chỉ số
IT-FIT 2021 218
Phân loại tập lệnh
• CISC và RISC
– CISC:Complex Instruction Set Computer:
• Máy tính với tập lệnh đầy đủ
• Ví dụ: Intel x86, Motorola 680x0
– RISC:Reduced Instruction Set Computer:
• Máy tính với tập lệnh thu gọn
• Ví dụ: SunSPARC, Power PC, MIPS, ARM ...
– RISC đối nghịch với CISC

IT-FIT 2021 219


Phân loại tập lệnh
• Các đặc trưng của CISC
– Số lượng lệnh nhiều (vài trăm lệnh) → Dễ lập trình,
chương trình ngắn hơn (chiếm ít bộ nhớ)
– Truy cập toán hạng ở các thanh ghi lẫn bộ nhớ
– Cấu trúc CPU phức tạp
– Thời gian thực hiện lệnh cần nhiều chu kỳ máy
– Số lượng khuôn dạng lệnh lớn
– CPU có tập thanh ghi nhỏ
– Có nhiều mode địa chỉ
– Một số lệnh không có mạch phần cứng riêng (cần có vi
chương trình để thực hiện)
IT-FIT 2021 220
Phân loại tập lệnh
• Các đặc trưng của RISC
– Số lượng lệnh ít (vài chục lệnh) và cơ bản nhất → Khó lập
trình, chương trình dài hơn
– Hầu hết các lệnh truy cập toán hạng ở các thanh ghi
– Cấu trúc CPU đơn giản
– Thời gian thực hiện lệnh là một chu kỳ máy
– Số lượng khuôn dạng lệnh ít (<=4)
– CPU có tập thanh ghi lớn
– Có ít mode địa chỉ (<=4)
– Mỗi lệnh có mạch phần cứng riêng (không cần vi chương
trình)
IT-FIT 2021 221
Phân loại tập lệnh
• So sánh CISC và RISC
Loại CISC RISC .
Hãng SX IBM DEC VAX Intel Motorola MIPS
Hệ thống MT 370/168 11/780 486 88000 R4000
Năm SX 1973 1978 1989 1988 1991

Số lượng lệnh 208 303 235 51 94

Kích thước lệnh (B) 2-6 2-57 1-11 4 32

Addressing modes 4 22 11 3 1

Số lượng thanh ghi 16 16 8 32 32

Vi ChươngTrình (KB) 420 480 246 0 0

IT-FIT 2021 222


Phân loại tập lệnh
• Thống kê 10 lệnh Intel x86 sử dụng nhiều nhất
TT Lệnh Tỷ lệ (%)
1 load 22%
2 conditional branch 20%
3 compare 16%
4 store 12%
5 add 8%
6 and 6%
7 sub 5%
8 move register-register 4%
9 call 1%
10 return 1%
Total
IT-FIT 2021
96% 223
Phân loại tập lệnh
• Tại sao kiến trúc CISC của Intel vẫn sử dụng nhiều?
– Vấn đề tương thích
– Dễ xây dựng trình dịch (compiler) hơn
– Phù hợp với nhiều NNLT cấp cao (HLL)
– Phần mềm có sẵn đang sử dụng nhiều
– Thực tế hiện nay sử dụng hệ thống tập lệnh lai giữa RISC
và CISC
• Tổ chức bên trong theo RISC
• Kiến trúc lập trình bên ngoài theo CISC
• Sử dụng vi chương trình làm trung gian

IT-FIT 2021 224


Phân loại tập lệnh
• Ưu nhược điểm của CISC
– Ưu điểm
• Chương trình ít lệnh hơn, ít tốn bộ nhớ để lưu trữ
• Truy cập bộ nhớ với ít lệnh hơn
• Chương trình dễ viết, dễ đọc và dễ hiểu hơn
– Nhược điểm
• Dạng lệnh phức tạp, giải mã lệnh chậm
• Lệnh phức tạp nên không uyển chuyển, không áp dụng
cho nghiều trường hợp khác nhau
• Xử lý ngắt chậm hơn (do lệnh chiếm nhiều chu kỳ máy)
nên thời gian đáp ứng kém
IT-FIT 2021 225
Kiến trúc tập lệnh Intel x86

IT-FIT 2021 226


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 227


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 228


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 229


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 230


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 231


IT-FIT 2021 232
Kiến trúc tập lệnh Intel x86

IT-FIT 2021 233


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 234


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 235


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 236


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 237


IT-FIT 2021 238
Kiến trúc tập lệnh Intel x86

IT-FIT 2021 239


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 240


Kiến trúc tập lệnh Intel x86

• Ví dụ về khuôn dạng lệnh của CPU Intel x86

IT-FIT 2021 241


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 242


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 243


Kiến trúc tập lệnh Intel x86

IT-FIT 2021 244


Câu hỏi

IT-FIT 2021 245


Chương 5

Bộ xử lý trung tâm CPU


(Central Processing Unit)
Nội dung
• Tổ chức của CPU
• Hoạt động của chu trình lệnh
• Đơn vị điều khiển
• Kỹ thuật đường ống lệnh
• Cấu trúc bộ xử lý tiên tiến

IT-FIT 2021 247


Tổ chức của CPU
• Cấu trúc cơ bản của CPU

IT-FIT 2021 248


Tổ chức của CPU
• Cấu trúc cơ bản của CPU (tiếp)
– Đơ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.
– Đơ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à phép toán logic.
– Tập thanh ghi (Register File - RF): lưu giữ các thông tin
tạm thời phục vụ cho hoạt động của CPU.
– Đơ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).

IT-FIT 2021 249


Tổ chức của CPU
• Đơn vị số học và luận lý ALU
– Thực hiện các phép toán số học và phép toán luận lý:
• Số học: Cộng, trừ, nhân, chia, tăng, giảm, đảo dấu,…
• Luận lý: AND, OR, XOR, NOT, phép dịch bit,…

IT-FIT 2021 250


Tổ chức của CPU
• Đơn vị điều khiển CU
– Điều khiển nhận lệnh từ bộ nhớ
đưa vào thanh ghi lệnh
– Tăng nội dung của PC để trỏ
sang lệnh kế tiếp
– Giải mã lệnh đã được nhận để
xác định thao tác mà lệnh yêu
cầu
– 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 đó.

IT-FIT 2021 251


Tổ chức của CPU
• Các tín hiệu đưa đến đơn vị điều khiển
– Clock: tín hiệu xung 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
• Các tín hiệu phát ra từ đơn vị điều khiển
– Các tín hiệu điều khiển bên trong CPU:
• Điều khiển các thanh ghi
• Điều khiển ALU
– Các tín hiệu điều khiển bên ngoài CPU:
• Điều khiển bộ nhớ
• Điều khiển các mô-đun nhập xuất

IT-FIT 2021 252


Hoạt động của chu trình lệnh
• Chu trình lệnh
– Nhận lệnh (Fetch Instruction - FI)
– Giải mã lệnh (Decode Instruction - DI)
– Nhận toán hạng (Fetch Operands - FO)
– Thực hiện lệnh (Execute Instruction - EI)
– Cất toán hạng (Write Operands - WO)
– Ngắt (Interrupt Instruction - II)

IT-FIT 2021 253


Hoạt động của chu trình lệnh
• Chu trình lệnh (tiếp)

IT-FIT 2021 254


Hoạt động của chu trình lệnh
• Nhận lệnh (Fetch)
– CPU đưa địa chỉ của lệnh
cần nhận từ bộ đếm
chương trình PC ra bus
địa chỉ
– CPU phát tín hiệu điều
khiển đọc bộ nhớ
– Lệnh từ bộ nhớ được đặt
lên bus dữ liệu và được
CPU chép vào thanh ghi
lệnh IR
– CPU tăng nội dung PC để
trỏ sang lệnh kế tiếp

IT-FIT 2021 255


Hoạt động của chu trình lệnh
• Giải mã lệnh (Decode)
– 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
• Nhận dữ liệu (Fetch Operand)
– CPU đưa địa chỉ của toán hạng ra bus địa chỉ
– CPU phát tín hiệu điều khiển đọc
– Toán hạng được đọc vào CPU
– Tương tự như nhận lệnh

IT-FIT 2021 256


Hoạt động của chu trình lệnh
• Nhận dữ liệu gián tiếp
– CPU đưa địa chỉ ra bus địa chỉ
– CPU phát tín hiệu điều khiển
đọc
– Nội dung ngăn nhớ được đọc
vào CPU, đó chính là địa chỉ
của toán hạng
– Địa chỉ này được CPU phát ra
bus địa chỉ để 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
IT-FIT 2021 257
Hoạt động của chu trình lệnh
• Thực hiện lệnh (Execute)
– Có nhiều dạng tuỳ thuộc vào lệnh
– Có thể là:
• Đọc/Ghi bộ nhớ
• Nhập/ xuất
• Chuyển dữ liệu giữa các thanh ghi với nhau
• Chuyển dữ liệu giữa thanh ghi và bộ nhớ
• Thao tác số học/logic
• Chuyển điều khiển (rẽ nhánh)
• Ngắt
• ...
IT-FIT 2021 258
Hoạt động của chu trình lệnh
• Ghi toán hạng (Write)
– CPU đưa địa chỉ ra bus
địa chỉ
– CPU đưa dữ liệu cần
ghi ra bus dữ liệu
– CPU phát tín hiệu điều
khiển ghi
– Dữ liệu trên bus dữ
liệu được chép đến vị
trí xác định

IT-FIT 2021 259


Hoạt động của chu trình lệnh
• Ngắt (Interrupt)
– 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

IT-FIT 2021 260


Hoạt động của chu trình lệnh
• Ngắt (tiếp)

IT-FIT 2021 261


Đơn vị điều khiển
• Gồm 2 loại:
– Đơn vị điều khiển vi chương trình
(Microprogrammed Control Unit)
– Đơn vị điều khiển phần cứng
(Hardwired Control Unit)

IT-FIT 2021 262


Đơn vị điều khiển
• Đơn vị điều khiển vi chương
trình
– Bộ nhớ vi chương trình Mạch
(ROM) lưu trữ các vi chương tuần
tự
trình (microprogram)
– Một vi chương trình bao gồm
các vi lệnh (microinstruction)
– Mỗi vi lệnh mã hoá cho một
vi thao tác (microoperation)
– Để hoàn thành một lệnh cần
thực hiện một hoặc một vài
vi chương trình
– Tốc độ chậm

IT-FIT 2021 263


Đơn vị điều khiển
• Đơn vị điều khiển
phần cứng
– Sử dụng vi mạch
phần 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

IT-FIT 2021 264


Kỹ thuật đường ống lệnh
• Khái niệm
– Mỗi chu trình lệnh cần thực hiện bằng nhiều thao tác
– Kỹ thuật đơn hướng (Scalar): Thực hiện tuần tự từng
thao tác cho mỗi lệnh → chậm
– Kỹ thuật đường ống (Pipeline): Thực hiện song song
các thao tác cho nhiều lệnh đồng thời → nhanh hơn
– Ví dụ chu trình 1 lệnh gồm 5 bước:
• Nhận lệnh (I)
• Giải mã lệnh (D)
• Nhận toán hạng (F)
• Thực hiện lệnh (E)
• Cất toán hạng (W)

IT-FIT 2021 265


Kỹ thuật đường ống lệnh
• So sánh scalar và pipeline
– Scalar Chu kỳ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
– Nhiều chu Lệnh 1 I D FEW
Lệnh 2 I D FE W
kỳ máy cho
Lệnh 3 I D F E W
1 lệnh
Chu kỳ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Lệnh 1 I D F E W
– Pipeline Lệnh 2
Lệnh 3
I DF E W
I D F EW
– Mỗi chu kỳ Lệnh 4 I D F EW
Lệnh 5
máy thực Lệnh 6
I D F E W
I D F E W
hiện xong 1 Lệnh 7 I D F E W
lệnh Lệnh 8 I D F E W
Lệnh 9 I D F E W
Lệnh 10 I D F E W
IT-FIT 2021 Lệnh 11 I D F E W 266
Kỹ thuật đường ống lệnh
• Các trở ngại của đường ống lệnh
– Thực tế không thể luôn đạt 1 chu kỳ máy/lệnh do
các trở ngại dẫn đến sự gián đoạn của ống lệnh
– Trở ngại cấu trúc: do nhiều công đoạn dùng chung
một tài nguyên
– Trở ngại dữ liệu: lệnh sau sử dụng dữ liệu kết quả
của lệnh trước
– Trở ngại điều khiển: do các lệnh rẽ nhánh gây ra

IT-FIT 2021 267


Kỹ thuật đường ống lệnh
• Trở ngại về cấu trúc
– Nguyên nhân: Dùng chung tài nguyên
– Khắc phục:
• Nhân tài nguyên để tránh xung đột
• Làm trễ
– Ví dụ 1: Bus dữ liệu truyền lệnh và dữ liệu → Bus lệnh
riêng, bus dữ liệu riêng (cache lệnh và cache dữ liệu)
– Ví dụ 2: Lệnh nhân cần nhiều chu kỳ thực thi (E)

IT-FIT 2021 268


Kỹ thuật đường ống lệnh
• Trở ngại về dữ liệu
– Nguyên nhân: lệnh sau sử dụng dữ liệu kết quả của
lệnh trước
– Các dạng:

IT-FIT 2021 269


Kỹ thuật đường ống lệnh
• Trở ngại về dữ liệu (tiếp)

IT-FIT 2021 270


Kỹ thuật đường ống lệnh
• Trở ngại về dữ liệu (tiếp)
– RAW

IT-FIT 2021 271


Kỹ thuật đường ống lệnh
• Trở ngại về điều khiển
– Do lệnh rẽ nhánh gây ra
– Đây là dạng trở ngại gây thiệt hại nhiều nhất cho ống
lệnh: toàn bộ các lệnh đang thực thi trong ống phải huỷ
Chu kỳ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Lệnh 1 I D F E W
Lệnh 2 I D F E BRA 25 IF Zero
Lệnh 3 I D F
Lệnh 4 I D
Lệnh 5 I
Lệnh 25 I D F E W
Lệnh 26 I D F E W
Lệnh 27 I D F E W

IT-FIT 2021 272


Cấu trúc bộ xử lý tiên tiến

IT-FIT 2021 273


Cấu trúc bộ xử lý tiên tiến
• Các đơn vị xử lý dữ liệu chuyên dụng
– Các đơn vị số nguyên (ALU)
– Các đơn vị số dấu chấm động (FPU)
– Các đơn vị chức năng đặc biệt (SFU)
• Đơn vị xử lý dữ liệu âm thanh
• Đơn vị xử lý dữ liệu hình ảnh
• Đơn vị xử lý dữ liệu vector
• Mục đích: Tăng khả năng xử lý các chức năng
chuyên biệt
IT-FIT 2021 274
Cấu trúc bộ xử lý tiên tiến
• Bộ nhớ cache
– Được tích hợp trên chip vi xử lý
– Bao gồm hai đến ba mức cache
– Cache L1 gồm hai phần tách rời:
• Cache lệnh (Instruction cache)
• Cache dữ liệu (Data cache)
→ Giải quyết xung đột khi nhận lệnh và dữ liệu
– Cache L2 và L3: chung cho lệnh và dữ liệu
• Mục đích: Tăng hiệu suất truy cập bộ nhớ
chínhIT-FIT 2021 275
Cấu trúc bộ xử lý tiên tiến
• Đơn vị quản lý bộ nhớ
– Thường gọi là đơn vị MMU (Memory
Management Unit) dùng để quản lý bộ nhớ ảo
– Chuyển đổi địa chỉ ảo (trong chương trình) thành
địa chỉ vật lý (trong bộ nhớ)
– Cung cấp cơ chế phân trang/phân đoạn
– Cung cấp chế độ bảo vệ bộ nhớ
• Mục đích : Tăng dung lượng bộ nhớ chính
bằng cách sử dụng bộ nhớ phụ
IT-FIT 2021 276
Cấu trúc bộ xử lý tiên tiến
• Các kiến trúc máy tính song song
– Nhu cầu giải các bài toán lớn ngày càng nhiều, cần những
máy tính cực mạnh có khả năng xử lý tốc độ cao
– Kiến trúc máy tính tuần tự (Von-Neumann) tiến đến giới
hạn tốc độ, một bộ xử lý duy nhất khó nâng cao hơn nữa
khả năng xử lý
– Các kiến trúc máy tính song song giúp tăng hiệu suất tính
toán cho máy tính:
– Kiến trúc song song mức lệnh IPL (Instruction-level parallelism) :
Tăng số lượng lệnh thi hành được trên cùng 1 đơn vị thời gian
– Kiến trúc song song mức xử lý (Machine parallelism) : Tăng số
lượng đơn vị xử lý phần cứng
– Cần kết hợp cả 2 kiến trúc song song để tạo ra các máy tính
có hiệu suất cao

IT-FIT 2021 277


Cấu trúc bộ xử lý tiên tiến
• Kiến trúc song song mức lệnh
– Siêu đường ống (Superpipeline)
• Chia mỗi thao tác trong chu trình lệnh ra n bước nhỏ → ống
lệnh dài hơn
• Cần 1/n chu kỳ máy cho mỗi thao tác
– Siêu hướng (Superscalar)
• Sử dụng nhiều ống lệnh → CPU gồm nhiều đơn vị chức
năng, cho phép thi hành nhiều lệnh đồng thời
• Mỗi chu kỳ máy thực hiện được nhiều lệnh
– VLIW (Very Long Instruction Word)
• Ghép nhiều lệnh đơn vào 1 từ máy để thực hiện đồng thời
• Ví dụ : CPU Itanium họ IA-64 của Intel cho phép ghép 3
lệnh/từ máy gọi là bundle gồm 128 bit

IT-FIT 2021 278


Cấu trúc bộ xử lý tiên tiến
• Superpipeline
Chu kỳ 1 2 3 4 5 6 7
Lệnh 1 I1 I2 D1 D2 F1 F2 E1 E2 W1 W2
Lệnh 2 I1 I2 D1 D2 F1 F2 E1 E2 W1 W2
Lệnh 3 I1 I2 D1 D2 F1 F2 E1 E2 W1 W2
Lệnh 4 I1 I2 D1 D2 F1 F2 E1 E2 W1 W2
Lệnh 5 I1 I2 D1 D2 F1 F2 E1 E2 W1 W2

Chu kỳ 1 2 3 4 5 6 7 8 9
• Super- Lệnh 1
Lệnh 2
I
I
D
D
F
F
E
E
W
W
Lệnh 3 I D F E W
scalar Lệnh 4 I D F E W
Lệnh 5 I D F E W
Lệnh 6 I D F E W
Lệnh 7 I D F E W
Lệnh 8 I D F E W
Lệnh 9 I D F E W
IT-FIT 2021 Lệnh 10 I D F E W 279
Cấu trúc bộ xử lý tiên tiến
• VLIW

• Ví dụ: Khuôn dạng lệnh của CPU Intel Itanium

IT-FIT 2021 280


Cấu trúc bộ xử lý tiên tiến
• Kiến trúc song song mức xử lý
– Tích hợp nhiều bộ xử lý đồng thời để tăng khả
năng thi hành chương trình
– Các xu hướng phát triển:
• Đa chương (multi-programming)
• Đa luồng (multi-threading)
• Đa nhân (multi-core)
• Đa xử lý (multi-processing)
• Đa máy tính (multi-computer)

IT-FIT 2021 281


Cấu trúc bộ xử lý tiên tiến
• Kiến trúc song song mức xử lý (tiếp)

(a) On-chip parallelism (b) Coprocessor (c) Multiprocessor (d) Multicomputer (e) Grid
IT-FIT 2021 282
Cấu trúc bộ xử lý tiên tiến
• Multi-core

IT-FIT 2021 283


Cấu trúc bộ xử lý tiên tiến
• Ví dụ : CPU Intel Core i7 gồm 4 nhân

IT-FIT 2021 284


Cấu trúc bộ xử lý tiên tiến
• Multi-processor
– Sử dụng bus chung hoặc switch
– Sử dụng bộ nhớ chung hoặc riêng biệt

Sơ đồ UMA (Uniform Memory Access) dùng


bus chung và bộ nhớ chung
IT-FIT 2021 285
Cấu trúc bộ xử lý tiên tiến
• Multi-processor (tiếp)
– Sơ đồ NUMA (Non-Uniform Memory Access)
dùng bus chung và bộ nhớ riêng

IT-FIT 2021 286


Cấu trúc bộ xử lý tiên tiến
• Multi-processor (tiếp)
– Sơ đồ UMA (Uniform Memory Access) dùng switch và bộ nhớ riêng
– Còn gọi là hệ thống đa xử lý đối xứng SMP (Symmetric Multi-
Processors)

IT-FIT 2021 287


Cấu trúc bộ xử lý tiên tiến
• Multi-processor (tiếp)
– Sơ đồ multi-processor dùng bộ nhớ chung

IT-FIT 2021 288


Cấu trúc bộ xử lý tiên tiến
• Ví dụ: Hệ thống SUN E25K (NUMA multi-processor)

72 CPU Dual-core
UltraSPARC IV+
1.95GHz
32MB Cache L3
1.15 TB RAM
250TB HDD

IT-FIT 2021 289


Cấu trúc bộ xử lý tiên tiến
• Multi-computer
– Phân loại theo Flynn (1966): Căn cứ vào số lượng
lệnh và số lượng dữ liệu có thể xử lý là 1 hay nhiều
• Single instruction, single data stream – SISD
• Single instruction, multiple data stream – SIMD
• Multiple instruction, single data stream – MISD
• Multiple instruction, multiple data stream- MIMD

IT-FIT 2021 290


Cấu trúc bộ xử lý tiên tiến
• Sơ đồ phân loại Flynn

IT-FIT 2021 291


Cấu trúc bộ xử lý tiên tiến
• Ví dụ về SIMD

IT-FIT 2021 292


Cấu trúc bộ xử lý tiên tiến
• Cluster
– Là 1 dạng máy tính loại MIMD gồm nhiều máy tính độc
lập kết nối qua mạng tốc độ cao, mỗi máy có CPU, BN và
IO riêng
– Dùng phương pháp truyền thông báo (Message Passing) để
trao đổi thông tin (bằng phần mềm)
• MPI (Message Passing Interface)
• PVM (Parallel Virtual Machine)
– Gồm 2 loại
• NOW (Network of Workstations) hoặc COW (Cluster of
Workstations) : Kết nối qua LAN
• Grid : Kết nối qua Internet
IT-FIT 2021 293
Cấu trúc bộ xử lý tiên tiến
• Cluster (tiếp)

IT-FIT 2021 294


Cấu trúc bộ xử lý tiên tiến
• Message-passing multi-computer

IT-FIT 2021 295


Cấu trúc bộ xử lý tiên tiến
• Ví dụ: Siêu máy tính Bluegen của IBM

500 TFLOPS
(teraFLOPS)

2 core
PowerPC 440
700 MHz
4MB L3
IT-FIT 2021 296
Cấu trúc bộ xử lý tiên tiến
• Ví dụ: Siêu máy tính Red Storm của Cray

IT-FIT 2021 297


Cấu trúc bộ xử lý tiên tiến
• So sánh 2 siêu máy tính Bluegen & Red Storm

IT-FIT 2021 298


Cấu trúc bộ xử lý tiên tiến
• Top 10 siêu máy tính 06/2010 trên trang top500.org
Rank Site Computer
Oak Ridge National Laboratory Jaguar - Cray XT5-HE Opteron Six Core 2.6 GHz
1
United States Cray Inc.
National Supercomputing Centre in Shenzhen Nebulae (Tinh Vân) - Dawning TC3600 Blade, Intel X5650
2
China (Thâm Quyến) Dawning
Roadrunner - BladeCenter QS22/LS21 Cluster, PowerXCell 8i 3.2 Ghz /
DOE/NNSA/LANL
3 Opteron DC 1.8 GHz, Voltaire Infiniband
United States
IBM
National Institute for Computational
Kraken XT5 - Cray XT5-HE Opteron Six Core 2.6 GHz
4 Sciences/University of Tennessee
Cray Inc.
United States
Forschungszentrum Juelich (FZJ) JUGENE - Blue Gene/P Solution
5
Germany IBM
NASA/Ames Research Center/NAS Pleiades - SGI Altix ICE 8200EX/8400EX, Xeon HT QC 3.0 Ghz
6
United States SGI
National SuperComputer Center in Tianjin/NUDT Tianhe-1 (Tinh Hà) - NUDT TH-1 Cluster, Xeon E5540/E5450
7
China (Thiên Tân) NUDT
DOE/NNSA/LLNL BlueGene/L - eServer Blue Gene Solution
8
United States IBM
Argonne National Laboratory Intrepid - Blue Gene/P Solution
9
United States IBM
National Renewable Energy Laboratory Red Sky - Sun Blade x6275, Xeon X55xx 2.93 Ghz, Infiniband
10
United StatesIT-FIT 2021 Sun 299
Cấu trúc bộ xử lý tiên tiến
• Top 10 siêu máy tính 06/2011 trên trang top500.org
Rank Site Computer
RIKEN Advanced Institute for Computational K computer, SPARC64 VIIIfx 2.0GHz
1
Science - Japan Fujitsu
National Supercomputing Center in Tianjin Tianhe-1A (Tinh Hà) X5670 2.93Ghz 6C, NVIDIA GPU
2
(Thiên Tân) – China NUDT
DOE/SC/Oak Ridge National Laboratory Jaguar - Cray XT5-HE Opteron 6-core 2.6 GHz
3
United States Cray Inc.
National Supercomputing Centre in Shenzhen Nebulae (Tinh Vân) Intel X5650, NVidia Tesla C2050 GPU
4
(Thâm Quyến) – China Dawning
GSIC Center, Tokyo Institute of Technology TSUBAME 2.0 G7 Xeon 6C X5670, Nvidia GPU,
5
Japan NEC/HP
DOE/NNSA/LANL/SNL Cielo - Cray XE6 8-core 2.4 GHz
6
United States Cray Inc.
NASA/Ames Research Center/NAS Pleiades Xeon HT QC 3.0/Xeon 5570/5670 2.93 Ghz
7
United States SGI
DOE/SC/LBNL/NERSC Hopper - Cray XE6 12-core 2.1 GHz
8
United States Cray Inc.
Commissariat a l'Energie Atomique (CEA) Tera-100 - Bull bullx super-node S6010/S6030
9
France Bull SA
DOE/NNSA/LANL Roadrunner - PowerXCell 8i 3.2 Ghz / Opteron DC 1.8 GHz
10 IT-FIT 2021 300
United States IBM
Cấu trúc bộ xử lý tiên tiến
• Top 10 siêu máy tính 06/2012 trên trang top500.org
Rank Site Computer
DOE/NNSA/LLNL Sequoia - BlueGene/Q, Power BQC 16C 1.60 GHz, Custom
1
United States IBM
RIKEN Advanced Institute for Computational K computer, SPARC64 VIIIfx 2.0GHz, Tofu interconnect
2
Science Japan Fujitsu
DOE/SC/Argonne National Laboratory Mira - BlueGene/Q, Power BQC 16C 1.60GHz, Custom
3
United States IBM
Leibniz Rechenzentrum SuperMUC - iDataPlex DX360M4, Xeon E5-2680 8C
4
Germany 2.70GHz, Infiniband FDR IBM
National Supercomputing Center in Tianjin Tianhe-1A - NUDT YH MPP, Xeon X5670 6C 2.93 GHz,
5
China NVIDIA 2050 NUDT
DOE/SC/Oak Ridge National Laboratory Jaguar - Cray XK6, Opteron 6274 16C 2.200GHz, Cray
6
United States Gemini interconnect, NVIDIA 2090 Cray Inc.
CINECA Fermi - BlueGene/Q, Power BQC 16C 1.60GHz, Custom
7
Italy IBM
Forschungszentrum Juelich (FZJ) JuQUEEN - BlueGene/Q, Power BQC 16C 1.60GHz, Custom
8
Germany IBM
CEA/TGCC-GENCI Curie thin nodes - Bullx B510, Xeon E5-2680 8C 2.700GHz,
9
France Infiniband QDR Bull
National Supercomputing Centre in Shenzhen Nebulae - Dawning TC3600 Blade System, Xeon X5650 6C
10
(NSCS) ChinaIT-FIT 2021 2.66GHz, Infiniband QDR, NVIDIA 2050 Dawning 301
Cấu trúc bộ xử lý tiên tiến
• Top 10 siêu máy tính 11/2012 trên trang top500.org
Rank Site System Cores
DOE/SC/Oak Ridge National Laboratory Titan - Cray XK7 , Opteron 6274 16C 2.200GHz,
1 560.640
United States Cray Inc.

DOE/NNSA/LLNL Sequoia - BlueGene/Q, Power BQC 16C 1.60 Hz,


2 1.572.864
United States IBM
RIKEN Advanced Institute for Computational Science K computer, SPARC64 VIIIfx 2.0GHz,
3 705.024
Japan Fujitsu
DOE/SC/Argonne National Laboratory Mira - BlueGene/Q, Power BQC 16C 1.60GHz,
4 786.432
United States IBM
Forschungszentrum Juelich (FZJ) JUQUEEN - BlueGene/Q, Power BQC 16C
5 393.216
Germany 1.60GHz, IBM
Leibniz Rechenzentrum SuperMUC - iDataPlex DX360M4, Xeon E5-2680
6 147.456
Germany 8C 2.70GHz, IBM
Texas Advanced Computing Center/Univ. of Texas Stampede - PowerEdge C8220, Xeon E5-2680 8C
7 204.900
United States 2.700GHz, Intel Xeon Phi Dell
National Supercomputing Center in Tianjin Tianhe-1A - NUDT YH MPP, Xeon X5670 6C 2.93
8 186.368
China GHz, NVIDIA 2050 NUDT
CINECA Fermi - BlueGene/Q, Power BQC 16C 1.60GHz,
9 163.840
Italy IBM
IT-FIT
IBM Development 2021
Engineering DARPA Trial Subset - Power 775, POWER7 8C 302
10 63.360
United States 3.836GHz IBM
Câu hỏi

IT-FIT 2021 303


Chương 6

Tổng quan về Hệ điều hành


NỘI DUNG
• Chức năng
• Các thành phần
• Ví dụ các OS thông dụng: Windows, Linux

IT-FIT 2021 305


1. Hệ thống máy tính

IT-FIT 2021 306


1. Hệ thống máy tính

IT-FIT 2021 307


1. Hệ thống máy tính
Các thành phần của một hệ thống máy tính:
Phần cứng: cung cấp các tài nguyên tính toán cơ bản (CPU, memory,
I/O devices)

Hệ điều hành: Điều khiển và điều phối việc sử dụng phần cứng
giữa các ứng dụng và người dùng khác nhau
Chương trình ứng dụng: sử dụng tài nguyên của máy tính để
giải quyết các yêu cầu của người sử dụng
Người dùng: Người sử dụng, máy móc hay máy tính khác

IT-FIT 2021 308


2. Hệ điều hành - OS
➢Vị trí:
– Một chương trình hoạt động trung gian giữa người dùng (ứng dụng)
và phần cứng máy tính
– Thực thi các chương trình ứng dụng

➢Mục tiêu của OS: Cung cấp một môi trường để


người sử dụng có thể thực hiện các chương trình ứng
dụng và làm cho máy tính dễ sử dụng hơn, thuận lợi
hơn và hiệu quả hơn.
– Thuận tiện
– Hiệu quả
– Khả năng phát triển
IT-FIT 2021 309
Định nghĩa hệ điều hành
• Nhiều góc độ quan sát đánh giá → nhiều định nghĩa
• Người sử dụng: Là hệ thống chương trình phục vụ khai thác hệ
thống tính toán một cách thuận lợi
• Người quản lý: Là hệ thống chương trình phục vụ quản lý chặt chẽ
và sử dụng tối ưu các tài nguyên của hệ thống tính toán.
• Quan điểm kỹ thuật: Là một hệ thống chương trình trang bị cho
một máy tính cụ thể để tạo ra một máy tính logic mới với tài
nguyên mới và khả năng mới
• Quan điểm hệ thống: Là một hệ thống mô hình hóa, mô phỏng
hoạt động của máy tính, của người sử dụng và của các thao tác
viên, hoạt động trong chế độ đối thoại nhằm tạo môi trường khai
thác thuận lợi hệ thống máy tính và quản lý tối ưu tài nguyên của
hệ thống.

IT-FIT 2021 310


Phân loại hệ điều hành
- Hệ thống xử lý theo lô đơn chương trình
- Hệ thống xử lý theo lô đa chương trình
- Hệ thống phân chia thời gian
- Hệ thống song song
- Hệ thống phân tán
- Hệ thống xử lý thời gian thực

IT-FIT 2021 311


Tính chất cơ bản của hệ điều
hành
• Độ tin cậy cao
• An toàn
• Hiệu quả
• Tổng quát theo thời gian
• Thuận tiện

IT-FIT 2021 312


Các khái niệm trong hệ điều
hành
• Tiến trình và tiểu trình
• Tài nguyên hệ thống
• Bộ xử lý lệnh
• Lời gọi hệ thống

IT-FIT 2021 313


Các khái niệm trong hệ điều
hành
Tiến trình (process): một chương trình đang thực hiện
- Mã lệnh chương trình có thể thực thi
- Dữ liệu của chương trình
- Ngăn xếp, con trỏ ngăn xếp, các thanh ghi
- Các thông tin cần thiết cho việc thực thi chương trình
Tiến trình vs. Chương trình
Chương trình: thực thể thụ động, chứa đựng các chỉ thị
điều khiển máy tính thực hiện một nhiệm vụ nào đó
Tiến trình: trạng thái động của chương trình

IT-FIT 2021 314


Các khái niệm trong hệ điều
hành
Tài nguyên hệ thống
▪ Là tất cả những gì cần thiết để cho một tiến trình có thể thực
hiện được
- Không gian lưu trữ của hệ thống
- Thời gian thực hiện lệnh hoặc truy xuất dữ liệu
▪ Bộ nhớ: dung lượng và thời gian truy cập trực tiếp, tuần tự
▪ Bộ xử lý:
- Quan trọng nhất của hệ thống
- Được truy cập ở mức câu lệnh
- Quan tâm đến thời gian xử lý
▪ Thiết bị ngoại vi:
- Tiếp nhận, kết xuất thông tin
- Gắn với hệ thống bởi các thiết bị điều khiển

IT-FIT 2021 315


Các khái niệm trong hệ điều
hành
Phân loại tài nguyên
▪ Kiểu tài nguyên:
- Tài nguyên vật lý: các thiết bị vật lý
- Tài nguyên logic: biến nhớ, thiết bị ảo
▪ Khả năng sử dụng chung
- Tài nguyên dung chung được: bộ nhớ
- Tài nguyên không dung chung được nhưng phân chia được:
VXL
- Tài nguyên không dung chung và không phân chia được: máy in

IT-FIT 2021 316


Các khái niệm trong hệ điều
hành
Bộ xử lý lệnh (Shell)
▪Tiến trình đặc biệt: nơi giao tiếp giữa người dung và hệ điều
hành
▪Nhiệm vụ:
- Nhận lệnh của người sử dụng
- Phân tích lệnh
- Phát sinh tiến trình mới để thực hiên yêu cầu của lệnh
▪Nhận lệnh thông qua cơ chế dòng lệnh
▪Môi trường đơn nhiệm (MS-DOS): chờ cho tiến trình này kết
thúc mới có thể nhận lệnh mới
▪Môi trường đa nhiệm (UNIX, WINDOWS, …): sau khi khởi
tạo tiến trình mới vào hoạt động, Shell có thể nhận lệnh mới.

IT-FIT 2021 317


Các khái niệm trong hệ điều
hành
Lời gọi hệ thống
▪ Tạo môi trường giao tiếp giữa chương trình của
người sử dụng và hệ điều hành
- Chương trình dung các lời gọi hệ thống để yêu cầu các dịch vụ từ HĐH
- Mỗi lời gọi hệ thống ứng với một thư viện các chương trình con
▪ Lời gọi hệ thống được thực hiện dưới dạng
- Các câu lệnh trong các ngôn ngữ lập trình cấp thấp
- Lệnh gọi ngắt trong hợp ngữ
- Thủ tục gọi hàm API trong windows
▪ Tham số cho các dịch vụ và kết quả trả về được
đặt tại các vùng nhớ đặc biệt (trong thanh ghi)
IT-FIT 2021 318
Cấu trúc hệ điều hành
Những thành phần của hệ thống
- Quản lý tiến trình
- Quản lý bộ nhớ chính
- Quản lý hệ thống vào ra
- Quản lý file
- Quản lý bộ nhớ lưu trữ
- Hệ thống trao đổi dữ liệu (mạng)
- Hệ thống bảo vệ
- Giao diện người dùng

IT-FIT 2021 319


Các thành phần của hệ thống
Quản lý tiến trình
▪ Tiến trình: chương trình đang thực hiện
▪ Tiến trình sử dụng tài nguyên của hệ thống để
hoàn thành công việc
• Tài nguyên được cấp khi tiến trình được khởi động hay khi đang thi
hành
• Tiến trình kết thúc, tài nguyên được trả về
▪ Hệ thống có thể tồn tại nhiều tiến trình tại một thời
điểm
• Tiến trình hệ thống
• Tiến trình người sử dụng

IT-FIT 2021 320


Các thành phần của hệ thống
Quản lý tiến trình
▪Nhiệm vụ của HĐH trong việc quản lý tiến
trình:
• Tạo và hủy các tiến trình của người sử dụng và của hệ thống
• Ngưng và thực hiện lại một tiến trình
• Cung cấp cơ chế đồng bộ tiến trình
• Cung cấp các thông tin giữa các tiến trình
• Cung cấp cơ chế kiểm soát bế tắc giữa các tiến trình

IT-FIT 2021 321


Các thành phần của hệ thống
Quản lý bộ nhớ chính
▪ Bộ nhớ chính là một mảng kiểu byte (word). Mỗi phần tử có
địa chỉ. Đó là nơi lưu dữ liệu được CPU truy xuất
▪ Một chương trình muốn thi hành trước hết phải được ánh xạ
thành địa chỉ tuyệt đối và nạp vào bộ nhớ chính. Khi chương
trình thi hành, hệ thống truy xuất các chỉ thị và dữ liệu của
chương trình trong bộ nhớ chính.
▪ Để tối ưu hóa quá trình hoạt động của CPU và tốc độ của
máy tính, một số tiến trình được lưu giữ trong bộ nhớ.
▪ Vai trò của HĐH trong việc quản lý bộ nhớ chính:
• Lưu giữ thông tin về các vị trí trong bộ nhớ đã được sử dụng và ai sử dụng
• Quyết định tiến trình nào được nạp vào bộ nhớ chính, khi bộ nhớ đã có thể dung được
• Cấp phát và thu hồi bộ nhớ khi cần thiết

IT-FIT 2021 322


Các thành phần của hệ thống
Quản lý hệ thống vào ra
▪Mục đích: che dấu những đặc thù của các thiết
bị phần cứng đối với người sử dụng thay vào đó
làm cho người sử dụng dễ thao tác hơn.
▪Quản lý hệ thống vào ra bao gồm:
- Thành phần quản lý bộ nhớ gồm buffering, caching, spooling
- Giao tiếp điều khiển thiết bị tổng quát
- Bộ điều khiển cho các thiết bị phần cứng đặc biệt. Chỉ có device
driver mới hiểu đến cấu trúc đặc thù của thiết bị mà nó mô tả.

IT-FIT 2021 323


Các thành phần của hệ thống
Quản lý file
▪Máy tính có thể lưu trữ thông tin trên nhiều loại
thiết bị lưu trữ khác nhau
▪File là đơn vị lưu trữ cơ bản nhất
▪Nhiệm vụ của quản lý file
- Tạo, xóa một tập tin, thư mục
- Hỗ trợ các thao tác trên file và thư mục
- Ánh xạ file trên hệ thống lưu trữ phụ
- Backup hệ thống file trên các thiết bị lưu trữ

IT-FIT 2021 324


Các thành phần của hệ thống
Quản lý bộ nhớ lưu trữ
▪ Chương trình được lưu trữ trên bộ nhớ phụ (đĩa từ)
cho tới khi nó được nạp vào trong bộ nhớ chính và
thực hiện sử dụng đĩa để chứa dữ liệu và kết quả
xử lý
▪ Có thể sử dụng đĩa để chứa dữ liệu và kết quả tạm
thời: bộ nhớ ảo
▪ Vai trò của HĐH trong việc quản lý đĩa
- Quản lý vùng trống trên đĩa
- Cung cấp vùng lưu trữ theo yêu cầu
- Lập lịch cho truy nhập đĩa hiệu quả

IT-FIT 2021 325


Các thành phần của hệ thống
Hệ thống trao đổi dữ liệu (hệ thống phân tán)
▪ Hệ thống phân tán gồm tập các VXL không có đồng hồ
và bộ nhớ chung. Mỗi VXL có bộ nhớ cục bộ riêng
▪ Các VXL liên kết qua các hệ thống mạng truyền thông
▪ Truyền thông được thực hiện nhờ các giao thức (FPT,
HTTP, …)
▪ Hệ phân tán cho phép người sử dụng truy nhập tới các
tài nguyên khác nhau
▪ Truy nhập tới tài nguyên dung chung cho phép
- Tăng tốc độ tính toán
- Tăng khả năng sẵn sang của dữ liệu
- Tăng độ tin cậy của hệ thống

IT-FIT 2021 326


Các thành phần của hệ thống
Bảo vệ hệ thống
▪ Hệ thống nhiều người dung đồng thời → các tiến
trình phải được bảo vệ từ các sự hoạt động của tiến
trình khác.
▪ Bảo vệ là cơ chế kiểm soát truy nhập của chương
trình, tiến trình hay người dung tới hệ thống hoặc
các tài nguyên người dung.
▪ Cơ chế bảo vệ đòi hỏi:
- Phân biệt giữa sử dụng hợp pháp và không hợp pháp
- Xác lập các kiểm soát được áp đặt
- Cung cấp các phương tiện ép buộc

IT-FIT 2021 327


Các thành phần của hệ thống
Giao diện người dùng
▪ Thực hiện câu lệnh người dùng. Các câu lệnh được
cung cấp cho HĐH bởi các câu lệnh điều khiển
nhằm
- Tạo và quản lý tiến trình
- Quản lý bộ nhớ chính, bộ nhớ lưu trữ
- Truy nhập hệ thống file
- Bảo vệ
- Hệ thống mạng
- …
▪ Giao diện người dùng có thể là dòng lệnh hay thân
thiện hơn nhờ dung giao diện đồ họa

IT-FIT 2021 328


Cấu trúc hệ điều hành
• Dịch vụ hệ điều hành
• Thi hành chương trình
• Thao tác nhập xuất
• Thao tác trên hệ thống tập tin
• Truyền thông
• Phát hiện lỗi
• Cung cấp tài nguyên
• Thống kê báo cáo
• Bảo vệ

IT-FIT 2021 329


Sự phát triển của hệ điều hành

Time
Sharing
Multiprogrammed Systems
Batch Systems
Simple
Batch
Systems
Serial
Processing

IT-FIT 2021 330


Operating System

Windows vs. Linux

IT-FIT 2021 331


Kiến trúc của Windows

IT-FIT 2021 332


Cấu trúc Module của Linux

IT-FIT 2021 333


Version
Phiên bản
Windows Linux
• Windows 95 • Suse
• Windows 98 • Fedora
• Windows Me • Redhat
• Windows XP • Debian
• Windows 2000 • Ubantu
• Windows 2003 • Knoppix
• Windows 7 • Slackware
• Windows 8
• Windows 10

IT-FIT 2021 334


Bundled software
Phần mềm đóng gói
Windows Linux
• Need to purchase and install • Libre Office suite
the MS Office suite preinstalled
separately

IT-FIT 2021 335


Drivers
Windows Linux
• Người dùng phải tự • Tích hợp sẵn (built-in driver
download và cài đặt set)
• Tự động download và cài
đặt (webcam, wi-fi, ethernet
card, …)

IT-FIT 2021 336


Prices, Reliability, Hardware,
Security, Open Source, Support,…
Windows Linux
• Sinh viên tự tìm hiểu

IT-FIT 2021 337


Market Share
Windows Linux
Estimated Desktop 84.07% (w3counter) 1.71% (w3counter)
Usage Share

Server market share 73.9% (officially registered) 21.2% (officially registered)

Top 500supercomputer 1.0% (absolute 5) 91.0% (absolute 455), the 14 fastest


operating system family
supercomputers run Linux
share

IT-FIT 2021 338


Chương 7

Tiến trình (Process)


Phần 1: Quản lý tiến trình
Nội dung
• Khái niệm tiến trình
– Các trạng thái của tiến trình
– Khối điều khiển tiến trình PCB
– Tạo và kết thúc tiến trình
• Điều phối tiến trình
• Liên lạc giữa các tiến trình
• Đồng bộ tiến trình
• Deadlock
IT-FIT 2021 340
Khái niệm tiến trình

• Process – tiến trình : Là chương trình đang thực


thi
– Chương trình (program) : tĩnh
– Tiến trình (process) : động

• Một process bao gồm ?

IT-FIT 2021 341


Khái niệm tiến trình

code

I/O
IT-FIT 2021 RAM 342
Các trạng thái của Tiến trình

IT-FIT 2021 343


Các trạng thái của Tiến trình

IT-FIT 2021 344


Process Control Block (PCB)
• Được tạo và quản lý bởi OS

IT-FIT 2021 345


Process Control Block (PCB)

IT-FIT 2021 346


Chuyển ngữ cảnh (Context
Switch)

IT-FIT 2021 347


Chuyển ngữ cảnh (Context
Switch)
• When CPU switches to another process, the
system must save the state of the old process
and load the saved state for the new process
via a context switch
• Context of a process represented in the PCB
• Context-switch time is overhead; the system
does no useful work while switching

IT-FIT 2021 348


Các thao tác trên process
Tạo tiến trình
• Một process tạo ra một/nhiều new process

• Tiến trình cha tạo các tiến trình con => tạo các tiến trình cháu
=> hình thành cây tiến trình (Linux)
IT-FIT 2021 349
Các thao tác trên process
Tạo tiến trình
init
pid = 1

login kthreadd sshd


pid = 8415 pid = 2 pid = 3028

bash khelper pdflush sshd


pid = 8416 pid = 6 pid = 200 pid = 3610

emacs tcsch
ps
pid = 9204 pid = 4005
pid = 9298

IT-FIT 2021 A Tree of Processes in Linux 350


Các thao tác trên process
Tạo tiến trình
• Tiến trình đang chạy gọi một system call của OS
để tạo new process, và chỉ định chương trình chạy
trong new process

IT-FIT 2021 351


Chương trình sử dụng fork() để sinh ra tiến trình con

//Wait for termination, returning the


pid:
IT-FIT 2021
//pid t pid; int status; 352
//pid = wait(&status);
Các thao tác trên process
Kết thúc tiến trình
• Tiến trình kết thúc khi :
– Normal exit ( tự nguyện )
– Error exit ( tự nguyện )
– Fatal error exit ( ép buộc )
– Được kết thúc bởi một tiến trình khác ( ép buộc )

• Gọi một system call để thực hiện kết thúc một


tiến trình
– Trong Unix : exit() => kết thúc tự nguyện
kill() => kết thúc ép buộc
IT-FIT 2021 353
Các thao tác trên process
Kết thúc tiến trình

IT-FIT 2021 354


Các thao tác trên process
Kết thúc tiến trình
• Một số tình huống :
(1) Cha kết thúc -> tất cả các con kết thúc
(2) Cha kết thúc , nhưng con chưa kết thúc ->
orphan
(3) Con kết thúc, nhưng cha chưa kết thúc hoặc
chưa gọi hàm wait() -> zombie
(4)Con bị treo , cha chờ con kết thúc -> cả hai
còn trong hệ thống -> cần kết thúc ép buộc
IT-FIT 2021 355
Multiprocess Architecture
Chrome Browser
• Many web browsers ran as single process (some
still do)
– If one web site causes trouble, entire browser can hang
or crash
• Google Chrome Browser is multiprocess with 3
categories
– Browser process manages user interface, disk and
network I/O
– Renderer process renders web pages, deals with
HTML, Javascript, new one for each website opened
• Runs in sandbox restricting disk and network I/O, minimizing
effect of security exploits
– Plug-in process for each type of plug-in
IT-FIT 2021 356
https://blog.chromium.org/2008/09/multi-process-architecture.html
Multiprocess Architecture
Chrome Browser

IT-FIT 2021 357


Tham khảo
• Some of the Win32 calls for managing processes, threads, and fibers. (tham
khảo Tanenbaum , p.920)

IT-FIT 2021 358


Tham khảo
• Some system calls relating to processes (tham khảo
Tanenbaum , p.737)

IT-FIT 2021 359


Bài tập
• Chrome Browser có thiết kế multiprocess vì lý
do gì ?

IT-FIT 2021 360


Chương 7

Tiến trình (Process)


Phần 2: Các giải thuật về tiến trình
Multiprogramming và
multitasking
• Batch systems

• Đa chương (multiprogramming)

IT-FIT 2021 362


Multiprogramming và
multitasking
• Đa nhiệm (multitasking) hay time-sharing

Nhiều process “cùng được” xử lý


thông qua cơ chế chuyển đổi CPU
Thời gian mỗi lần chuyển đổi diễn ra
rất nhanh, đủ để thấy nhiều process
IT-FIT 2021 363
đang chạy đồng thời
Process Scheduler
• Trong hệ multiprogramming và multitasking,
bộ điều phối (scheduler) thực hiện chức năng
điều phối các tiến trình
– Chọn tiến trình được xử lý bởi CPU trong số các
tiến trình đang chờ được xử lý.
– Quản lý các hàng đợi read queue, I/O device
queues
– Chuyển ngữ cảnh

IT-FIT 2021 364


Điều phối được thực hiện khi
nào ?
• Bộ điều phối cần ra quyết định vào thời điểm :
– Khi một tiến trình kết thúc hay chuyển sang trạng
thái blocked (chờ I/O , … ) => chọn tiến trình nào
trong hàng đợi ready ?
– Một ngắt I/O xuất hiện từ một thiết bị I/O báo đã
hoàn tất
– Ngắt định kỳ xuất hiện từ bộ đếm thời gian

IT-FIT 2021 365


Điều phối được thực hiện khi
nào ?
Hàng đợi Ready và I/O waiting

• Hàng đợi Ready list : bao gồm các proccess ở trạng thái sẵn sàng tiếp nhận CPU
• Hàng đợi Waiting list : bao gồm nhiều hàng đợi - mỗi tài nguyên có một hàng
đợi riêng
IT-FIT 2021 366
Mục tiêu điều phối
• Mục tiêu điều phối:
– Công bằng
• Không có tiến trình nào phải chờ vô hạn
– Tối đa thời gian sử dụng CPU (efficiency)
– Thông lượng tối đa (throughput)
• tối đa số công việc được xử lý trong 1 đơn vị thời gian
– Cực tiểu thời gian hoàn thành (turnaround time)
• Là tổng thời gian chờ trong Ready List + thời gian thực thi CPU +
thời gian thực hiện I/O
– Cực tiểu thời gian chờ (waiting time) trong Ready List
– Cực tiểu thời gian đáp ứng (response time )
– Đảm bảo tính ưu tiên
– …
IT-FIT 2021 367
Nguyên tắc điều phối
• Nguyên tắc điều phối độc quyền và không độc
quyền
– Điều phối độc quyền (non-preemptive)
• Điều phối không can thiệp vào thời gian dùng CPU của
process (*)
• thích hợp với hệ xử lý theo lô
– Điều phối không độc quyền (preemptive)
• Điều phối có can thiệp vào thời gian dùng CPU của
process (*)
• thích hợp với hệ thống tương tác và real-time

IT-FIT 2021 368


Tổ chức điều phối
• Chuyển ngữ cảnh
– Khi CPU chuyển sang thực thi một proccess khác, hệ thống
phải lưu trạng thái của proccess hiện tại và nạp trạng thái
của proccess mới sẽ thực thi
– Ngữ cảnh của một proccess được biểu diễn trong khối
PCB của proccess đó
– Thời gian chuyển ngữ cảnh là 1 phí tổn

IT-FIT 2021 369


Khảo sát
các chiến lược điều phối
• FIFO hay FCFS (first come first server)
• Round Robin (phân phối xoay vòng)
• Điều phối với độ ưu tiên
• SJF (Shortest-job-first )
• Chiến lược điều phối với nhiều mức độ ưu tiên

IT-FIT 2021 370


Chiến lược FIFO
• Tiến trình vào Ready list trước => được cấp
CPU trước
• CPU được giải phóng chỉ khi
– tiến trình kết thúc xử lý
– khi có một yêu cầu nhập/xuất

IT-FIT 2021 371


Chiến lược FIFO

– Thứ tự cấp phát CPU

P1 P2 P3

0 24 27
30
– Thời gian chờ P1 =0 , P2 = 24-1 , P3 = 27 - 2
– Thời gian chờ trung bình : (0+23+25)/3 = 16 miliseconds

IT-FIT 2021 372


Chiến lược FIFO
• Nhận xét :
– Thời gian chờ trung bình :
• Phụ thuộc vào thời gian xử lý của các proccess
• phụ thuộc vào thứ tự của các process trong RL (*)

– Là giải thuật điều phối theo nguyên tắc độc quyền


=> Giải thuật không phù hợp với hệ time-sharing
=> Phù hợp với batch systems

IT-FIT 2021 373


Round Robin
( phân phối xoay vòng )

• Các process được xử lý xoay vòng


– một khoảng thời gian sử dụng CPU như nhau gọi
là time quantum (hay time slice)
– Hết thời gian quantum dành cho process, HDH thu
hồi CPU và cấp cho process kế tiếp trong RL.
Process được đưa trở lại vào RL chờ đến lượt .

IT-FIT 2021 374


Round Robin
( phân phối xoay vòng )

– Nếu quantum = 4 miliseconds


– Thứ tự cấp phát CPU

– Thời gian chờ P1 =0 , P2 = 3 , P3 = 5


– Thời gian chờ trung bình : (0+6+3+5)/3 = 4.66 miliseconds

IT-FIT 2021 375


Round Robin
( phân phối xoay vòng )
• CPU được giải phóng khi
– Hết thời gian quantum
– Tiến trình kết thúc
– Tiến trình bị khóa

• Nhận xét :
– Là giải thuật điều phối không độc quyền
– Thiết kế phù hợp với time-sharing systems và Interactive
systems
– Độ dài của quantum ntn cho hợp lý ?
• Turnaround time also depends on the size of the time quantum

IT-FIT 2021 376


Round Robin
Độ dài của quantum ntn cho hợp lý ?
q large  FIFO
q small  q must be large with respect to context switch, otherwise
overhead is too high

IT-FIT 2021 377


Điều phối với độ ưu tiên
• Mỗi tiến trình được gán một độ ưu tiên
– Độ ưu tiên do hệ điều hành qui định ( loại chương
trình, người sở hữu ,… )

• Tiến trình có độ ưu tiên cao hơn sẽ được dùng


CPU trước; Các tiến trình có độ ưu tiên bằng nhau
được sắp lịch theo FCFS

• Có thể thực hiện bằng Cơ chế độc quyền hay


không độc quyền

IT-FIT 2021 378


Điều phối với độ ưu tiên

IT-FIT 2021 379


Điều phối với độ ưu tiên

IT-FIT 2021 380


Điều phối với độ ưu tiên
• Nhận xét :
– Các tiến trình có độ ưu tiên thấp có thể phải chờ
CPU vô hạn !
=> Giải pháp ? Aging

IT-FIT 2021 381


Công việc ngắn nhất - SJF
(Shortest-job-first )

IT-FIT 2021 382


Công việc ngắn nhất - SJF
(Shortest-job-first )

IT-FIT 2021 383


Công việc ngắn nhất - SJF
(Shortest-job-first )

IT-FIT 2021 384


Công việc ngắn nhất - SJF
(Shortest-job-first )

IT-FIT 2021 385


Công việc ngắn nhất - SJF
(Shortest-job-first )

IT-FIT 2021 386


Công việc ngắn nhất - SJF
(Shortest-job-first )

IT-FIT 2021 387


Bài tập

IT-FIT 2021 388


Các giải thuật khác
• Multilevel Queue Scheduling
– Các process được phân loại và có queue riêng cho mỗi
nhóm và có Thuật toán lập lich cho mỗi queue
• foreground (interactive) : dùng RR
• background (batch) : dùng FCFS
– Bộ lập lịch thực hiện phân lịch theo
• Dựa trên độ ưu tiên của các process trong các queue : các
process thuộc nhóm foreground có độ ưu tiên cao hơn
background
• Dùng time slice – mỗi queue nhận cố định một lượng thời
gian dùng CPU . VD, 80% thời gian CPU dành cho các
process thuộc queue foreground .

IT-FIT 2021 389


Các bộ điều phối khác
• Multiple-Processor Scheduling
• Real-Time CPU Scheduling

Tham khảo : Silberschatz, p. 278

IT-FIT 2021 390


Operating-System Examples
Silberschatz, p.290
• Linux
• Windows

IT-FIT 2021 391


IT-FIT 2021 392
Tóm tắt
• Hệ multiprogramming và multitasking
• Bộ điều phối (scheduler)
– Chức năng
– Tổ chức điều phối
– Mục tiêu đặt ra cho chiến lược điều phối
– Nguyên tắc điều phối độc quyền và không độc
quyền
• Các chiến lược điều phối : FCFS,
RoundRobin, độ ưu tiên, SJF

IT-FIT 2021 393


Liên lạc giữa các tiến trình
Interprocess Communication (IPC)
• Các tiến trình trong hệ thống có thể độc lập
hay có hợp tác với nhau
• Các tiến trình hợp tác với nhau xuất phát từ
nhu cầu :
– Chia sẻ thông tin
– Tăng tốc độ tính toán
– Cấu trúc module của chương trình
• Khi hợp tác , các tiến trình cần giao tiếp với
nhau
IT-FIT 2021 394
Liên lạc giữa các tiến trình
• Do mỗi tiến trình sở hữu một không gian địa chỉ
riêng => HĐH phải cung cấp cơ chế liên lạc giữa
các tiến trình
• Các vấn đề nảy sinh trong liên lạc giữa các tiến
trình :
– Liên kết tường minh hay tiềm ẩn
– Liên lạc theo chế độ đồng bộ hay bất đồng bộ
– Liên lạc giữa các tiến trình trong 1 máy tính khác biệt
với liên lạc giữa các tiến trình giữa các máy tính khác
nhau

IT-FIT 2021 395


Các cơ chế liên lạc
• Signal
• Pipe
• Shared memory
• Message passing
• Socket

IT-FIT 2021 396


Interprocess Communication
• Tham khảo : Silberschatz, p 818
• Signals
– Signals can be sent from any process to any other
process, with restrictions on signals sent to
processes owned by another user
– informing a process that an event has occurred
– In Linux, signals have always been the main
mechanism for communicating asynchronous
events among processes

IT-FIT 2021 397


Interprocess Communication
• Signals
– Tín hiệu được sử dụng để thông báo cho 1/nhiều tiến trình
về một sự kiệnnào đó xảy ra. Nhận xét :
• Mang tính chất ko đồng bộ ( 1 tiến trình không biết trước thời điểm
nhận tín hiệu )
• Thông báo một biến cố - không trao đổi data
– Tín hiệu có thể phát ra bởi :
• Phần cứng ( vd lỗi do các phép tính số học )
• Kernel gửi đến tt (thông báo có một tbị I/O tự do )
• Một tt gửi đến một tt khác ( tt cha yêu cầu con kết thúc )
• Người dùng nhấn phím (ctrl-C để break tt)
– Xem danh sách các signal dùng kill –l
– Mỗi signal tương ứng với 1 sự kiện

IT-FIT 2021 398


Interprocess Communication
• Passing of Data among Processes
– Pipe
• unidirectional byte streams which connect the standard
output from one process into the standard input of
another process
• Ex. the shell which sets up these temporary pipes
between the processes.
ls | pr -l 20 -h test //linux
dir | sort /R //windows

IT-FIT 2021 399


Interprocess Communication
• Passing of Data among Processes
– shared memory
• fast way to communicate large or small amounts of data

IT-FIT 2021 400


Interprocess Communication
• Passing of Data among Processes
– Message passing
• Có thể dùng trong môi trường phân tán

IT-FIT 2021 401


Interprocess Communication
• Trong shared-memory = chia sẽ biến chung
(thường được tạo trong 1 process)
– người lập trình ứng dụng chịu trách nhiệm tạo, kiểm
soát … ,
– nhiệmvụ của OS chỉ là tạo vùng nhớ chung.

• Trong message passing : trao đổi messages ; OS


chịu trách nhiệm chính

• => OS có thể hỗ trợ cả 2 pp.


Tham khao : IPC share memory
(http://www.cs.cf.ac.uk/Dave/C/node27.html)
IT-FIT 2021 402
Chương 8

Bộ nhớ
(Memory)
Nội dung
• Tổng quan về hệ thống nhớ
• Bộ nhớ bán dẫn
• Bộ nhớ chính
• Bộ nhớ cache
• Bộ nhớ ngoài
• Bộ nhớ ảo

IT-FIT 2021 404


Tổng quan về hệ thống nhớ
• Các đặc trưng của hệ thống nhớ
– Vị trí
• Bên trong CPU:
– Tập thanh ghi
• Bộ nhớ trong:
– Bộ nhớ chính
– Bộ nhớ cache
• Bộ nhớ ngoài: các thiết bị lưu trữ
– Dung lượng
• Độ dài từ nhớ (tính bằng bit)
• Số lượng từ nhớ

IT-FIT 2021 405


Tổng quan về hệ thống nhớ
• Các đặc trưng của hệ thống nhớ (tiếp)
– Đơn vị truyền
• Từ nhớ (word)
• Khối nhớ (block)
– Phương pháp truy cập
• Truy cập tuần tự (băng từ)
• Truy cập trực tiếp (các loại đĩa)
• Truy cập ngẫu nhiên (bộ nhớ bán dẫn)
• Truy cập kết hợp (cache)

IT-FIT 2021 406


Tổng quan về hệ thống nhớ
• Các đặc trưng của hệ thống nhớ (tiếp)
– Hiệu năng (performance)
• Thời gian truy cập
• Tốc độ truyền
– Kiểu vật lý
• Bộ nhớ bán dẫn
• Bộ nhớ từ
• Bộ nhớ quang
– Các đặc tính vật lý
• Tự mất/ Không tự mất (volatile/ nonvolatile)
• Xoá được/ không xoá được

IT-FIT 2021 407


Tổng quan về hệ thống nhớ
• Phân cấp hệ thống nhớ

IT-FIT 2021 408


Tổng quan về hệ thống nhớ
• Độ tin cậy bộ nhớ
– Nguyên tắc chung: cần tạo ra và lưu trữ thêm thông tin dư
thừa.
• Từ dữ liệu cần ghi vào bộ nhớ: m bit
• Cần tạo ra và lưu trữ từ mã: k bit
• Lưu trữ (m+k) bit
– Phát hiện lỗi
• Kiểm tra chẵn/ lẻ (parity): Mỗi byte dữ liệu cần 1 bit kiểm tra
• Checksum
• CRC (Cyclic Redandancy Check)
– Phát hiện và sửa lỗi
• Dữ liệu được mã hoá bằng các bộ mã có khả năng sửa lỗi ECC
(Error Correction Code), ví dụ : Mã Hamming
• Mỗi byte hoặc block dữ liệu cần nhiều bit kiểm tra hơn

IT-FIT 2021 409


Tổng quan về hệ thống nhớ
• Độ tin cậy bộ nhớ (tiếp)

IT-FIT 2021 410


Bộ nhớ bán dẫn
• Phân loại
– ROM (Read Only Memory)
• Bộ nhớ chỉ đọc
• Không tự mất dữ liệu khi cắt nguồn điện
– RAM (Random Access Memory)
• Bộ nhớ đọc/ ghi
• Tự mất dữ liệu khi cắt nguồn điện
– Cache
• Bộ nhớ có tốc độ cao nhưng dung lượng thấp
• Trung gian giữa bộ nhớ chính và thanh ghi trong CPU
• Ngày nay thường được tích hợp sẵn trong CPU
IT-FIT 2021 411
Bộ nhớ bán dẫn
• ROM
– Thông tin được ghi khi sản xuất
– Không xoá/ sửa được nội dung khi sử dụng
– Ứng dụng:
• Thư viện các chương trình con
• Các chương trình điều khiển hệ thống nhập xuất cơ bản
BIOS (Basic Input Output System)
• Phần mềm kiểm tra khi bật máy POST (Power On Self Test)
• Phần mềm khởi động máy tính (OS loader)
• Vi chương trình

IT-FIT 2021 412


Bộ nhớ bán dẫn
• Phân loại ROM
– Mask ROM
• Thông tin được ghi khi sản xuất
• Không xoá/ sửa được nội dung
• Giá thành rất đắt
– PROM (Programmable ROM)
• Khi sản xuất chưa có nội dung (ROM trắng)
• Cần thiết bị chuyên dụng để ghi
• Cho phép ghi được một lần, gọi là OTP (One Time Programmable)
hoặc WORM (Write-Once-Read-Many)
– EPROM (Erasable PROM)
• Có thể xóa bằng tia cực tím UV (Ultra Violet)
• Cần thiết bị chuyên dụng để ghi
• Ghi/ xoá được nhiều lần

IT-FIT 2021 413


Bộ nhớ bán dẫn
• Phân loại ROM (tiếp)
– EEPROM (Electrically EPROM)
• Xóa bằng mạch điện, không cần tia UV → Không cần tháo
chip ROM ra khỏi máy tính
• Có thể ghi theo từng byte
• 2 chế độ điện áp:
– Điện áp cao : Ghi + Xoá
– Điện áp thấp : Chỉ đọc
– Flash memory (Bộ nhớ cực nhanh)
• EEPROM sản xuất bằng công nghệ NAND, tốc độ truy cập
nhanh, mật độ cao
• Xóa bằng mạch điện; Ghi theo từng block
• Ngày nay được sử dụng rộng rãi dưới dạng thẻ nhớ (CF,
SD,…) , thanh USB, ổ SSD (thay thế cho ổ đĩa cứng)
IT-FIT 2021 414
Bộ nhớ bán dẫn
• RAM
– Bộ nhớ đọc-ghi (Read/Write Memory)
– Có thể ghi/ xoá trong quá trình sử dụng → Làm bộ nhớ
chính trong máy tính
– Tự mất dữ liệu khi cắt nguồn điện. Chỉ lưu trữ thông
tin tạm thời khi chạy chương trình, khi kết thúc
chương trình cần lưu trữ dữ liệu ra bộ nhớ ngoài
– Có hai loại:
• SRAM (Static RAM): RAM tĩnh
• DRAM (Dynamic RAM): RAM động

IT-FIT 2021 415


Bộ nhớ bán dẫn
• SRAM
– Các bit được lưu trữ bằng các Flip-Flop
– Thông tin ổn định, không tự mất dữ liệu theo thời
gian
– Cấu trúc phức tạp
– Dung lượng chip nhỏ
– Tốc độ truy cập nhanh
– Đắt tiền
– Dùng làm bộ nhớ cache

IT-FIT 2021 416


Bộ nhớ bán dẫn
• DRAM
– Các bit được lưu trữ trên mạch tụ điện
– Tự mất dữ liệu theo thời gian → cần phải có mạch
làm tươi (refresh)
– 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

IT-FIT 2021 417


Bộ nhớ bán dẫn
• Phân loại DRAM theo cơ chế hoạt động
– FPM (Fast Page Mode)
• Truy cập theo từng trang bộ nhớ (cùng hàng khác cột)
– EDO (Enhanced Data Out)
• Khi xuất dữ liệu có thể đồng thời đọc địa chỉ của ô nhớ kế
tiếp
• Cho phép đọc nhanh gấp đôi so với RAM thường
– SDRAM (Synchronous DRAM)
• Đồng bộ với system clock → CPU không cần chu kỳ chờ
• Truyền dữ liệu theo block
– RDRAM (Rambus DRAM)
• Bộ nhớ tốc độ cao, truyền dữ liệu theo block
• Do công ty Rambus và Intel sản xuất để sử dụng cho CPU
Pentium 4 khi mới xuất hiện năm 2000
• Giá thành đắt nên ngày nay ít sử dụng
IT-FIT 2021 418
Bộ nhớ bán dẫn
• Phân loại DRAM theo cơ chế hoạt động (tiếp)
– DDR-SDRAM (Double Data Rate-SDRAM)
• Phiên bản cải tiến của SDRAM nhằm nâng cao tốc độ truy
cập nhưng có giá thành rẻ hơn RDRAM
• Gởi dữ liệu 2 lần trong 1 chu kỳ clock
– DDR2/ DDR3: Gởi dữ liệu 4 hoặc 8 lần trong 1 chu kỳ
clock

IT-FIT 2021 419


Bộ nhớ bán dẫn
• Phân loại DRAM theo hình thức đóng gói
– SIMM (Single Inline Memory Module)
– DIMM (Dual Inline Memory Module)
– RIMM (Rambus Inline Memory Module)
– SO-DIMM (Small Outline DIMM)
– SO-RIMM (Small Outline RIMM)

IT-FIT 2021 420


Bộ nhớ bán dẫn
• Tổ chức của chip nhớ
– Các đường địa chỉ: An-1 ÷ A0 → có 2n
từ nhớ
– Các đường dữ liệu: Dm-1 ÷ D0 → độ
dài từ nhớ = m bit
– Dung lượng chip nhớ = 2n * m bit
– Các đường điều khiển:
• Tín hiệu chọn chip CS (Chip Select)
• Tín hiệu điều khiển đọc OE (Output Enable)
• Tín hiệu điều khiển ghi WE (Write Enable)
• Các tín hiệu điều khiển thường tích cực với
mức 0

IT-FIT 2021 421


Bộ nhớ bán dẫn
• Tổ chức bộ nhớ 1 chiều và 2 chiều

IT-FIT 2021 422


Bộ nhớ bán dẫn
• Tổ chức bộ nhớ hai chiều
– Có n đường địa chỉ: n = n1 + n2
• 2n1 hàng,
• mỗi hàng có 2n2 từ nhớ,
– Có m đường dữ liệu:
• mỗi từ nhớ có độ dài m-bit.
– Dung lượng của chip nhớ:
• [2n1 x (2n2 x m)] bit = (2n1+n2 x m) bit = (2n x m) bit.
– Hoạt động giải mã địa chỉ:
• Bước 1: bộ giải mã hàng chọn 1 trong 2n1 hàng.
• Bước 2: bộ giải mã cột chọn 1 trong 2n2 từ nhớ (cột) của hàng
đã được chọn.

IT-FIT 2021 423


Bộ nhớ bán dẫn
• Tổ chức của DRAM
– Dùng n đường địa chỉ dồn
kênh → cho phép truyền 2n
bit địa chỉ
– Tín hiệu chọn địa chỉ hàng
RAS (Row Address Strobe)
– Tín hiệu chọn địa chỉ cột CAS
(Column Address Strobe)
– Dung lượng DRAM = 22n x m
bit

IT-FIT 2021 424


Bộ nhớ bán dẫn
• Thiết kế mô-đun nhớ bán dẫn
– Dung lượng chip nhớ 2n x m bit
– Cần thiết kế để tăng dung lượng:
• Thiết kế tăng độ dài từ nhớ
• Thiết kế tăng số lượng từ nhớ
• Thiết kế kết hợp: tăng cả độ dài và số lượng từ nhớ
– Qui tắc: ghép nối các chip nhớ song song (tăng độ
dài) hoặc nối tiếp bằng mạch giải mã (tăng số
lượng)

IT-FIT 2021 425


Bộ nhớ bán dẫn
• Tăng độ dài từ nhớ
– VD:
• Cho chip nhớ SRAM 4K x 4 bit
• Thiết kế mô-đun nhớ 4K x 8 bit
– Giải:
• Dung lượng chip nhớ = 212 x 4 bit
• chip nhớ có:
– 12 chân địa chỉ
– 4 chân dữ liệu
• mô-đun nhớ cần có:
– 12 chân địa chỉ
– 8 chân dữ liệu
– Tổng quát
• Cho chip nhớ 2n x m bit
• Thiết kế mô-đun nhớ 2n x (k.m) bit
• Dùng k chip nhớ
IT-FIT 2021 426
Bộ nhớ bán dẫn
• Ví dụ: Tăng độ dài từ nhớ

IT-FIT 2021 427


Bộ nhớ bán dẫn
• Tăng số lượng từ nhớ
– VD:
• Cho chip nhớ SRAM 4K x 8 bit
• Thiết kế mô-đun nhớ 8K x 8 bit
– Giải:
• Dung lượng chip nhớ = 212 x 8 bit
• Chip nhớ có:
– 12 chân địa chỉ
– 8 chân dữ liệu
• Dung lượng mô-đun nhớ = 213 x 8 bit
– 13 chân địa chỉ
– 8 chân dữ liệu

IT-FIT 2021 428


Bộ nhớ bán dẫn
• Ví dụ: Tăng số lượng từ nhớ

IT-FIT 2021 429


Bộ nhớ bán dẫn
• Bài tập
– Tăng số lượng từ gấp 4 lần:
• Cho chip nhớ SRAM 4K x 8 bit
• Thiết kế mô-đun nhớ 16K x 8 bit
• Gợi ý: Dùng mạch giải mã 2 → 4
– Tăng số lượng từ gấp 8 lần:
• Cho chip nhớ SRAM 4K x 8 bit
• Thiết kế mô-đun nhớ 32K x 8 bit
• Gợi ý: Dùng mạch giải mã 3 → 8
– 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

IT-FIT 2021 430


Bộ nhớ chính
• 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 ô nhớ được đánh địa chỉ trực tiếp bởi
CPU
– Dung lượng của bộ nhớ chính trên thực tế thường nhỏ
hơn không gian địa chỉ bộ nhớ mà CPU có thể quản lý.
– Việc quản lý logic bộ nhớ chính tuỳ thuộc vào hệ điều
hành → người lập trình chỉ sử dụng bộ nhớ logic.
IT-FIT 2021 431
Bộ nhớ chính
• Tổ chức bộ nhớ đan xen
(interleaved memory)
– Độ rộng của bus dữ liệu để
trao đổi với bộ nhớ: m = 8,
16, 32, 64,128 bit ...
– Các ô nhớ được tổ chức theo
byte → tổ chức bộ nhớ vật lý
khác nhau
– m=8 bit → một băng nhớ
tuyến tính

IT-FIT 2021 432


Bộ nhớ chính
• Tổ chức bộ nhớ đan xen (tiếp)
– m = 16 bit → hai băng nhớ đan xen

IT-FIT 2021 433


Bộ nhớ chính
• Tổ chức bộ nhớ đan xen (tiếp)
– m = 32 bit → bốn băng nhớ đan xen

IT-FIT 2021 434


Bộ nhớ chính
• Tổ chức bộ nhớ đan xen (tiếp)
– m = 64 bit → tám băng nhớ đan xen

IT-FIT 2021 435


Bộ nhớ cache
• Nguyên tắc chung của cache
– Nguyên lý cục bộ : Một chương trình thường sử
dụng 90% thời gian chỉ để thi hành 10% câu lệnh
– Cache được đặt giữa CPU và bộ nhớ chính nhằm
tăng tốc độ truy cập bộ nhớ của CPU
– 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

IT-FIT 2021 436


Bộ nhớ cache
• Thao tác trên bộ nhớ cache
– CPU yêu cầu nội dung của ô 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ó thực hiện 2 bước sau:
• Đọc Block chứa dữ liệu từ bộ nhớ chính vào cache
(chậm hơn)
• Chuyển dữ liệu từ cache vào CPU

IT-FIT 2021 437


Bộ nhớ cache
• Cấu trúc chung của cache
– Bộ nhớ chính có 2N byte
nhớ
• Bộ nhớ chính và cache được
chia thành các khối có kích
thước bằng nhau
• Bộ nhớ chính: B0, B1, B2, ... ,
Bp-1 (p Blocks)
• Bộ nhớ cache: L0, L1, L2, ... ,
Lm-1 (m Lines)
• Kích thước của Block =
8,16,32,64,128 byte

IT-FIT 2021 438


Bộ nhớ cache
• Cấu trúc chung của cache (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 cậ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)

IT-FIT 2021 439


Bộ nhớ cache
• Tổ chức bộ nhớ cache
– Kích thước cache
• Cache càng lớn càng hiệu quả nhưng đắt tiền
• Cần nhiều thời gian để giải mã và truy cập
– Kỹ thuật ánh xạ : Phương pháp xác định vị trí dữ liệu trong
cache
• Ánh xạ trực tiếp (Direct mapping)
• Ánh xạ kết hợp toàn phần (Fully associative mapping)
• Ánh xạ kết hợp theo bộ (Set associative mapping)
– Giải thuật thay thế
• Phương pháp chọn lựa vùng nhớ nào lưu trong cache để tăng hiệu
suất sử dụng cache
IT-FIT 2021 440
Bộ nhớ cache
• Ánh xạ trực tiếp
– Mỗi Block của bộ nhớ chính chỉ có thể được nạp vào một
Line của cache:
• B0 → L0
• B1 → L1 Cache line Main Memory blocks s
• ....
0 0, m, 2m, 3m…2s–m
• Bm-1 → Lm-1
1 1, m+1, 2m+1…2s–m+1
• Bm → L0
m–1 m–1, 2m–1, 3m–1…2s–1
• Bm+1 → L1
• ....

– Tổng quát
• Bj chỉ có thể nạp vào L(j mod m)
• m là số Line của cache.
IT-FIT 2021 441
Bộ nhớ cache
• Ánh xạ trực tiếp (tiếp)

IT-FIT 2021 442


IT-FIT 2021 443
Bộ nhớ cache
• Đặc điểm của ánh xạ trực tiếp
– Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba vùng:
• Vùng Word gồm W bit xác định một từ nhớ trong Block hay Line:
– 2W = kích thước của Block hay Line
• Vùng Line gồm L bit xác định một trong số các Line trong cache:
– 2L = số Line trong cache = m
• Vùng Tag gồm T bit:
– T = N - (W+L)
– Bộ so sánh đơn giản
– Giá thành rẻ
– Tỷ lệ cache hit thấp (vd: 2 block cùng map vào 1 line)

IT-FIT 2021 444


Bộ nhớ cache
• Ánh xạ kết hợp toàn phần
– 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 vùng:
• Vùng Word giống như trường hợp ánh xạ trực tiếp.
• Vùng Tag dùng để xác định Block của bộ nhớ chính.
– Tag xác định Block đang nằm ở Line đó
• Đặc điểm
– So sánh đồng thời Block nhớ với tất cả các Tag → mất
nhiều thời gian
– Tỷ lệ cache hit cao.
– Bộ so sánh phức tạp.
IT-FIT 2021 445
Bộ nhớ cache
• Ánh xạ kết hợp toàn phần (tiếp)

IT-FIT 2021 446


IT-FIT 2021 447
Bộ nhớ cache
• Ánh xạ kết hợp theo bộ
– Cache đươc chia thành các bộ (Set)
– Mỗi một Set chứa một số Line
– Ví dụ:
• 4 Line/Set → 4-way associative mapping
– Ánh xạ theo nguyên tắc sau:
• B0 → S0
• B1 → S1
• B2 → S2
• .......
IT-FIT 2021 448
Bộ nhớ cache
• Ánh xạ kết hợp theo bộ (tiếp)

IT-FIT 2021 449


IT-FIT 2021 450
Bộ nhớ cache
• Đặc điểm ánh xạ kết hợp theo bộ
– Kích thước Block = 2W Word
– Vùng Set có S bit dùng để xác định một trong số V
= 2S Set (dùng để xác định Set nào trong cache)
– Vùng Tag có T bit: T = N - (W+S) dùng để xác
định Line nào có trong Set
– Mỗi Block bộ nhớ có thể ánh xạ vào Line bất kỳ
trong 1 Set tương ứng
– Là phương pháp tổng hợp từ hai phương pháp trên
– Thông thường sử dụng 2, 4, 8, 16 Lines/Set
IT-FIT 2021 451
Bộ nhớ cache
• Ví dụ về ánh xạ địa chỉ
– 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:
• Direct mapping
• Fully associative mapping
• 4-way set associative mapping

IT-FIT 2021 452


Bộ nhớ cache
• Ví dụ: Direct mapping
– Bộ nhớ chính : 4GB = 232 byte → N = 32 bit
– Cache : 256 KB = 218 byte.
– Line : 32 byte = 25 byte → W = 5 bit
– Line trong cache : 218/ 25 = 213 Line → L = 13 bit
– T = 32 - (13 + 5) = 14 bit

IT-FIT 2021 453


Bộ nhớ cache
• Ví dụ: Fully associative mapping
– Bộ nhớ chính : 4GB = 232 byte → N = 32 bit
– Line : 32 byte = 25 byte → W = 5 bit
– Số bit của vùng Tag : T = 32 - 5 = 27 bit

IT-FIT 2021 454


Bộ nhớ cache
• Ví dụ: 4-way set associative mapping
– Bộ nhớ chính : 4GB = 232 byte → N = 32 bit
– Line : 32 byte = 25 byte → W = 5 bit
– Line trong cache = 218/ 25 = 213 Line
– Một Set có 4 Line = 22 Line
– Set trong cache = 213/ 22 = 211 Set → S = 11 bit
– Số bit của vùng Tag : T = 32 - (11 + 5) = 16 bit

IT-FIT 2021 455


Bộ nhớ cache
• Giải thuật thay thế cache
– Mục đích: Giải thuật thay thế dùng để xác định
Line nào trong cache sẽ được chọn để đưa dữ liệu
vào cache khi không còn chỗ trống
– Thường được cài đặt bằng phần cứng để tăng tốc
độ xử lý
– Đối với ánh xạ 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

IT-FIT 2021 456


Bộ nhớ cache
• Giải thuật thay thế với ánh xạ kết hợp
– 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 cậ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.
– Giải thuật tối ưu nhất: LRU
IT-FIT 2021 457
IT-FIT 2021 458
Lỗi trang và thay thế trang
• Truy suất đến một trang được đánh dấu bất hợp lệ
(invalid) sẽ làm phát sinh lỗi trang, hdh sẽ thực hiện :
1. Xác định vị trí trang muốn truy suất trên đĩa
2. Tìm một khung trang trống trong bộ nhớ chính
a. Nếu tìm thấy -> đến bước 3
b. Nếu ko còn khung trang trống -> sử dụng thuật toán thay
thể trang để chọn 1 nạn nhân
c. Ghi nội dung trang nạn nhân vào đĩa; cập nhật nội dung
bảng trang, bảng khung trang
3. Chuyển trang cần truy suất từ đĩa vào bộ nhớ chính;
cập nhật nội dung bảng trang, bảng khung trang
4. Tái kích hoạt tiến trình của người dùng
459
460
Các thuật toán thay thế trang
• Mục tiêu : chọn trang “nạn nhân” là trang mà sau
khi thay thế sẽ gây ra ít lỗi trang nhất
• Các thuật toán :
– FIFO
• Ghi nhận thời điểm trang vào bnc => trang ở lâu nhất được
chọn
– OPT (OPTimal)
• Thay thế trang sẽ lâu được sử dụng nhất trong tương lai =>
ko khả thi
– LRU (least recently used)
• Ghi nhận thời điểm cuối cùng trang được truy cập =>trang lâu
nhất chưa được truy suất là trang được chọn
461
Các thuật toán thay thế trang
• Bài tâp 4
Xét chuỗi truy xuất bộ nhớ sau:
1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 2, 3, 7, 6, 3
Giả sử bộ nhớ vật lí có 4 khung trang. Minh
họa kết quả trình thay thế trang với các thuật
toán thay thế sau:
a) FIFO b) OPT c) LRU

462
Các thuật toán thay thế trang
• FIFO : số lỗi trang 11
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3
* * * * * * * * * * *
 1 1 1 1 1  5 5 5 5  3 3 3
 2 2 2 2 2  6 6 6 6  7 7
 3 3 3 3 3  2 2 2 2  6
 4 4 4 4 4  1 1 1 1 1

- Sử dụng 4 khung trang


- Ban đầu cả 4 khung trang đều trống
- * : có lỗi trang
-  : trang được nạp từ đĩa vào bộ nhớ 463
Các thuật toán thay thế trang
• OPT : số lỗi trang 7

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3
* * * * * * *
 1 1 1 1 1 1 1 1 1 1 1  7 7
 2 2 2 2 2 2 2 2 2 2 2 2 2
 3 3 3 3 3 3 3 3 3 3 3 3
 4 4   6 6 6 6 6 6 6

464
Các thuật toán thay thế trang
• LRU : số lỗi trang 9
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3
* * * * * * * * *
 1 1 1 1 1 1 1 1 1 1 1 1  6
 2 2 2 2 2 2 2 2 2 2 2 2 2
 3 3 3  5 5 5 5  3 3 3
 4 4 4  6 6 6 6  7 7

465
Các thuật toán thay thế trang
• Đánh giá
– Số lỗi trang : FIFO > LRU > OPT
• Nhận xét :
– FIFO : dễ cài đặt
– OPT : Không khả thi
– LRU : cần hỗ trợ của phần cứng để lưu thông tin
về thời gian page được tham chiếu
• Ghi nhận nhãn thời gian
• Hoặc dùng stack
466
Các thuật toán thay thế trang
• Các thuật toán xấp xỉ LRU
(LRU-Approximation)
– Thuật toán với các bit reference phụ trợ
– Thuật toán “cơ hội thứ hai” (Clock or second-
chance)
– Thuật toán “cơ hội thứ hai” nâng cao (Not Recently
Used - NRU)
– Các thuật toán thống kê

Tham khảo :
http://blog.vnamct.com/2014/04/he-dieu-hanh-chuong-7-bo-nho-ao.html
467
Các thuật toán thay thế trang

468
Các thuật toán thay thế trang
• Bài tập 5
Xem xét chuỗi tham chiếu trang sau:
1,2,3,4,2,1,5,6,2,1,4,5,7,6,3,1
Bao nhiêu page_fault xuất hiện đối với giải thuật
thay page FIFO, OPT, LRU
(giả thuyết là được cấp 4 frame).

469
Tóm tắt
• Các mô hình tổ chức bộ nhớ
– Ưu/ nhược điểm
– Cách chuyển đổi địa chỉ logic sang địa chỉ vật lý
• Bộ nhớ ảo
– Khái niệm / ưu điểm
– Các thuật toán thay thế trang

470
Bộ nhớ cache
• Đặc điểm ghi dữ liệu ra cache
– Chỉ ghi vào 1 block trong cache khi nội dung trong
bộ nhớ chính thay đổi
– Nếu CPU ghi ra cache, ô nhớ tương ứng bị lạc hậu
(invalid) → cần update ra BN chính. Ngược lại,
nếu ghi vào BN chính, nội dung trong cache sẽ bị
invalid → cần update lại cache
– Trong hệ đa xử lý có nhiều CPU với cache riêng,
khi ghi vào 1 cache, các cache khác sẽ bị invalid

IT-FIT 2021 471


Bộ nhớ cache
• Phương pháp ghi dữ liệu khi cache hit
– Write-through:
• Ghi cả cache và cả bộ nhớ chính
• Tốc độ chậm
• Cho phép CPU khác hoặc IO truy cập dữ liệu đã ghi từ BN
– Write-back:
• Chỉ ghi ra cache
• Tốc độ nhanh
• CPU khác hoặc IO không đọc được dữ liệu mới trong BN
• Khi Block trong cache bị thay thế cần phải ghi Block này về bộ nhớ
chính

IT-FIT 2021 472


Bộ nhớ cache
• Cache tách biệt và cache đồng nhất
– Cache tách biệt (Split Cache): Tổ chức cache riêng
cho dữ liệu và cache riêng cho lệnh chương trình
• Tối ưu cho từng loại cache
• Hỗ trợ kiến trúc pipeline
• Phần cứng phức tạp
– Cache đồng nhất (Unified Cache): Sử dụng 1
cache chung cho cả dữ liệu lẫn lệnh chương trình
• Cân bằng về tỷ lệ cache hit
• Phần cứng đơn giản
IT-FIT 2021 473
Bộ nhớ cache
• Ví dụ: Hệ thống cache trong CPU Intel Pentium 4

IT-FIT 2021 474


Bộ nhớ cache
• Ví dụ: Hệ thống cache trong CPU Intel Core i7

IT-FIT 2021 475


Bộ nhớ ngoài
• Các kiểu bộ nhớ ngoài
– Trống từ (Drum): Ngày nay không còn sử dụng
– Băng từ (Tape): Chuyên dùng cho backup dữ liệu
– Đĩa từ: Đang sử dụng rộng rãi nhất
– Đĩa quang: Dùng để trao đổi dữ liệu giữa các máy tính và
phân phối phần mềm
– Flash Disk: Loại bộ nhớ bán dẫn gắn ngoài qua cổng USB,
nhỏ gọn và thuận tiện để trao đổi dữ liệu
– SSD (Solid State Disk): Cũng là bộ nhớ bán dẫn có dung
lượng lớn giao tiếp với máy tính tương tự ổ đĩa cứng, tốc
độ truy cập cao, ít tốn điện, không ồn, chống sốc tốt → rất
phùIT-FIT
hợp2021với máy xách tay. Nhược điểm giá thành đắt. 476
Bộ nhớ ngoài
• Đĩa từ
– Bao gồm đĩa mềm (floppy disk) và đĩa cứng (hard
disk)
– Các đặc tính đĩa từ
• Đầu từ cố định hay đầu từ di động
• Đĩa cố định hay thay đổi được (removable)
• Một mặt hay hai mặt
• Một tấm đĩa (đĩa mềm) hay nhiều tấm đĩa (đĩa cứng)
• Cơ chế đầu từ
– Tiếp xúc (đĩa mềm)
– Không tiếp xúc
IT-FIT 2021 477
Bộ nhớ ngoài
• Đĩa từ (tiếp)
– Đĩa mềm
• 8”, 5.25”, 3.5”
• Dung lượng nhỏ: chỉ tới 1.44MB
• Tốc độ chậm
• Hiện nay không sản xuất nữa
– Đĩa cứng
• Thường có nhiều tấm đĩa
• Đang sử dụng rộng rãi
• Dung lượng lớn (hiện nay có ổ 3TB – 2011)
• Tốc độ đọc/ghi nhanh
• Rẻ tiền
IT-FIT 2021 478
Bộ nhớ ngoài
• Cấu trúc vật lý đĩa cứng
– Mặt đĩa
– Track (cylinder)
– Sector

IT-FIT 2021 479


Bộ nhớ ngoài
• Cấu trúc vật lý đĩa cứng (tiếp)
• Track là các vòng tròn
đồng tâm
• Đơn vị đọc ghi: từng
sector (~ 512Byte), có thể
đọc ghi theo block nhiều
sector (cluster)
• Thời gian đọc ghi:
• Seek time
• Latency time
• Transfer time
• Đĩa quay với vận tốc góc
không đổi CAV (constant
angular velocity)
IT-FIT 2021 480
Bộ nhớ ngoài
• Cấu trúc vật lý đĩa cứng (tiếp)
– Longitudial recording: Ghi tuyến tính
– Perpendicular recording: Ghi trực giao
– Cluster: Một bộ gồm nhiều sector

IT-FIT 2021 481


Bộ nhớ ngoài
• Định dạng sector

IT-FIT 2021 482


Bộ nhớ ngoài
• Kỹ thuật RAID
– RAID: Redundant Array of Independent Disks
– Ghép nhiều ổ đĩa vật lý để truy cập như 1 ổ luận lý
• Tăng tốc độ truy cập (đọc ghi luân phiên và song song)
• Tăng độ an toàn dữ liệu khi đĩa hư hỏng (ghi dư thừa
hoặc ghi thêm thông tin ECC/parity)
• Tăng dung lượng tối đa của đơn vị lưu trữ (nhiều đĩa)
– Hiện có 7 loại thông dụng: RAID0 – RAID6

IT-FIT 2021 483


Bộ nhớ ngoài
• RAID 0, 1 và 2

IT-FIT 2021 484


Bộ nhớ ngoài
• RAID 3 và 4

IT-FIT 2021 485


Bộ nhớ ngoài
• RAID 5 và 6

IT-FIT 2021 486


Bộ nhớ ngoài
• Tóm tắt kỹ thuật RAID

IT-FIT 2021 487


Bộ nhớ ngoài
• Đĩa quang (optical disk)
– CD (compact disk)
• Khả năng đọc/ghi: CD-ROM, CD-R, CD-RW
• Đường kính: 12cm, 8cm
• Dung lượng: 700MB, 200MB
• Track: Ghi theo các vòng hướng tâm, tốc độ dài không đổi CLV
(constant linear velocity)
• Tốc độ đọc ghi: 1x – 52x (1x= ??)
• Chuẩn định dạng: ISO 9660, UDF (Universal Disk Format)

IT-FIT 2021 488


Bộ nhớ ngoài
• Đĩa quang (tiếp)
– DVD (Digital Versatile Disk): Loại đĩa dung lượng cao (so
với CD), xuất phát từ đĩa phim video (Digital Video Disk)
– Khả năng đọc ghi: DVD-ROM, DVD±R, DVD±RW,
DVD-RAM
– Số mặt/ số lớp: 1-2 mặt, 1-2 lớp/mặt
– Đường kính: 12cm, 8cm Sides Layers
Diameter Capacity
(cm) (GB)
– Tốc độ: 1x – 24x (1x=?) 1 1 8 1.46
1 2 8 2.66
– Đĩa DVD dung lượng cao 2 2 8 2.92
2 4 8 5.32
• HD-DVD (15-60GB)
1 1 12 4.7
• Blue ray (25-50GB) 1 2 12 8.54
2 2 12 9.4
IT-FIT 2021 2 4 12 17.08 489
Bộ nhớ ảo
• Bộ nhớ thật
– Không gian địa chỉ trong chương trình trùng với không gian địa chỉ
trong bộ nhớ. Cho phép người lập trình truy cập trực tiếp vào 1 ô nhớ
→ Khó bảo vệ bộ nhớ.
– Khi thi hành, hệ điều hành nạp toàn bộ chương trình vào bộ nhớ (nạp
trước) → bộ nhớ máy tính phải đủ lớn để chạy các CT lớn
– Chương trình được cấp phát 1 vùng nhớ có địa chỉ liên tục (cấp phát
liên tục). HĐH sẽ thu hồi vùng nhớ sau khi chương trình kết thúc
– Để thực hiện đa chương, HĐH cần chia BN ra nhiều vùng (partition),
mỗi vùng cấp phát cho 1 CT
– Khi bộ nhớ đầy
• HĐH không cấp tiếp, các CT phải chờ đến khi có 1 vùng nhớ trống
• HĐH cấp tiếp: Cần kỹ thuật tráo đổi (swapping) để ghi tạm vùng nhớ của 1 CT khác
ra BN ngoài, lấy chỗ trống cấp cho CT mới

IT-FIT 2021 490


Bộ nhớ ảo
• Bộ nhớ thật (tiếp)

IT-FIT 2021 491


Bộ nhớ ảo
• Bộ nhớ ảo (Virtual Memory)
– Không gian địa chỉ trong CT (địa chỉ ảo) được tách biệt với
không gian địa chỉ trong BN (địa chỉ thực) → CPU và
HĐH sẽ phối hợp để ánh xạ (mapping) địa chỉ ảo trong CT
thành địa chỉ thật trong BN
– Việc ánh xạ và quản lý BN ảo được thực hiện qua đơn vị
MMU (Memory Management Unit)

IT-FIT 2021 492


Bộ nhớ ảo
• Bộ nhớ ảo (tiếp)
– Khi thi hành, hệ điều hành chỉ nạp các phần cần thiết của
CT vào bộ nhớ (nạp theo yêu cầu), không cần nạp toàn bộ
CT → tránh lãng phí BN
– Các CT được cấp phát nhiều vùng nhớ có địa chỉ tách biệt
nhau (cấp phát không liên tục).
– Sử dụng kỹ thuật tráo đổi (swapping) để ghi tạm thời các
vùng nhớ chưa cần đến ra BN ngoài (swap-out) để lấy chỗ
trống nạp thông tin cần thiết vào BN (swap-in) khi cần đến
– BN ngoài thông dụng là đĩa cứng
– Có 2 kỹ thuật BN ảo:
• Kỹ thuật phân trang : Kích thước các vùng nhớ cố định
• Kỹ thuật phân đoạn : Kích thước các vùng nhớ thay đổi
IT-FIT 2021 493
Bộ nhớ ảo
• Kỹ thuật phân trang (paging)
– Không gian địa chỉ ảo trong CT được chia đều ra các trang ảo (virtual
page, gọi tắt là page) có kích thước bằng nhau, mỗi trang là 1 đơn vị
cấp phát BN của HĐH
– Không gian địa chỉ thật trong BN cũng được chia đều thành các khung
trang (page frame, gọi tắt là frame) có kích thước bằng 1 trang (thường
là 4KB)
– Khi có yêu cầu cấp phát BN, HĐH có thể nạp 1 trang theo yêu cầu vào
bất cứ frame nào trong BN thật
– Khi CT truy cập vào 1 trang chưa được cấp phát sẽ gây ra lỗi trang
(page fault) → HĐH phải xử lý bằng cách swapping với 1 trang khác
chưa cần sử dụng đến (chậm)
– HĐH cần 1 bảng quản lý để theo dõi trang nào đang được nạp vào
frame nào trong BN cho mỗi CT, gọi là bảng trang (page table)
IT-FIT 2021 494
Bộ nhớ ảo
• Kỹ thuật phân trang (tiếp)

IT-FIT 2021 495


Bộ nhớ ảo
• Ví dụ về BN phân trang
– BN ảo trong CT gồm 64KB
được chia ra 16 trang, mỗi
trang 4KB
– BN thực gồm 32KB được chia
ra 8 frame
– BN đang được cấp phát như
thể hiện trong bảng trang
Bài tập: Hãy tính địa chỉ
thật từ các địa chỉ ảo
• 10.000
• 20.000
• 30.000
IT-FIT 2021 496
Bộ nhớ ảo
• Kỹ thuật phân đoạn (segmentation)
– Quan điểm người lập trình về BN
• Chương trình bao gồm nhiều module
• Dữ liệu bao gồm nhiều array, chuỗi, …
• Khi truy cập sẽ căn cứ vào địa chỉ tương đối của module (lệnh thứ
mấy) hay array (phần tử thứ mấy)

IT-FIT 2021 497


Bộ nhớ ảo
• Kỹ thuật phân đoạn (tiếp)
– HĐH sẽ cấp phát BN theo từng đoạn (segment) có kích thước theo yêu
cầu lập trình, người lập trình truy cập BN theo offset trong từng
segment
– Địa chỉ ảo có dạng (segment, offset)
– Khi có yêu cầu cấp phát BN, HĐH có thể nạp 1 segment theo yêu cầu
vào vùng trống trong BN thật. Nếu không có vùng trống đủ lớn HĐH
cần dồn BN để tạo ra vùng trống đủ lớn.
– Khi CT truy cập vào 1 segment chưa được cấp phát sẽ gây ra lỗi
segment (segment fault) → HĐH phải xử lý bằng cách swapping với 1
hoặc vài segment khác chưa cần sử dụng đến (chậm)
– HĐH cần 1 bảng quản lý để theo dõi segment nào đang được nạp vào
vị trí nào trong BN cho mỗi CT, gọi là bảng segment (segment table)

IT-FIT 2021 498


Bộ nhớ ảo
• Ví dụ về BN phân đoạn

Ban đầu S1 swap-out S4 swap-out S3 swap-out Dồn bộ nhớ


S7 swap-in
IT-FIT 2021 S5 swap-in S6 swap-in 499
Bộ nhớ ảo
• Tổng quát việc truy cập bộ nhớ trong máy tính

IT-FIT 2021 500


Bộ nhớ ảo
• Ưu điểm BN ảo
– Cho phép CT lớn hơn BN vẫn chạy được
– Chỉ nạp phần CT nào cần đến vào BN → tiết kiệm BN
• Nhược điểm BN ảo
– Tăng phí tổn hệ thống (overhead): Tốn thời gian tính toán địa chỉ ảo
sang địa chỉ thật, tốn không gian BN chứa bảng trang/ segment
– Truy cập BN chậm hơn so với quản lý BN thực: Cần gấp đôi thời gian
truy cập BN. Khi có page/ segment fault việc truy cập BN biến thành
truy cập IO
• Cách khắc phục
– Cần phần cứng đặc biệt hỗ trợ HĐH để quản lý BN
– Cần giải thuật thay trang/ segment tối ưu

IT-FIT 2021 501


Bộ nhớ ảo
• Ví dụ: BN ảo trong CPU Intel Pentium 4
– Phân segment kết hợp phân trang 2 cấp
• Phân segment: Segment 16 bit, Offset: 32 bit.
• Phân trang: Địa chỉ tuyến tính 32 bit chia ra: Directory 10 bit, page 10 bit
và offset 12 bit (4KB/trang)

IT-FIT 2021 502


Câu hỏi

IT-FIT 2021 503


23/4/2021 504
Nội dung

• Khái niệm về tập tin (File)


• Các phương pháp truy nhập - Access
Methods
• Cấu trúc thư mục - Directory Structure
• Chia sẻ file - File Sharing
• Bảo vệ tập tin – File Protection
• Hiện thực hệ thống file - Implemention
File System
23/4/2021 505
Khái niệm tập tin

• Khái niệm:
− Tập tin là một đơn vị lưu trữ thông tin của bộ
nhớ ngoài với một tên xác định.
− Tập tin có thể lưu trữ chương trình hoặc dữ
liệu.
− Một tập tin là một chuỗi các bits, bytes, dòng
hay mẫu tin,..được định nghĩa bởi người tạo
ra nó.
− Cấu trúc của tập tin do chương trình hoặc hệ
điều hành quy định.
23/4/2021 506
Thuộc tính của tập tin

• Các thông tin liên quan đến tập tin gọi


là thuộc tính của tập tin, gồm:
− Tên tập tin (File name): dùng để phân biệt
các tập tin.
• Hệ điều hành UNIX: phân biệt chữ hoa và chữ
thường, tên tập tin có nhiều phân cách (vd:
Prog.c.Z)
• Hệ điều hành Windows: không phân biệt chữ hoa
và chữ thường và tên tập tin có 1 phân cách,
phần mở rộng để phân biệt loại tập tin.

23/4/2021 507
Thuộc tính của tập tin

− Định danh (identifier): là thẻ duy nhất, thường


là số, xác định tập tin trong hệ thống tập tin;
nó là tên mà người dùng không thể đọc
− Kiểu file (File type): thông tin này được yêu
cầu cho hệ thống hỗ trợ các kiểu tập tin khác
nhau.
− Vị trí (location): thông tin này là một con trỏ
chỉ vị trí tập tin trên thiết bị lưu trữ.
− Kích thước (size): kích thước của tập tin
(tính bằng byte, word hay khối).
23/4/2021 508
Thuộc tính của tập tin

− Ngày (date), Giờ (time), và định danh


người dùng (user identification): thông tin
này xác định ngày tạo, sửa đổi và truy cập
gần nhất.
− Bảo vệ tập tin (Protection): Dùng account
hoặc quyền đã cấp cho user hoặc group user
trên tập tin.
• Các quyền: Đọc, ghi, xoá, sửa, thực thi, …

23/4/2021 509
Thao tác với tập tin

• Hệ điều hành cung cấp lời gọi hệ thống


(system calls) để thực hiện các thao tác
xử lý file
− Tạo file: ghi một mục chứa thông tin của file
vào cấu trúc thư mục, và tìm khối trống cấp
cho file.
− Xoá file: tìm trong cấu trúc thư mục, giải
phóng tất cả khối đĩa mà file chiếm giữ, xoá
mục tương ứng trong cấu trúc thư mục.
23/4/2021 510
Thao tác với tập tin

− Mở file: trả về chỉ mục trong bảng open-file


• Khi truy xuất lần đầu tiên, thông tin của file được
đọc từ cấu trúc thư mục và lưu vào bảng open-
files.
• Nếu file chưa đóng, thì lần truy xuất sau sẽ lấy
thông tin từ bảng open-files.
− Đóng file: ghi mục tương ứng trong bảng
open-files vào cấu trúc thư mục và huỷ mục
này trong open-files
− Đọc file: tìm tên file trong cấu trúc thư mục,
đọc vào bộ nhớ, dùng read pointer ghi vị trí
cho lần đọc sau.
23/4/2021 511
Thao tác với tập tin

− Ghi file: Tìm tên file trong cấu trúc thư mục,
lấy được số hiệu khối nhớ đầu tiên cấp cho
file, ghi dữ liệu của file vào vị trí này. Dùng
write pointer để ghi nhận vi trí cho lần ghi sau.

23/4/2021 512
Kiểu tập tin (File type)

• Các hệ điều hành hỗ trợ các kiểu tập tin


sau:
− Tập tin thường: là tập tin văn bản hoặc tập tin
nhị phân.
− Thưmục: là những tập tin hệ thống dùng để
lưu giữ cấu trúc của hệ thống tập tin
− Tập tin có ký tự đặc biệt: liên quan đến
nhập/xuất thông qua các thiết bị nhập/xuất
tuần tự như màn hình, máy in,..
− Tập23/4/2021
tin khối: dùng đểtruy xuất trên thiết bị đĩa513
Cấu trúc tập tin

• Tập tin không cấu trúc: chuỗi các words, bytes


• Tập tin có cấu trúc bản ghi đơn giản
− Các dòng (lines)
− Độ dài cố định
− Độ dài thay đổi
• Tập tin có các cấu trúc phức tạp
− Văn bản có định dạng - formatted document
− Tập tin nạp có thể tái định vị - relocatable load
file
23/4/2021 514
Các phương pháp truy xuất

• Truy xuất tuần tự - Sequential Access:


− Truy xuất tuần tự qua các bản ghi từ đầu đến cuối file.
• Readnext(): đọc phần tiếp theo của tập tin và tự
động chuyển con trỏ tập tin để ghi vết vị trí
nhập/xuất.
• Writenext(): Ghi them vào cuối tập tin và di
chuyển đến vị trí cuối mới của tập tin
• Reset: Một tập tin có thể được thiết lập lại từ đầu.
− Một số HĐH cho phép nhảy tới hoặc lui n bản ghi.
− Các trình soạn thảo và trình biên dịch thường truy
nhập tệp theo phương pháp này.

23/4/2021 515
Các phương pháp truy xuất

• Truy xuất tuần tự - Sequential access


− Truy xuất tuần tự các bản ghi từ đầu đến cuối
file
• Readnext(): đọc phần tiếp theo của tập tin vá tự
động chuyển trỏ tập tin để ghi vết vị trí nhập/xuất
• Writenext(): ghi thêm vào cuối tập tin và di chuyển
trỏ đến vị trí cuối mới của tập tin
• Reset: một tập tin có thể thiết lập lại từ đầu
− Một số hệ thống cho phép nhảy lùi hoặc tới n
bản ghi.

23/4/2021 516
Các phương pháp truy xuất

• Truy xuất tuần tự - Sequential access


− Các trình soạn thảo và trình biên dịch thường
truy xuất file bằng phương pháp này.

23/4/2021 517
Các phương pháp truy xuất

• Truy xuất trực tiếp - Direct Access


− File được tạo từ các bản ghi có kích thước cố
định, Có thể truy xuất các bản ghi tại vị trí bất
kỳ, không cần theo thứ tự.
− Các CSDL thường được tổ chức theo phương
pháp này.
− Sử dụng các phương thức:
• Read(n)
• Write(n)
n là số bản ghi cần truy xuất, bắt đầu từ 0 hoặc 1
23/4/2021 518
Các phương pháp truy xuất

− Cách truy xuất file được định nghĩa khi tạo ra


file.
− Có thể truy xuất tuần tự trên một file truy xuất
trực tiếp bằng cách dùng biến cp xác định vị
trí hiện tại.

23/4/2021 519
Các phương pháp truy xuất

• Truy xuất dùng chỉ mục Index-relative


− File index chứa các con trỏ, trỏ tới các bản ghi
trong File relative
− Để truy xuất các bản ghi trong File relative
• Tìm index.
• Dùng con trỏ để truy xuất trực tiếp File relative để
tìm bản ghi.
− Hữu dụng khi tìm kiếm trong các File lớn vì số
lần thực hiện vào-ra ít

23/4/2021 520
Các phương pháp truy xuất

• Truy xuất dùng chỉ mục Index-relative


− Có thể có nhiều hơn một mức index: index-
index-relative

23/4/2021 521
Cấu trúc thư mục

• Để quản lý số lượng lớn các tập tin lưu


trên đĩa, cần phải tổ chức theo 2 bước:
− Chia đĩa thành một hay nhiều partition
• Partition: cấu trúc mức thấp, để chứa các tệp và thư mục,
được xem như một thiết bị lưu trữ riêng.
• Một số HĐH cho phép patition lớn hơn đĩa để nhóm các đĩa
vào một cấu trúc luận lý và cấu trúc tập tin.
− Mỗi partition có một device directory ghi thông tin về
tất cả các File trên Partition đó: tên file, vị trí, kích
thước, kiểu file…

23/4/2021 522
Cấu trúc thư mục

• Một tổ chức hệ thống file cơ bản

23/4/2021 523
Cấu trúc thư mục

• Thư mục:
− Được xem như một bảng các biểu tượng mà
trên đó tên file được chuyển thành các mục
thư mục của chính nó. Mỗi mục lưu thông tin
một file.

23/4/2021 524
Cấu trúc thư mục

• Thư mục:
− Hệ điều hành cung cấp các hàm gọi hệ thống
để thao tác trên thư mục tương tự như đối với
file
• Tìm kiếm 1 file
• Tạo 1 file
• Xóa 1 file
• Liệt kê danh sách file trong thư mục
• Đổi tên 1 file
• Truy xuất toàn bộ hệ thống file
23/4/2021 525
Cấu trúc thư mục

• Thư mục một cấp - Single-Level Directory

− Ưu:
• Dễ hiểu, dễ quản lý
• Kích thước nhỏ
− Nhược:
• Mỗi tập tin phải có tên duy nhất
• Không thể gom nhóm

23/4/2021 526
Cấu trúc thư mục

• Thư mục 2 cấp - Two-Level Directory


− Tạo thư mục riêng cho mỗi user (user file
Directory -UFD). Các UFDs có cấu trúc tương
tự, nhưng mỗi danh sách file chỉ của một user.
− Khi người dùng bắt đầu công việc hoặc đăng
nhập thì master file directory (MFD) sẽ được
tìm kiếm.
− MFD được lập chỉ mục bởi username hay
account.

23/4/2021 527
Cấu trúc thư mục

• Thư mục 2 cấp - Two-Level Directory

23/4/2021 528
Cấu trúc thư mục

• Thư mục 2 cấp - Two-Level Directory


− Để truy nhập 1 tệp ở thư mục khác, cần có
đường dẫn đầy đủ.
− Có thể có các tệp trùng tên cho các user khác
nhau
− Tìm kiếm hiệu quả hơn
− Không có khả năng gom nhóm

23/4/2021 529
Cấu trúc thư mục

• Cấu trúc thư mục dạng cây (Tree-


Structured Directories)
− Có một thư mục gốc (Root) và các thư mục
con.
− Thư mục con chứa tập tin hoặc thư mục con
khác
− Mỗi tập tin có một đường dẫn duy nhất.
• Đường dẫn tuyệt đối: bắt đầu từ thư mục gốc
• Đường dẫn tương đối: bắt đầu từ thư mục hiện
hành
− Có thể truy xuất đến file của user khác nếu
23/4/2021 530
Cấu trúc thư mục

• Cấu trúc thư mục dạng cây (Tree-


Structured Directories)

23/4/2021 531
Cấu trúc thư mục

• Cấu trúc thư mục dạng cây (Tree-


Structured Directories)
− Tìm kiếm hiệu quả
− Thuận tiện trong đặt tên
− Có khả năng gom nhóm

23/4/2021 532
Cấu trúc thư mục

• Cấu trúc thư mục dạng đồ thị không


chứa chu trình - Acyclic-Graph Directories
− Cho phép thư mục chia sẻ thư mục con và tập tin
− Tập tin chia sẻ: chỉ một tập tin thực sự tồn tại do
đó bất kỳ sự thay đổi được thực hiện bởi người
này lập tức nhìn thấy bởi người dùng khác.
− Khi làm việc nhóm, tất cả tập tin chia sẻ có thể
đặt vào một thư mục. Các UFD của tất cả thành
viên trong nhóm chứa thư mục của tập tin được
chia sẻ như một thư mục con.
23/4/2021 533
Cấu trúc thư mục

• Cấu trúc thư mục dạng đồ thị không


chứa chu trình - Acyclic-Graph
Directories
• Thích hợp trong
trường hợp
nhiều user làm
việc chung một
dự án

23/4/2021 534
Cấu trúc thư mục

• Cấu trúc thư mục dạng đồ thị tổng


quát -General Graph Directory.
− Đảm bảo không có chu trình trong đồ thị khi
tạo thêm liên kết. Có thể sử dụng giải thuật
tìm kiếm chu trình trong đồ thị.

23/4/2021 535
Cấu trúc thư mục

• Cấu trúc thư mục dạng đồ thị tổng


quát -General Graph Directory.

23/4/2021 536
Bản thư mục

• Khái niệm:
− Bảng thư mục có nhiều mục (directory entry),
mỗi mục chứa thông tin của file/thư mục
• Thông tin file: địa chỉ, thuộc tính, số I-node của
file.
− Mỗi đĩa có một bảng thư mục gốc cài đặt ở
phần đầu của đĩa và có thể có nhiều bảng thư
mục con.

23/4/2021 537
Chia sẻ tập tin - File Sharing

• Đa người dùng – Multiple users


− Tập tin được chia sẻ trên hệ thống đa người
dùng.
− Để cài đặt chia sẻ và bảo vệ, hệ thống cần
duy trì các thuộc tính:
• Người sở hữu (owner): có quyền thay đổi thuộc
tính, gán truy xuấ và các quyền điều khiển
• Nhóm (group) tập tin/thư mục: được dùng để
định nghĩa tập con các người dùng có thể chia sẻ
truy xuất tới tập tin.

23/4/2021 538
Chia sẻ tập tin - File Sharing

• Hệ thống tập tin từ xa– Remote File


Systems
− Trên các hệ thống phân tán (distributed
systems), các file có thể được chia sẻ qua
mạng (network).
− Network File System (NFS) là một phương
thức chia sẻ file phân tán (distributed file-
sharing method) phổ biến.
• Sử dụng trong mô hình client-server
• Các user ID phải phù hợp cả với client và server
để xác nhận quyền truy nhập file trên server.
23/4/2021 539
Bảo vệ - Protection

• Người tạo file hoặc sở hữu file cần có khả năng


giám sát:
− Thao tác nào đã được thực hiện
− User nào
• Các loại truy xuất có thể được kiểm soát
− Đọc - Read
− Ghi - Write
− Thực thi - Execute
− Chèn - Append
− Xoá - Delete
− Liệt kê - List

23/4/2021 540
Bảo vệ - Protection

• Chế độ truy xuất: Read, Write, Execute


• Ba lớp người dùng:

23/4/2021 541
Bảo vệ - Protection

− Yêu cầu người quản lý tạo một group G (có


tên duy nhất), rồi thêm các user vào group.
− Đối với các file (vd game) hoặc subdirectory,
xác định sự truy xuất tương tự như trên.

23/4/2021 542
Cài đặt hệ thống quản lý file

• Nội dung:
− Lưu trữ và truy xuất tập tin trên các thiết bị lưu
trữ phụ.
− Cấu trúc tập tin, cấp phát không gian đĩa và
phục hồi không gian trống để ghi lại vị trí dữ
liệu và để giao tiếp với các phần khác của hệ
điều hành tới thiết bị lưu trữ phụ.

23/4/2021 543
Cấu trúc hệ thống tập tin

• Đĩa cứng– Disk: gồm các thành phần


− Rãnh - Track: là các vòng tròn đồng tâm
− Cung - Sector: Mỗi track chia thành nhiều
cung bằng nhau gọi là cung (sector).
− Khối - Clustor: gồm một hoặc nhiều cung .Dữ
liệu được đọc/ghi theo đơn vị khối.
− Từ trụ - Cyclinder: gồm nhiều rãnh cùng bán
kính
− Phân vùng – Partition: gồm nhiều từ trụ
23/4/2021 544
Cấu trúc hệ thống file

• Hệ thống file được lưu


trữ thành nhiều lớp,
mỗi lớp dùng các đặc
điểm của lớp thấp hơn
để tạo các đặc điểm
mới cho việc sử dụng
bởi lớp cao hơn.

23/4/2021 545
Cấu trúc hệ thống file

• Cấu trúc các lớp:


− Điều khiển nhập/xuất (I/O control): là lớp
thấp nhất chứa các trình điều khiển thiết bị và
các bộ quản lý ngắt để chuyển thông tin giữa
bộ nhớ chính và hệ thống đĩa.
− Hệ thống tập tin cơ bản (basic file system):
phát ra các lệnh thông thường tới các trình
điều khiển thiết bị tương ứng để đọc và ghi
các khối vật lý trên đĩa.

23/4/2021 546
Cấu trúc hệ thống file

• Cấu trúc các lớp:


− Module tổ chức tập tin(file-organization
module) dịch các địa chỉ khối luận lý thành
các địa chỉ khối vật lý cho hệ thống tập tin cơ
bản để truyền.
• Module này cũng chứa bộ quản lý không gian
trống (free-space manager), ghi vết các khối địa
chỉ không được cấp phát.
− Hệ thống tập tin luận lý (logical file system)
quản lý thông tin siêu dữ liệu (metadata), gồm
tất cả cấu trúc hệ thống tập tin.
23/4/2021 547
Cấu trúc hệ thống file

• Cấu trúc các lớp:


• Hệ thống tập tin luận lý quản lý cấu trúc thư mục
để cung cấp cho module tổ chức tập tin những
thông tin yêu cầu.
• Nó duy trì cấu trúc tập tin bằng khối điều khiển tập
tin FCB.

23/4/2021 548
Cài đặt hệ thống tập tin

• Nhiều cấu trúc trên đĩa hoặc trong bộ nhớ


được dùng để hiện thực hệ thống file tuỳ
thuộc vào hệ điều hành và hệ thống file
nhưng vẫn theo nguyên tắc chung gồm
− Khối điều khiển khởi động(boot control block):
chứa thông tin khởi động một hệ điều hành.
− Khối điều khiển phân khu (partition control
block) chứa chi tiết về phân khu
• Số lượng khối trong phân khu
• Kích thước khối, bộ đếm khối

23/4/2021 549
Cài đặt hệ thống tập tin

• Một khối điều khiển tập tin tiêu biểu

23/4/2021 550
Cài đặt hệ thống tập tin

• Hệ điều hành UNIX xem thư mục như là


một tập tin với một trường kiểu để chỉ nó
là một thư mục hay tập tin.
• Windows NT cài đặt các lời gọi hệ thống
riêng cho tập tin và thư mục và xem các
thư mục như các thực thể tách rời từ các
tập tin.

23/4/2021 551
Cài đặt hệ thống tập tin

• Một tập tin được tạo, nó dùng cho


nhập/xuất.
− Trước hết, nó phải được mở. Hàm open()
truyền tên tập tin tới hệ thống tập tin.
− Khi một tập tin được mở, cấu trúc thư mục
được lưu vào bộ nhớ để tăng tốc độ các thao
tác thư mục.
− Khi tập tin được tìm thấy, FCB được chép vào
bảng tập tin đang mở của hệ thống trong bộ
nhớ.
23/4/2021 552
Cài đặt hệ thống tập tin

23/4/2021 553
Hệ thống tập tin ảo
Virtual File Systems - VFS

• Hệ thống tập tin ảo cung cấp kỹ thuật


hướng đối tượng trong hiện thực hệ thống
file.
• Sử dụng các phương pháp này cho phép
nhiều loại hệ thống tập tin khác nhau
được cài đặt trong cùng cấu trúc.
• Các cấu trúc dữ liệu và thủ tục được dùng
để cô lập chức năng lời gọi hệ thống cơ
bản từ các chi tiết cài đặt.
23/4/2021 554
Hệ thống tập tin ảo
Virtual File Systems

• Cài đặt hệ thống tập tin chứa ba tầng chính:


− Tầng 1: giao diện hệ thống tập tin dựa trên cơ sở
lời gọi open, read, write, close và các bộ mô tả
tập tin.
− Tầng 2: tầng hệ thống tập tin ảo - VFS, phục vụ
hai chức năng quan trọng:
• Tách biệt các thao tác hệ thống tập tin giống nhau
bằng cách định nghĩa một giao diện VFS rõ ràng.
• VFS dựa trên cấu trúc biểu diễn tập tin, được gọi là
vnode, chứa một bộ định danh bằng số cho tập tin
duy nhất qua mạng.

23/4/2021 555
Hệ thống tập tin ảo
Virtual File Systems

• Tính duy nhất qua mạng được yêu cầu để hỗ trợ


các hệ thống tập tin mạng.
− VFS có sự khác biệt các tập tin cục bộ với các
tập tin ởxa.
− VFS kích hoạt các thao tác đặc tả hệ thống
tập tin để quản lý các yêu cầu cục bộ dựa
theo các loại hệ thống tập tin và ngay cả các
lời gọi các thủ tục giao thức NFS cho các yêu
cầu ở xa.

23/4/2021 556
Hệ thống tập tin ảo
Virtual File Systems

• Dạng lưu đồ của hệ thống tập tin ảo

23/4/2021 557
Cài đặt thư mục

• Danh sách tuyến tính:


− Dùng một danh sách tuyến tính chứa tên tập
tin với con trỏ trỏ tới các khối dữ liệu.
− Một danh sách tuyến tính với các mục từ thư
mục yêu cầu tìm kiếm tuyến tính để xác định
một mục từ cụ thể.
− Bất lợi:
• Chứa các mục từ thư mục là tìm kiếm tuyến tính
để tìm một tập tin.

23/4/2021 558
Cài đặt thư mục

• Bảng băm - Hash Table:


− Bảng băm lấy một giá trị được tính từ tên tập
tin và trả về con trỏ chỉ tới tên tập tin trong
danh sách tuyến tính ➔giảm thời gian tìm
kiếm thư mục

23/4/2021 559
Các phương pháp cấp phát

• Cấp phát liên tục:


− Mỗi tập tin chiếm một tập các khối nhớ liền kề
nhau trên đĩa
− Cấp phát liên tục được định nghĩa bởi địa chỉ đĩa
và chiều dài (tính bằng đơn vị khối) của khối đầu
tiên.
− Nếu tập tin có n khối và bắt đầu tại khối b thì nó
chiếm các khối b, b+1, b+2,..,b+n-1.
− Mục từ thư mục cho mỗi tập tin hiển thị địa chỉ
của khối bắt đầu và chiều dài của vùng được cấp
phát cho tập tin này.
23/4/2021 560
Các phương pháp cấp phát

• Cấp phát liên tục:

23/4/2021 561
Các phương pháp cấp phát

• Cấp phát liên tục:


− Đơn giản: chỉ cần quản lý số hiệu khối bắt đầu và
tổng số block chiếm bởi tập tin.
− Truy cập nội dung tập tin nhanh chóng vì các block
nằm kề nhau.
− Gây lãng phí bộ nhớ. Có thể còn rất nhiều vùng nhớ
trống rời rạc nhưng mỗi vùng đều không đủ lưu trữ
trọn vẹn một file.
− Khó khăn khi tập tin mở rộng kích thước.

23/4/2021 562
Các phương pháp cấp phát

• Cấp phát không liên tục dùng danh sách


liên kết
− Mỗi tập tin là một danh sách các khối đĩa rời
rạc được liên kết.
− Thư mục chứa một con trỏ chỉ tới khối đầu
tiên và các khối cuối cùng của tập tin.
− Mỗi khối chứa một con trỏ chỉ tới khối kế tiếp.

23/4/2021 563
Các phương pháp cấp phát

• Nhận xét:
− Giảm lảng phí bộ
nhớ do phân
mãnh.
− Nhược điểm:
• Truy xuất ngẫu
nhiên chậm.
• Yêu cầu không
gian cho con trỏ

23/4/2021 564
Các phương pháp cấp phát

• Cấp phát không liên tục dùng bảng cấp phát


tập tin - (file allocation table-FAT).

23/4/2021 565
Các phương pháp cấp phát

• FAT:
− FAT có một mục từ cho mỗi khối đĩa và được lập
chỉ mục bởi khối đĩa.
− Mục từ thư mục chứa số khối của khối đầu tiên
trong tập tin.
− Mục từ bảng được lập chỉ mục bởi số khối đó,
sau đó chứa số khối của khối tiếp theo trong tập
tin. Chuỗi này tiếp tục cho đến khối cuối cùng.
− Các khối không được dùng được hiển thị bởi giá
trị bảng 0

23/4/2021 566
Các phương pháp cấp phát

• Ví dụ: file A: 4, 7, 2, 10, 12, file B: 6, 3, 11,


14 thư mục
Bảng
… (A, 4) … (B, 6) …

Bảng FAT

23/4/2021 567
Các phương pháp cấp phát

• Cấp phát không liên tục Dùng bảng chỉ


mục:
− Mỗi file có một bảng chỉ mục chứa tất cả số
hiệu khối của một file.
− Một mục trong bảng thư mục chứa số hiệu
khối của bảng chỉ mục của file.

23/4/2021 568
Các phương pháp cấp phát

23/4/2021 569
Các phương pháp cấp phát

• Ví dụ: đĩa cứng 32 GB, một khối 512 byte. Tính


kích thước của 1 bảng chỉ mục nếu muốn quản
lý file có kích thước lớn nhất 256KB.
• Giải:
− 32GB=25*210*210 KB=225KB=216 khối➔ có 216 địa
chỉ trên đĩa➔ Mỗi phần tử bảng chỉ mục cần 2byte
− File có kích thước 256KB =256*1024 byte =512
khối ➔ Bảng chỉ mục cần 512 phần tử➔ chiếm 2
khối

23/4/2021 570
Các phương pháp cấp phát

• Cấp phát không liên tục dùng bảng I-


node
− Mỗi file được quản lý bằng một I-node gồm 2
phần
• Phần 1: Lưu trữ thuộc tính file
• Phần 2: chứa 13 phần tử
– 10 phần tử đầu chứa 10 số hiệu khối đầu tiên của file
– Phần tử thứ 11: chứa số hiệu khối chứa bảng single
– Phần tử thứ 12: chứa số hiệu khối chứa bảng double
– Phần tử thứ 13: chứa số hiệu khối chứa bản triple

23/4/2021 571
Các phương pháp cấp phát

• Cấp phát không liên tục dùng bảng I-


node

23/4/2021 572
Các phương pháp cấp phát

• Phương pháp quản lý tổ chức đĩa bằng


I-node
− MBR (Master Boot Record): sector đầu tiên
chứa thông tin về đĩa
− Partition table: bảng phân vùng chứa thông
tin về mỗi phân vùng. Mỗi phân vùng gồm các
thành phần: Boot block, super block, free
space mgmt., I-node, root dir, file và directory

23/4/2021 573
Các phương pháp cấp phát

• Phương pháp quản lý tổ chức đĩa bằng


I-node

23/4/2021 574
Quản lý không gian trống

• Dùng danh sách liên


kết:
− Mỗi nút trong danh sách
liên kết là một khối chứa
một bảng gồm:
• Số hiệu của các khối trống
• Phần tử cuối của bảng lưu
số hiệu khối tiếp theo
trong danh sách

23/4/2021 575
Quản lý không gian trống

• Ví dụ: một đĩa 20MB, dùng khối có kích thước 1KB. Để


quan lý đĩa này, nếu đĩa hoàn toàn trống thì DSLK cần
bao nhiêu khối (Số nút tối đa của DSLK)
• Giải: 20MB=20*210 khối  215 khối➔ cần 16 bit=2byte
để lưu một số hiệu khối ➔ 1 khối=1024 byte lưu 511 số
hiệu khối trống.
• ➔ Để quản lý đĩa 20MB trống thì dslk cần 20*210/511 
40 khối
• Nhận xét: Tốn nhiều khối nhớ cho dslk nếu đĩa trống.

23/4/2021 576
Quản lý không gian trống

• Dùng dãy bit:


− Danh sách không gian trống được cài đặt như
một bản đồ bit, mỗi khối được biểu diễn bởi 1
bit
• Bit=1: khối trống
• Bit=0: khối được cấp phát
• Ví dụ: các khối trống của đĩa: 2, 3, 4, 5, 8,
9, 10, 11,12, 13, 17, 18, 25, 26, 27➔ bản
đồ bit:
• 001111001111110001100000011100000…
23/4/2021 577
An toàn hệ thống tập tin

• Quản lý khối bị hỏng


− Dùng phần mềm: dùng file chứa danh sách
các khối bị hỏng
− Dùng phần cứng: dùng một sector trên đĩa để
lưu danh sách các khối bị hỏng.
− Khi bộ kiểm soát đĩa thực hiện lần đầu tiên,
nó đọc danh sách các khối bị hỏng vào bộ
nhớ và không cho truy cập những khối hỏng.
• Sao lưu file (Backup)
23/4/2021 578
Chương 9

Hệ thống IO
(Input Output System)
Nội dung
• Tổng quan về hệ thống IO
• Điều khiển IO
• Nối ghép thiết bị ngoại vi
• Các thiết bị ngoại vi thông dụng

IT-FIT 2021 580


Tổng quan về hệ thống IO
• Giới thiệu chung
– Chức năng của hệ thống IO: Trao đổi thông tin giữa
máy tính với thế giới bên ngoài
– Các thao tác cơ bản:
• Nhập dữ liệu (Input)
• Xuất dữ liệu (Output)
– Các thành phần chính:
• Các thiết bị ngoại vi
• Các mô-đun IO (IO module)
– 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 IO để nối ghép các thiết
bị ngoại vi với CPU và bộ nhớ chính

IT-FIT 2021 581


Tổng quan về hệ thống IO
• Cấu trúc cơ bản của hệ thống IO

IT-FIT 2021 582


Tổng quan về hệ thống IO
• Các thiết bị ngoại vi
– Chức năng: chuyển đổi dữ liệu giữa bên trong và
bên ngoài máy tính
– Phân loại:
• Thiết bị ngoại vi giao tiếp người-máy (người đọc): Bàn
phím, Màn hình, Máy in,...
• Thiết bị ngoại vi giao tiếp máy-máy (máy đọc): Đĩa
cứng, CDROM, USB,…
• Thiết bị ngoại vi truyền thông: Modem, Network
Interface Card (NIC)

IT-FIT 2021 583


Tổng quan về hệ thống IO
• Tốc độ 1 số TBNV

IT-FIT 2021 584


Tổng quan về hệ thống IO
• Các thành phần của 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 và bên trong máy tính
– Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa mô-đun
IO và thiết bị ngoại vi
– Khối 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ừ mô-đun IO

IT-FIT 2021 585


Tổng quan về hệ thống IO
• Chức năng của mô-đun
IO:
– Điều khiển và định thời
– Trao đổi thông tin với
CPU hoặc bộ nhớ chính
– 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

IT-FIT 2021 586


Tổng quan về hệ thống IO
• Không gian địa chỉ của CPU
– Một số CPU quản lý duy nhất một không gian địa chỉ:
• Không gian địa chỉ bộ nhớ: 2M địa chỉ
– Một số CPU quản lý hai không gian địa chỉ tách biệt:
• Không gian địa chỉ bộ nhớ: 2M địa chỉ
• Không gian địa chỉ IO: 2I địa chỉ
• Có tín hiệu điều khiển phân biệt truy nhập không gian địa chỉ
• Tập lệnh có các lệnh IO chuyên dụng
– Ví dụ: CPU Intel Pentium 4
• Không gian địa chỉ bộ nhớ = 236 byte = 64GB
• Không gian địa chỉ IO = 216 byte = 64KB
• Lệnh IO chuyên dụng: IN, OUT
IT-FIT 2021 587
Tổng quan về hệ thống IO
• Các phương pháp địa chỉ hoá cổng IO
– IO riêng biệt (Isolated IO, IO mapped IO)
• Cổng IO được đánh địa chỉ theo không gian địa chỉ IO
• CPU trao đổi dữ liệu với cổng IO thông qua các lệnh IO
chuyên dụng (IN, OUT)
• Chỉ có thể thực hiện trên các hệ thống có quản lý không gian
địa chỉ IO riêng biệt
– IO theo bộ nhớ (Memory mapped IO)
• Cổng IO được đánh địa chỉ theo không gian địa chỉ bộ nhớ
• IO giống như đọc/ghi bộ nhớ
• CPU trao đổi dữ liệu với cổng IO thông 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

IT-FIT 2021 588


Tổng quan về hệ thống IO
• Ví dụ: So sánh 2 phương pháp IO

IT-FIT 2021 589


Điều khiển IO
• Các phương pháp điều khiển IO
– IO bằng chương trình (Programmed IO)
– IO điều khiển bằng ngắt (Interrupt Driven IO)
– Truy nhập bộ nhớ trực tiếp DMA (Direct Memory
Access)

IT-FIT 2021 590


Điều khiển IO

IT-FIT 2021 591


Điều khiển IO
• IO bằng chương trình
– Nguyên tắc chung: CPU điều khiển trực tiếp IO
bằng chương trình → cần phải lập trình IO.
– Với IO riêng biệt: sử dụng các lệnh IO chuyên
dụng (IN, OUT).
– Với IO theo bản đồ bộ nhớ: sử dụng các lệnh trao
đổi dữ liệu với bộ nhớ để trao đổi dữ liệu với cổng
IO.

IT-FIT 2021 592


Điều khiển IO
• Các tín hiệu điều khiển IO
– Tín hiệu điều khiển (Control): kích hoạt & khởi động
thiết bị ngoại vi
– Tín hiệu kiểm tra (Test): kiểm tra trạng thái của mô-
đun IO và thiết bị ngoại vi
– Tín hiệu điều khiển đọc (Read): yêu cầu môđun IO
nhận dữ liệu từ thiết bị ngoại vi và đưa vào thanh ghi
đệm dữ liệu, rồi CPU nhận dữ liệu đó
– Tín hiệu điều khiển ghi (Write): yêu cầu môđun IO 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

IT-FIT 2021 593


Điều khiển IO
• Hoạt động của IO bằng chương trình
– CPU yêu cầu thao tác IO
– Mô-đun IO thực hiện thao tác
– Mô-đun IO thiết lập các bit trạng thái
– CPU kiểm tra các bit trạng thái:
• Nếu chưa sẵn sàng thì quay lại kiểm tra
• Nếu sẵn sàng thì chuyển sang trao đổi dữ liệu với mô-đun IO
• Đặc điểm
– IO do ý muốn của người lập trình
– CPU trực tiếp điều khiển IO
– CPU đợi mô-đun IO → tiêu tốn thời gian của CPU

IT-FIT 2021 594


Điều khiển IO
• IO điều khiển bằng ngắt
– Sau khi gửi yêu cầu IO, CPU
không phải đợi trạng thái sẵn
sàng của mô-đun IO, CPU thực
hiện một chương trình nào đó
– Khi mô-đun IO sẵn sàng thì nó
phát tín hiệu ngắt CPU
– CPU thực hiện chương trình
con IO tương ứng để trao đổi
dữ liệu (trình xử lý ngắt)
– CPU trở lại tiếp tục thực hiện
chương trình đang bị ngắt
IT-FIT 2021 595
Điều khiển IO
• Hoạt động nhập dữ liệu: nhìn từ mô-đun IO
– Mô-đun IO nhận tín hiệu điều khiển đọc từ CPU
– Mô-đun IO nhận dữ liệu từ thiết bị ngoại vi, trong
khi đó CPU làm việc khác
– Khi đã có dữ liệu → mô-đun IO phát tín hiệu ngắt
CPU
– CPU yêu cầu dữ liệu
– Mô-đun IO chuyển dữ liệu đến CPU

IT-FIT 2021 596


Điều khiển IO
• Hoạt động nhập dữ liệu: nhìn từ CPU
– Phát tín hiệu điều khiển đọc
– Làm việc khác
– Cuối mỗi chu trình lệnh, kiểm tra tín hiệu ngắt
– Nếu bị ngắt:
• Cất ngữ cảnh (nội dung các thanh ghi)
• Thực hiện chương trình con ngắt để nhập dữ liệu
• Khôi phục ngữ cảnh của chương trình đang thực hiện

IT-FIT 2021 597


Điều khiển IO
• Các vấn đề nảy sinh khi có ngắt:
– Xác định được mô-đun IO nào phát tín hiệu ngắt ?
– Có nhiều yêu cầu ngắt cùng xảy ra ?
• Các phương pháp nối ghép ngắt
– 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 lập trình được PIC
(Programmable Interrupt Controller)

IT-FIT 2021 598


Điều khiển IO
• Nhiều đường yêu cầu ngắt
– Mỗi mô-đun IO được nối với một đường yêu cầu ngắt
– CPU phải có nhiều đường tín hiệu yêu cầu ngắt
– Hạn chế số lượng mô-đun IO
– Các đường ngắt được qui định mức ưu tiên

IT-FIT 2021 599


Điều khiển IO
• Hỏi vòng bằng phần mềm
– CPU thực hiện phần mềm hỏi lần lượt từng mô-
đun IO
– Chậm
– Thứ tự các mô-đun được hỏi vòng chính là thứ tự
ưu tiên

IT-FIT 2021 600


Điều khiển IO
• Hỏi vòng bằng phần cứng
– CPU phát tín hiệu chấp nhận ngắt (INTA) đến mô-đun IO
đầu tiên
– Nếu mô-đun IO đó không gây ra ngắt thì nó gửi tín hiệu
đến mô-đun kế tiếp cho đến khi xác định được mô-đun gây
ngắt
– Thứ tự các mô-đun IO kết nối trong chuỗi xác định thứ tự
ưu tiên

IT-FIT 2021 601


Điều khiển IO
• Bộ điều khiển ngắt lập trình được PIC
– PIC có nhiều đường vào yêu cầu ngắt có qui định
mức ưu tiên
– PIC chọn một yêu cầu ngắt không bị cấm có mức
ưu tiên cao nhất gửi tới CPU

IT-FIT 2021 602


Điều khiển IO
• Đặc điểm của IO điều khiển 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 IO
– CPU không phải đợi mô-đun IO → hiệu quả sử
dụng CPU tốt hơn

IT-FIT 2021 603


• Ví dụ: Hệ thống ngắt
trên máy PC
– CPU Intel x86 có 1
chân tín hiệu ngắt
– PIC 8259A có 8
đường ngắt
– Có thể đấu nối nhiều
PIC theo chế độ
master/ slaver để
tăng số lượng đường
ngắt phục vụ cho
nhiều thiết bị
IT-FIT 2021 604
Điều khiển IO
• DMA (Direct Memory Access)
– IO bằng chương trình và bằng ngắt do CPU trực
tiếp điều khiển:
• Chiếm thời gian của CPU
• Tốc độ truyền bị hạn chế vì phải chuyển dữ liệu qua
CPU (thanh ghi có dung lượng nhỏ)
– Để khắc phục dùng DMA
• Thêm mô-đun phần cứng trên bus → DMAC (DMA
Controller)
• DMAC điều khiển trao đổi dữ liệu giữa môđun IO với
bộ nhớ chính

IT-FIT 2021 605


Điều khiển IO
• Sơ đồ cấu trúc của
DMAC
– Thanh ghi dữ liệu: chứa
dữ liệu trao đổi
– Thanh ghi địa chỉ: chứa
địa chỉ ô nhớ dữ liệu
– Bộ đếm dữ liệu: chứa số
từ dữ liệu cần trao đổi
– Logic điều khiển: điều
khiển hoạt động của
DMAC

IT-FIT 2021 606


Điều khiển IO
• Hoạt động DMA
– CPU gửi tín hiệu cho DMAC
• Vào hay Ra dữ liệu
• Địa chỉ thiết bị IO (cổng IO tương ứng)
• Địa chỉ đầu của mảng nhớ chứa dữ liệu → nạp vào thanh ghi địa
chỉ
• Số từ dữ liệu cần truyền → nạp vào bộ đếm dữ liệu
– CPU làm việc khác
– DMAC điều khiển trao đổi dữ liệu
– Sau khi truyền được một từ dữ liệu thì:
• nội dung thanh ghi địa chỉ tăng
• nội dung bộ đếm dữ liệu giảm
– Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt CPU để
báo kết thúc DMA
IT-FIT 2021 607
Điều khiển IO
• Các kiểu thực hiện DMA
– 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 lén 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.
– DMA trong suốt (Transparent DMA): DMAC nhận
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.

IT-FIT 2021 608


Điều khiển IO
• Cấu hình DMA 1: Bus chung, DMA tách biệt
– Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus
hai lần
• Giữa mô-đun IO với DMAC
• Giữa DMAC với bộ nhớ
– CPU bị treo khỏi bus 2 lần

IT-FIT 2021 609


Điều khiển IO
• Cấu hình DMA 2: Bus chung, DMA tích hợp
– DMAC điều khiển một hoặc vài mô-đun IO
– Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus
một lần
• Giữa DMAC với bộ nhớ
– CPU bị treo khỏi bus 1 lần

IT-FIT 2021 610


Điều khiển IO
• Cấu hình DMA 3: Bus IO riêng
– Bus IO tách rời hỗ trợ tất cả các thiết bị cho phép
DMA
– Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một
lần
• Giữa DMAC với bộ nhớ
– CPU bị treo khỏi bus 1 lần

IT-FIT 2021 611


Điều khiển IO
• Đặ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ộ nhớ chính
với mô-đun IO (hoàn toàn bằng phần cứng) → tốc độ
nhanh
– Phù hợp với các yêu cầu trao đổi mảng dữ liệu có kích
thước lớn (Block devices)
• Phân loại TBNV
– Character devices
– Block devices

IT-FIT 2021 612


Điều khiển IO
• Ví dụ: Chip DMA trong máy PC
– Intel 8237A DMA Controller
– Giao tiếp với CPU Intel x86 và DRAM
– Khi DMA cần bus, nó gửi tín hiệu HRQ cho CPU
– CPU trả lời bằng tín hiệu HLDA
– DMA bắt đầu sử dụng bus

IT-FIT 2021 613


Điều khiển IO
• Kênh IO (IO channel)
– Việc điều khiển IO được thực hiện bởi một bộ xử
lý IO chuyên dụng
– Bộ xử lý IO hoạt động theo chương trình của riêng

– Chương trình của bộ xử lý IO có thể nằm trong bộ
nhớ chính hoặc nằm trong một bộ nhớ riêng
– Hoạt động theo kiến trúc đa xử lý
• CPU gửi yêu cầu IO cho kênh IO
• Kênh IO tự thực hiện việc truyền dữ liệu

IT-FIT 2021 614


Nối ghép thiết bị ngoại vi
• Các kiểu nối ghép
– Nối ghép song song (parallel)
– Nối ghép nối tiếp (serial)
• Nối ghép song song
– Truyền nhiều bit song song
– Cần nhiều đường truyền dữ
liệu
– Tốc độ nhanh
– Dễ bị nhiễu giữa các tín hiệu

IT-FIT 2021 615


Nối ghép thiết bị ngoại vi
• Nối ghép nối tiếp
– Truyền lần lượt từng bit
– 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
– Cần ít đường truyền dữ
liệu
– Tốc độ chậm hơn

IT-FIT 2021 616


Nối ghép thiết bị ngoại vi
• Các cấu hình nối ghép
– Điểm tới điểm (Point to Point)
• Mỗi cổng IO nối ghép với một thiết bị ngoại vi
• Ví dụ:
– SATA (Serial ATA)
– SAS (Serial Atache SCSI)
– Điểm tới đa điểm (Point to Multipoint)
• Mỗi cổng IO cho phép nối ghép 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ị
IT-FIT 2021 617
Nối ghép thiết bị ngoại vi
• Ví dụ: Các cổng nối ghép ngoại vi trên PC
– PS/2: nối ghép bàn phím và chuột – MiniDIN 6 chân
– RJ45: nối ghép mạng
– LPT (Line Printer): nối ghép với máy in, là cổng song
song (Parallel Port) – 25 chân
– COM (Communication): nối ghép với Modem, là cổng
nối tiếp (Serial Port) - 9 hoặc 25 chân
– 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ị

IT-FIT 2021 618


Nối ghép thiết bị ngoại vi
• Ví dụ: Các cổng nối ghép trên card màn hình
– VGA: Cổng nối ghép màn hình Analog– 15 chân
– DVI: Cổng nối ghép màn hình Digital
– S-Video
– HDMI

IT-FIT 2021 619


Nối ghép thiết bị ngoại vi
• Ví dụ: Hệ thống bus ngoại vi trên máy PC

IT-FIT 2021 620


Nối ghép thiết bị ngoại vi
• Hệ thống bus ngoại vi trên máy PC (tiếp)
– ISA (Industry Standard Architecture): Sử dụng trên
máy PC 8086 (8 bit) và AT 80286 (16 bit)
– MCA (Micro Channel Architecture): Sử dụng trên
máy 80386 của IBM (32 bit)
– EISA (Extended ISA) Sử dụng trên các máy 80386
tương thích (32 bit)
– VL bus (VESA Local bus): Sử dụng trên các máy
80486 (32 bit)

IT-FIT 2021 621


Nối ghép thiết bị ngoại vi
• Hệ thống bus ngoại vi trên máy PC (tiếp)
– AGP (Accelerated Graphics Port): Bus dành riêng
cho card màn hình trên máy Pentium. Bao gồm các
mức tốc độ 1x, 2x, 4x và 8x (1x=266MB/s).
– PCI (Peripheral Component Interconnect): Sử
dụng trên các máy Pentium (32 & 64 bit)
• PCI-X: Sử dụng tần số xung nhịp cao hơn (66-133
MHz) so với PCI 33 MHz
• PCI-E (PCI-Express): Cho phép truyền dữ liệu tốc độ
cao, được sử dụng trong các máy PC đời mới. Gồm
nhiều mức tốc độ: 1x, 2x, …, 32x (1x: 1 Lane có 4
đường truyền nối tiếp 250 MB/s)
IT-FIT 2021 622
Nối ghép thiết bị ngoại vi
• Các cổng điều khiển đĩa
– Đĩa mềm : Dùng cáp 34 chân kết nối tối đa 2 ổ
mềm
– Đĩa cứng/CD/DVD/SSD :
• Chuẩn ST506
• Chuẩn ESDI
• Chuẩn IDE/UDMA/PATA
• Chuẩn SCSI
• Chuẩn SATA
• Chuẩn SAS
IT-FIT 2021 623
Các thiết bị ngoại vi thông dụng
• Thiết bị nhập
– Bàn phím, chuột, scanner, digitizer, micro, đọc vân
tay, đọc bar-code, camera, …
• Thiết bị xuất
– Màn hình, máy in, máy vẽ, loa, projector, …
• Thiết bị mạng & truyền thông
– Modem, Router,…
• Thiết bị lưu trữ
– Đĩa mềm, đĩa cứng, SSD, CD, DVD, thẻ nhớ, …
IT-FIT 2021 624
Câu hỏi

IT-FIT 2021 625

You might also like