lOMoARcPSD| 58886076
Thực hành 6 điểm -2c
PHẦN VẤN ĐÁP (4đ)
1.Mô tả vai trò của bộ điều khiển vào/ra (I/O controller) trong
hệ thống máy tính và cách nó quản lý các thiết bị ngoại vi.
Bộ điều khiển vào/ra (I/O controller) trong hệ thống máy tính là một thành
phần quan trọng giúp quản lý và điều phối quá trình trao đổi dữ liệu giữa bộ xử lý
(CPU) và các thiết bị ngoại vi như bàn phím, chuột, màn hình, ổ đĩa cứng, máy in,
v.v. Bộ điều khiển này đóng vai trò trung gian giữa các thiết bị ngoại vi và hệ thống
máy tính, đảm bảo rằng các tín hiệu và dữ liệu có thể được truyền tải đúng đắn và
hiệu quả.
Vai trò của Bộ Điều Khiển I/O:
1. Quản lý và Điều khiển Truyền Dữ liệu: Bộ điều khiển I/O giúp quản
lý quá trình truyền dữ liệu giữa CPU và các thiết bị ngoại vi. Nó xác định cách
thức và thứ tự các hoạt động đọc/ghi dữ liệu, đảm bảo dữ liệu được truyền tải
chính xác và hiệu quả.
2. Chuyển đổi Tín hiệu: Các thiết bị ngoại vi thường sử dụng các giao
tiếp và chuẩn tín hiệu khác nhau với bộ xử lý. Bộ điều khiển I/O có nhiệm vụ
chuyển đổi các tín hiệu này sao cho phù hợp với hệ thống máy tính, ví dụ chuyển
đổi tín hiệu song song thành tín hiệu nối tiếp hoặc ngược lại.
3. Cung cấp Địa chỉ và Điều khiển Bộ nhớ: Bộ điều khiển I/O quản lý
các địa chỉ bộ nhớ mà các thiết bị ngoại vi sử dụng để trao đổi dữ liệu. Nó giúp xác
định vị trí bộ nhớ mà dữ liệu cần được đọc vào hoặc ghi ra.
4. Giảm tải cho CPU: Một số bộ điều khiển I/O có khả năng tự động
thực hiện một số thao tác nhất định mà không cần sự can thip của CPU, chẳng
hạn như chuyển đổi dữ liệu hoặc đồng bộ hóa các thiết bị. Điều này giúp giảm tải
công việc cho CPU và tăng hiệu suất tổng thể của hệ thống.
Cách Bộ Điều Khiển I/O Quản lý Các Thiết Bị Ngoại Vi:
1. Giao Tiếp với CPU và Bộ Nhớ: Bộ điều khiển I/O thường giao tiếp
với CPU qua các bus vào/ra (I/O bus) và có thể sử dụng các phương thức như chờ
đợi ngắt (interrupts) hoặc kiểm tra liên tục (polling) để tương tác với các thiết bị
ngoại vi. Khi một thiết bị ngoại vi cần giao tiếp với hệ thống, nó có thể gửi tín hiệu
ngắt tới CPU, thông báo rằng có dữ liệu cần xử lý.
lOMoARcPSD| 58886076
2. Phân bổ và Quản lý Cổng I/O: Các thiết bị ngoại vi được kết nối với
các cổng I/O (ví dụ cổng USB, cổng mạng). Bộ điều khiển I/O quản lý các cổng
này, xác định thiết bị nào đang kết nối và đảm bảo các cổng hoạt động đúng chức
năng.
3. Cập nhật và Xử lý Dữ liệu: Khi có yêu cầu đọc hoặc ghi dữ liệu từ
các thiết bị ngoại vi, bộ điều khiển I/O sẽ xử lý yêu cầu này. Ví dụ, khi người dùng
nhấn một phím trên bàn phím, bộ điều khiển sẽ nhận tín hiệu từ bàn phím và
chuyển nó đến bộ xử lý để xử lý.
4. Quản lý Ngắt (Interrupts): Bộ điều khiển I/O sử dụng cơ chế ngắt
để thông báo cho CPU khi một thiết bị ngoại vi đã sẵn sàng để trao đổi dữ liệu. Khi
một thiết bị yêu cầu sự chú ý của CPU, bộ điều khiển I/O sẽ tạo ra một tín hiệu
ngắt, yêu cầu CPU tạm dừng công việc hiện tại để xử lý yêu cầu từ thiết bị ngoại
vi.
5. Quản lý Dòng Dữ Liệu và Đồng Bộ: Bộ điều khiển I/O có thể đồng
bộ hóa và quản lý dòng dữ liệu giữa các thiết bị ngoại vi và bộ xử lý, đảm bảo
không xảy ra tình trạng trùng lặp hoặc mất mát dữ liệu trong quá trình truyền tải.
2.Giải thích cơ chế interrupt-driven I/O và so sánh với Polling
I/O. Nêu ưu nhược điểm của từng phương pháp.
Interrupt-Driven I/O (I/O điều khiển qua ngắt): Trong cơ chế
interruptdriven I/O, khi một thiết bị ngoại vi cần giao tiếp với bộ xử lý (CPU), nó
sẽ gửi một tín hiệu ngắt (interrupt) tới CPU. Khi CPU nhận được tín hiệu ngắt này,
nó tạm dừng thực hiện các tác vụ hiện tại và chuyển sang xử lý ngắt. Sau khi xử lý
xong ngắt, CPU sẽ quay lại công việc ban đầu. Quá trình này giúp CPU không phải
kiểm tra liên tục các thiết bị ngoại vi, chỉ cần phản ứng khi có yêu cầu từ chúng.
Polling I/O (I/O kiểm tra liên tục): Trong cơ chế polling, CPU liên tục
kiểm tra trạng thái của các thiết bị ngoại vi trong một chu trình lặp. Mỗi lần kiểm
tra, CPU sẽ xem liệu thiết bị có yêu cầu dữ liệu hay không. Nếu có, CPU sẽ thực
hiện giao tiếp với thiết bị; nếu không, CPU tiếp tục kiểm tra thiết bị khác. Cơ chế
này yêu cầu CPU phải dành thời gian để kiểm tra tất cả các thiết bị, ngay cả khi
không có yêu cầu nào từ các thiết bị đó.
So sánh Interrupt-Driven I/O và Polling I/O
Tiêu chí Interrupt-Driven I/O Polling I/O
lOMoARcPSD| 58886076
CPU không cần phải kiểm CPU phải kiểm tra các
Hiệu suất tra liên tục, giúp tiết kiệm thời gian thiết bị liên tục, dẫn đến tốn
và tài nguyên. tài nguyên và thời gian xử lý.
Tiêu chí Interrupt-Driven I/O Polling I/O
Sử dụng
CPU
Giảm tải cho CPU vì CPU
chỉ xử lý khi có ngắt.
CPU phải liên tục
kiểm tra, làm giảm hiệu quả
của các tác vụ khác.
Độ phức
tạp của phần
cứng
Cần hỗ trợ ngắt và phần
cứng xử lý ngắt.
Đơn giản hơn, chỉ cần
phần cứng để kiểm tra trạng
thái thiết bị.
Tốc độ
phản ứng
Tốc độ phản ứng nhanh
CPU được thông báo ngay khi có
Phản ứng chậm hơn do
phải kiểm tra liên tục.
sự kiện.
có nhiều thiết bị ngoại vi hoặc các thống đơn giản, hoặc khi có ít
với hệ thống hệ thống yêu cầu hiệu quả cao. thiết bị ngoại vi.
Tiết kiệm năng lượng hơn vì Tu tốn năng lượng
Tiêu thụ
CPU không phải hoạt động liên hơn do CPU phải hoạt động
năng lượng
tục. liên tục.
Ưu và Nhược điểm của từng phương pháp Interrupt-
Driven I/O:
Ưu điểm:
o Tiết kiệm tài nguyên CPU: CPU không cần phải kiểm tra liên tục
các thiết bị ngoại vi, giúp tiết kiệm thời gian và tài nguyên hệ thống.
o Phản ứng nhanh: CPU được thông báo ngay khi thiết bị ngoại vi cần
sự can thiệp.
o Hiệu quả với nhiều thiết bị: Thích hợp cho hệ thống có nhiều thiết
bị
ngoại vi hoặc yêu cầu hiệu suất cao.
Nhược điểm:
o Độ phức tạp phần cứng cao: Cần các cơ chế ngắt và hỗ trợ phần
lOMoARcPSD| 58886076
cứng để quản lý ngắt, làm tăng độ phức tạp của hệ thống.
o Chi phí cao hơn:yêu cầu phần cứng hỗ trợ ngắt và cơ chế điều
khiển phức tạp, nên chi phí có thể cao hơn.
Polling I/O:
Ưu điểm:
o Đơn giản: Cơ chế đơn giản, dễ triển khai và không yêu cầu phần
cứng phức tạp.
Thích hợp cho các hệ thống Thích hợp cho các hệ
Phù hợp
lOMoARcPSD| 58886076
o Ít tốn tài nguyên phần cứng: Không cần thiết bị đặc biệt để xử lý
ngắt, làm giảm chi phí phần cứng.
Nhược điểm:
o Tiêu tốn tài nguyên CPU: CPU phải liên tục kiểm tra trạng thái các
thiết bị, làm giảm hiệu suất và tăng tiêu thụ năng lượng.
o Phản ứng chậm: Tốc độ phản ứng có thể không nhanh bằng cơ chế
interrupt, vì CPU chỉ kiểm tra theo chu kỳ và không được thông báo ngay khi có sự
kiện.
3.Trình bày sự khác nhau giữa bộ nhớ SRAM và DRAM. Tại
sao SRAM thường được dùng làm bộ nhớ cache còn DRAM được sử
dụng làm bộ nhớ chính?
1. Cấu trúc và nguyên lý hoạt động:
SRAM (Static Random Access Memory):
o Bộ nhớ SRAM sử dụng các flip-flop (mạch điện tử) để lưu trữ mỗi bit
dữ liệu. Một flip-flop có thể duy trì giá trị bit của nó miễn là có điện áp, không cần
phải làm mới (refresh).
o Cấu trúc đơn giản và nhanh chóng, vì không yêu cầu chu trình làm
mới dữ liệu.
DRAM (Dynamic Random Access Memory):
o Bộ nhớ DRAM sử dụng các tụ điện để lưu trữ mỗi bit dữ liệu. Dữ liệu
trong DRAM sẽ bị mất nếu tụ điện không được làm mới định kỳ (refresh). Vì vậy,
DRAM cần được làm mới mỗi vài mili giây để duy trì thông tin.
o DRAM có cấu trúc phức tạp hơn và yêu cầu một bộ điều khiển để
thực hiện các chu kỳ làm mới.
2. Tốc độ:
SRAM:
o SRAM nhanh hơn DRAM rất nhiều vì không cần phải làm mới và có
thể truy cập trực tiếp.
o Thời gian truy xuất rất thấp, nên được sử dụng trong các ứng dụng cần
tốc độ cao.
DRAM:
o DRAM chậm hơn so với SRAM, vì quá trình làm mới dữ liệu gây ra
độ trễ.
o Mặc dù tốc độ thấp hơn, nhưng DRAM có thể cung cấp dung lượng
lớn hơn.
lOMoARcPSD| 58886076
3. Dung lượng:
SRAM:
o SRAM có khả năng lưu trữ ít dữ liệu hơn so với DRAM do cấu trúc
phức tạp của các flip-flop.
o Vì vậy, bộ nhớ SRAM có giá thành cao hơn và chỉ được sử dụng trong
các ứng dụng yêu cầu tốc độ cao nhưng dung lượng nhỏ.
DRAM:
o DRAM có dung lượng lưu trữ lớn hơn và có chi phí sản xuất thấp hơn
so với SRAM. Do đó, nó thích hợp cho bộ nhớ chính (RAM) trong máy tính, nơi
cần dung lượng lớn.
4. Tiêu thụ năng lượng:
SRAM:
o Tiêu thụ năng lượng thấp khi không hoạt động, nhưng khi hoạt động,
nó vẫn tiêu tốn năng lượng khá ổn định.
DRAM:
o DRAM tiêu thụ nhiều năng lượng hơn khi phải làm mới thường
xuyên, mặc dù mức tiêu thụ năng lượng của nó vẫn thấp hơn so với việc duy trì các
flip-flop trong SRAM.
5. Chi phí:
SRAM:
o Do cấu trúc phức tạp hơn và yêu cầu nhiều thành phần hơn (flip-
flops), bộ nhớ SRAM có chi phí sản xuất cao hơn.
DRAM:
o DRAM rẻ hơn vì sử dụng cấu trúc đơn giản với các tụ điện, giúp giảm
chi phí sản xuất.
Tại sao SRAM thường được dùng làm bộ nhớ cache còn DRAM được sử
dụng làm bộ nhớ chính?
1. Tốc độ và hiệu suất:
SRAM nhanh hơn rất nhiều so với DRAM, với thời gian truy xuất
thấp và không cần làm mới dữ liệu. Điều này rất quan trọng trong các ứng dụng
như bộ nhớ cache, nơi cần truy xuất nhanh và thường xuyên. Bộ nhớ cache lưu trữ
các dữ liệu và lệnh mà CPU truy xuất nhiều nhất, giúp tăng tốc độ xử lý bằng cách
giảm độ trễ khi truy cập bộ nhớ chính (DRAM). Do đó, SRAM được chọn làm bộ
nhớ cache vì tốc độ cao và khả năng truy cập nhanh.
2. Dung lượng:
lOMoARcPSD| 58886076
Bộ nhớ cache thường chỉ cần một dung lượng nhỏ để lưu trữ các dữ
liệu tạm thời và các chỉ thị mà CPU thường xuyên sử dụng. Do đó, bộ nhớ SRAM
với dung lượng nhỏ, nhưng tốc độ cao, là sự lựa chọn hợp lý.
DRAM, mặc dù có tốc độ chậm hơn, nhưng có khả năng lưu trữ dung
lượng lớn và chi phí thấp hơn. Bộ nhớ chính (RAM) trong máy tính cần dung
lượng lớn để lưu trữ toàn bộ hệ điều hành, ứng dụng và dữ liệu mà người dùng
đang làm việc. DRAM phù hợp cho vai trò này vì nó cung cấp dung lượng lớn với
chi phí thấp.
3. Chi phí:
SRAM đắt hơn và do đó không thể sử dụng làm bộ nhớ chính vì chi
phí sẽ quá cao nếu phải có một dung lượng lớn.
DRAM, mặc dù tốc độ chậm hơn, nhưng chi phí sản xuất thấp và có
thể cung cấp dung lượng lớn với giá hợp lý, điều này làm cho DRAM trở thành lựa
chọn lý tưởng cho bộ nhớ chính.
Kết luận:
SRAM được sử dụng làm bộ nhớ cache vì tốc độ truy xuất nhanh,
không cần làm mới dữ liệu và độ trễ thấp.
DRAM được sử dụng làm bộ nhớ chính nhờ vào khả năng cung cấp
dung lượng lớn với chi phí thấp, mặc dù tốc độ chậm hơn và cần làm mới dữ liệu
định kỳ.
4.Mô tả nguyên lý hoạt động của bộ điều khiển DMA (Direct
Memory Access) và giải thích tại sao nó quan trọng trong việc truyền
dữ liệu giữa các thiết bị I/O và bộ nhớ.
Bộ điều khiển DMA (Direct Memory Access) là một thành phần trong máy
tính có nhiệm vụ truyền dữ liệu trực tiếp giữa các thiết bị ngoại vi (I/O) và bộ nhớ
chính, mà không cần sự can thiệp trực tiếp của CPU. Thay vì CPU phi xử lý từng
byte dữ liệu một, DMA sẽ đảm nhận toàn bộ quá trình truyền tải, giải phóng CPU
để thực hiện các tác vụ khác. Nguyên lý hoạt động 1. CPU khởi tạo: o CPU
gửi lệnh cho DMA, cung cấp các thông tin cần thiết như:
Địa chỉ bắt đầu và kết thúc của khối dữ liệu trong bộ nhớ.
Địa chỉ của thiết bị I/O.
Số lượng byte dữ liệu cần truyền.
Hướng truyền dữ liệu (từ bộ nhớ đến thiết bị hoặc ngược lại).
2. DMA thực hiện:
o DMA tiếp quản bus hệ thống (bus là đường truyền dữ liệu giữa các
thành phần trong máy tính).
o DMA thực hiện việc đọc hoặc ghi dữ liệu trực tiếp giữa bộ nhớ và
lOMoARcPSD| 58886076
thiết bị I/O theo các thông số đã được CPU cung cấp.
o Trong khi DMA đang làm việc, CPU có thể thực hiện các tác vụ khác.
3. Hoàn thành:
o Khi quá trình truyền dữ liệu hoàn tất, DMA sẽ gửi tín hiệu ngắt
(interrupt) cho CPU để thông báo.
o CPU nhận được tín hiệu ngắt và tiếp tục thực hiện các công việc tiếp
theo.
Tầm quan trọng của DMA
Giảm tải cho CPU: DMA giúp giảm tải đáng kể cho CPU, đặc biệt trong
các hoạt động truyền dữ liệu khối lượng lớn như: o Truyền dữ liệu từ ổ
cứng vào bộ nhớ. o Truyền dữ liệu từ card mạng vào bộ nhớ. o Truyền dữ
liệu từ thiết bị âm thanh, video vào bộ nhớ.
Tăng hiệu suất hệ thống: o Bằng cách giảm tải cho CPU, DMA giúp
tăng tốc độ truyền dữ liệu và
cải thiện hiệu suất tổng thể của hệ thống.
o CPU có thể tập trung vào các tác vụ tính toán phức tạp hơn, giúp hệ
thống hoạt động mượt mà hơn.
Tiết kiệm năng lượng:
o Việc giảm tải cho CPU cũng đồng nghĩa với việc giảm tiêu thụ điện
năng, giúp kéo dài tuổi thọ của các linh kiện và tiết kiệm năng lượng cho hệ thống.
Ứng dụng rộng rãi:
o DMA được sử dụng rộng rãi trong các thiết bị điện tử, từ máy tính cá
nhân đến các hệ thống nhúng, các thiết bị IoT.
Ví dụ
Khi bạn sao chép một file lớn từ ổ cứng vào máy tính, DMA sẽ đảm nhận
việc đọc dữ liệu từ ổ cứng và ghi vào bộ nhớ, trong khi CPU có thể thực hiện các
tác vụ khác như chạy các ứng dụng hoặc duyệt web.
5.Hãy trình bày và giải thích sự khác nhau giữa CPU RISC và
CPU CISC.
CPU RISC và CPU CISC là hai loại kiến trúc vi xử lý phổ biến, mỗi loại có
những ưu và nhược điểm riêng. Hiểu rõ sự khác biệt giữa hai loại này sẽ giúp bạn
lựa chọn loại CPU phù hợp cho các ứng dụng khác nhau. CPU RISC (Reduced
Instruction Set Computer)
Đặc điểm: o Bộ lệnh đơn giản, ngắn
gọn, dễ thực thi.
lOMoARcPSD| 58886076
o Số lưng lệnh ít hơn so với CISC. o Hầu hết các
lệnh đều có cùng độ dài. o Sử dụng nhiều thanh ghi
để lưu trữ dữ liệu tạm thời. o Tập trung vào việc tối ưu
hóa phần cứng.
Ưu điểm:
o Hiệu suất cao: Do các lệnh đơn giản nên CPU RISC có thể thực thi
lệnh nhanh hơn.
o Tiết kiệm năng lượng: Cấu trúc đơn giản giúp giảm tiêu thụ điện
năng. o Dễ thiết kế: Việc thiết kế CPU RISC đơn giản hơn so với
CISC.
Nhược điểm:
o Phần mềm phức tạp hơn: Để thực hiện các tác vụ phức tạp, cần nhiều
lệnh RISC hơn so với CISC. o Ít lệnh cấp cao: CPU RISC thường không có các
lệnh cấp cao như các
lệnh xử lý chuỗi, số thập phân...
CPU CISC (Complex Instruction Set Computer)
Đặc điểm:
o Bộ lệnh phức tạp, đa dạng, có thể thực hiện nhiều hoạt
động trong một
lệnh.
o Số lượng lệnh nhiều hơn so với RISC. o Độ dài
lệnh không cố định. o Sử dụng ít thanh ghi hơn. o
Tập trung vào việc tối ưu hóa phần mềm.
Ưu điểm:
o Phần mềm đơn giản: Các chương trình viết bằng ngôn ngữ lập trình
cấp cao thường được biên dịch thành mã máy CISC ngắn gọn hơn.
o Nhiều lệnh cấp cao: CPU CISC có nhiều lệnh hỗ trợ trực tiếp các hoạt
động phức tạp.
Nhược điểm:
lOMoARcPSD| 58886076
o Hiệu suất thấp hơn: Các lệnh phức tạp cần nhiều chu kỳ đồng hồ để
thực thi.
o Tiêu thụ nhiều năng lượng hơn: Cấu trúc phức tạp dẫn đến tiêu thụ
nhiều điện năng hơn. o Khó thiết kế: Việc thiết kế CPU CISC phức tạp hơn
so với RISC. Bảng so sánh
Đặc điểm CPU RISC CPU CISC
Bộ lệnh
gọn
Đơn giản, ngắn
Phức tạp, đa
dạng
Số lượng lệnh
Ít
Nhiều
Độ dài lệnh
Cố định
định
Không cố
Thanh ghi
Nhiều
Ít
Tối ưu hóa
Phần cứng
Phần mềm
Hiệu suất
Cao
Thấp
Tiêu thụ năng lượng
Thấp
Cao
Dễ thiết kế
Dễ
Khó
Xuất sang Trang tính
Ứng dụng
CPU RISC: Thường được sử dụng trong các thiết bị nhúng, điện thoại
di động, máy chơi game, máy chủ...
CPU CISC: Thường được sử dụng trong các máy tính để bàn, máy
tính xách tay, máy chủ.
6.Hãy mô tả quá trình truy cập dữ liệu từ bộ nhớ chính (RAM)
và cách CPU tương tác với RAM trong quá trình thực thi chương
trình.
RAM (Random Access Memory) b nhớ truy cập ngẫu nhiên, nơi lưu
trữ tạm thời dữ liệu và chương trình đang được CPU sử dụng. CPU liên tục tương
lOMoARcPSD| 58886076
tác với RAM để lấy dữ liệu cần thiết cho việc thực thi các lệnh. Quá trình truy
cập dữ liệu từ RAM 1. CPU gửi yêu cầu:
o Khi CPU cần một dữ liệu cụ thể để thực hiện một lệnh, nó sẽ gửi một
địa chỉ bộ nhớ đến bộ điều khiển bộ nhớ. Địa chỉ này chỉ ra vị trí chính xác của dữ
liệu trong RAM.
2. Bộ điều khiển bộ nhớ truy xuất:
o Bộ điều khiển bộ nhớ sẽ dịch địa chỉ này thành một tín hiệu điện để
định vị đúng vị trí ô nhớ chứa dữ liệu cần tìm.
o Sau đó, nó sẽ đọc dữ liệu từ ô nhớ này và đưa vào một bộ đệm tạm
thời.
3. Dữ liệu được đưa vào CPU:
o Từ bộ đệm tạm thời, dữ liệu được chuyển vào các thanh ghi bên trong
CPU.
o Tại đây, CPU sẽ thực hiện các phép toán hoặc các lệnh cần thiết với
dữ liệu vừa nhận được.
4. Viết dữ liệu vào RAM:
o Nếu cần ghi dữ liệu mới vào RAM, quá trình sẽ diễn ra tương tự
nhưng theo chiều ngược lại. CPU sẽ gửi địa chỉ và dữ liệu mới đến bộ điều khiển
bộ nhớ, và bộ điều khiển sẽ ghi dữ liệu vào vị trí chỉ định. Tương tác giữa CPU
và RAM
Bus hệ thống: Là đường truyền dữ liệu chính giữa CPU và các thành
phần khác của máy tính, bao gồm RAM. Tất cảc dữ liệu trao đổi giữa CPU và
RAM đều đi qua bus này.
Địa chỉ: Mỗi ô nhớ trong RAM đều có một địa chỉ duy nhất. Địa chỉ
này được sử dụng để xác định vị trí của dữ liệu.
Chu kỳ máy: CPU thực hiện các lệnh theo chu kỳ. Mỗi chu kỳ bao
gồm một số giai đoạn như: o Fetch: Lấy lệnh từ bộ nhớ. o Decode: Giải mã
lệnh. o Execute: Thực thi lệnh. o Write back: Ghi kết quả vào bộ nhớ (nếu
cần).
Cache: Để tăng tốc độ truy cập dữ liệu, CPU thường sử dụng một bộ
nhớ đệm nhỏ và nhanh gọi là cache. Cache lưu trữ một bản sao của các dữ liệu
được sử dụng thường xuyên, giúp giảm thời gian truy cập RAM. Tầm quan trọng
của RAM
Lưu trữ tạm thời: RAM lưu trữ dữ liệu và chương trình đang được
sử dụng, cho phép CPU truy cập nhanh chóng.
Tốc độ: RAM có tốc độ truy cập rất nhanh, giúp CPU xử lý dữ liệu
một cách hiệu quả.
lOMoARcPSD| 58886076
Dung lượng: Dung lượng RAM càng lớn, máy tính càng có thể chạy
nhiều chương trình cùng một lúc và xử lý các tác vụ phức tạp hơn.
7.Trình bày sự khác nhau giữa paging và segmentation trong
quản lý bộ nhớ.
Sự khác biệt giữa Paging và Segmentation trong quản lý bộ nhớ
Paging và Segmentation là hai kỹ thuật phân chia bộ nhớ chính trong hệ
điều hành, nhằm giải quyết vấn đề phân mảnh và quản lý bộ nhớ một cách hiệu
quả. Mặc dù cùng mục đích nhưng hai kỹ thuật này có những cách tiếp cận và đặc
điểm khác nhau.
Paging (Phân trang)
Nguyên lý:
o Bộ nhớ vật lý và không gian địa chỉ logic đều được chia thành các
khối có kích thước bằng nhau gọi là trang (page).
o Các trang trong bộ nhớ vật lý được quản lý bởi một bảng trang.
o Khi một chương trình cần truy cập dữ liệu, địa chỉ logic sẽ được dịch
thành địa chỉ vật lý thông qua bảng trang.
Đặc điểm:
o Kích thước cố định: Các trang có kích thước cố định, không thay đổi
trong suốt quá trình thực thi chương trình.
o Phân tán: Các trang của một tiến trình có thể được phân tán ngẫu
nhiên trong bộ nhớ vật lý.
o Dễ quản lý: Bảng trang đơn giản và dễ quản lý. o Ít phân mảnh
ngoài: Phân trang giúp giảm thiểu phân mảnh ngoài. Segmentation
(Phân đoạn) Nguyên lý:
o Bộ nhớ logic được chia thành các đoạn (segment) có kích thước khác
nhau, mỗi đoạn đại diện cho một vùng dữ liệu hoặc mã có ý nghĩa.
o Các đoạn được quản lý bởi một bảng đoạn.
o Khi một chương trình cần truy cập dữ liệu, địa chỉ logic sẽ được dịch
thành địa chỉ vật lý thông qua bảng đoạn.
Đặc điểm:
o Kích thước linh hoạt: Các đoạn có thể có kích thước khác nhau, phù
hợp với các yêu cầu khác nhau của chương trình. o Ý nghĩa ngữ nghĩa: Mỗi
đoạn thường đại diện cho một vùng dữ liệu
hoặc mã có ý nghĩa, giúp quản lý bộ nhớ hiệu quả hơn.
o Phân mảnh trong: Dễ xảy ra phân mảnh trong khi các đoạn được
lOMoARcPSD| 58886076
phân bổ không liên tục. o Quản lý phức tạp: Bảng đoạn phức tạp
hơn bảng trang. Bảng so sánh
Đặc điểm Paging Segmentation
Kích thước Cố định Linh hoạt
Cấu trúc Các trang có kích thước Các đoạn có kích thước khác nhau
bằng nhau
Không có ý nghĩa ngữ nghĩa
Ý nghĩa
rõ ràng
Mỗi đoạn có ý nghĩa ngữ nghĩa
Phân mảnh Ít phân mảnh ngoài Dễ xảy ra phân mảnh trong
Quản lý Dễ quản lý Phức tạp hơn
Ứng dụng
Phổ biến trong các hệ điều
hành hiện đại
Thường được kết hợp với
paging hoặc sử dụng trong các
hệ thống
đặc biệt
8.Trình bày nguyên lý hoạt động của bộ nhớ cache và cách nó
tương tác với bộ nhớ chính (RAM) để cải thiện hiệu suất hệ thống.
Bộ nhớ cache là một vùng nhớ nhỏ, nhanh hơn rất nhiều so với RAM, được
đặt giữa CPU và RAM. Nó được sử dụng để lưu trữ tạm thời những dữ liệu mà
CPU truy cập thường xuyên. Việc sử dụng bộ nhớ cache giúp giảm thiểu thời gian
truy cập dữ liệu, từ đó tăng tốc độ xử lý của hệ thống.
Nguyên lý hoạt động 1.
Truy cập dữ
liệu:
o Khi CPU cần truy cập một dữ liệu nào đó, nó sẽ đầu tiên kiểm tra xem
dữ liệu đó có trong cache hay không. o Nếu dữ liệu đã có trong cache (cache
hit), CPU sẽ lấy dữ liệu trực tiếp
từ cache, một quá trình rất nhanh.
o Nếu dữ liệu không có trong cache (cache miss), CPU sẽ phải truy cập
vào RAM để lấy dữ liệu.
2. Đưa dữ liệu vào cache:
o Khi xảy ra cache miss, dữ liệu sẽ được lấy từ RAM và đưa vào cache.
o Để tận dụng tối đa không gian hạn chế của cache, các thuật toán thay
lOMoARcPSD| 58886076
thế sẽ được sử dụng để quyết định dữ liệu nào sẽ được đưa vào cache và dữ liệu
nào sẽ bị thay thế.
Tương tác với RAM
Cải thiện hiệu suất: Bộ nhớ cache hoạt động như một lớp đệm giữa
CPU và RAM. Bằng cách lưu trữ những dữ liệu được sử dụng thường xuyên,
cache giúp giảm thiểu số lần truy cập vào RAM, vốn là một quá trình chậm hơn
nhiều so với truy cập cache.
Nguyên tắc cục bộ: Bộ nhớ cache dựa trên nguyên tắc cục bộ, tức là
các dữ liệu được truy cập gần đây thường có khả năng được truy cập lại trong
tương lai gần. Do đó, việc đưa dữ liệu vào cache sẽ giúp tăng khả năng tìm thấy dữ
liệu trong các lần truy cập tiếp theo.
Các cấp độ cache
Để tối ưu hóa hiệu suất, nhiều hệ thống sử dụng nhiều cấp độ cache:
L1 cache: Cache cấp 1, nằm gần CPU nhất, có dung lượng nhỏ nhưng
tốc độ rất cao.
L2 cache: Cache cấp 2, có dung lượng lớn hơn L1 cache nhưng tốc
độ chậm hơn.
L3 cache: Cache cấp 3, có dung lượng lớn nhất và tốc độ chậm nhất
so với các cấp khác.
Thuật toán thay thế
Các thuật toán thay thế được sử dụng để quyết định dữ liệu nào sẽ bị loại bỏ
khỏi cache khi không gian cache đầy. Một số thuật toán phổ biến bao gồm:
LRU (Least Recently Used): Thay thế dữ liệu ít được sử dụng nhất.
FIFO (First In First Out): Thay thế dữ liệu được đưa vào cache đầu
tiên.
LFU (Least Frequently Used): Thay thế dữ liệu được sử dụng ít
nhất.
9.Giải thích vai trò của ALU (Arithmetic Logic Unit) trong CPU
và mối quan hệ của nó với bộ điều khiển (Control Unit).
ALU (Arithmetic Logic Unit) - Bộ phận tính toán logic
Chức năng chính: ALU "trái tim" của CPU, có nhiệm vụ thực hiện
các phép tính số học và logic. Các phép toán này bao gồm:
o Phép tính số học: Cộng, trừ, nhân, chia, so sánh lớn hơn, nhỏ hơn,
lOMoARcPSD| 58886076
bằng... o Phép tính logic: AND, OR, NOT,
XOR...
Hoạt động: ALU nhận dữ liệu từ các thanh ghi, thực hiện phép tính
và đưa kết quả vào thanh ghi. Ví dụ: khi bạn thực hiện phép tính 2+3 trong một
chương trình, ALU sẽ lấy giá trị 2 và 3 từ các thanh ghi, thực hiện phép cộng và
lưu kết quả là 5 vào một thanh ghi khác.
Bộ điều khiển (Control Unit) - Bộ phận điều khiển
Chức năng chính: Bộ điều khiển là "bộ não" của CPU, có nhiệm vụ
điều khiển toàn bộ hoạt động của CPU. Nó thực hiện các chức năng sau:
o Giải mã lệnh: Khi nhận được một lệnh từ bộ nhớ, bộ điều khiển sẽ
giải mã lệnh đó để hiểu được CPU cần thực hiện công việc gì.
o Điều khiển các thành phần khác: Sau khi giải mã lệnh, bộ điều
khiển sẽ gửi các tín hiệu điều khiển đến các thành phần khác của CPU (như ALU,
thanh ghi, đơn vị truy cập bộ nhớ) để thực hiện lệnh đó. o Điều phối hoạt động:
Bộ điều khiển đảm bảo rằng các thành phần
khác của CPU hoạt động đồng bộ và đúng trình tự.
Mối quan hệ giữa ALU và bộ điều khiển
ALU là bộ phận thực hiện, bộ điều khiển là bộ phận chỉ huy: ALU
thực hiện các phép tính theo yêu cầu của bộ điều khiển. Bộ điều khiển sẽ gửi tín
hiệu đến ALU để chỉ định phép tính cần thực hiện và các thanh ghi chứa dữ liệu
cần thiết.
Cùng nhau tạo nên một chu kỳ máy: Mỗi chu kỳ máy (machine
cycle) là một chuỗi các hoạt động mà CPU thực hiện để thực thi một lệnh. Trong
mỗi chu kỳ máy, bộ điều khiển và ALU sẽ phối hợp với nhau để hoàn thành các
công việc như:
o Lấy lệnh: Bộ điều khiển lấy lệnh từ bộ nhớ và giải mã lệnh.
o Thực hiện lệnh: Bộ điều khiển gửi tín hiệu đến ALU để thực hiện
phép tính (nếu có) và các thành phần khác để thực hiện các thao tác cần thiết. o
Lưu kết quả: Bộ điều khiển lưu kết quả vào thanh ghi hoặc bộ nhớ. Ví dụ: Khi
bạn thực hiện phép tính 2+3 trong một chương trình, các bước hoạt động của
CPU sẽ như sau:
1. Bộ điều khiển lấy lệnh "cộng 2 số" từ bộ nhớ và giải mã lệnh.
2. Bộ điều khiển gửi tín hiệu đến ALU để thực hiện phép cộng.
lOMoARcPSD| 58886076
3. ALU lấy giá trị 2 và 3 từ các thanh ghi và thực hiện phép cộng.
4. ALU gửi kết quả là 5 vào một thanh ghi khác.
5. Bộ điều khiển tiếp tục thực hiện các lệnh tiếp theo.
10.Mô tả cách pipeline trong CPU hoạt động và cách nó tăng
cường hiệu suất xử lý. Nêu ví dụ về các xung đột thể xảy ra trong
pipeline (ví dụ: hazard).
Pipeline trong CPU là một kỹ thuật thiết kế giúp tăng tốc độ thực thi các
lệnh bằng cách chia nhỏ quá trình thực hiện một lệnh thành nhiều giai đoạn nhỏ
hơn. Các giai đoạn này được thực hiện đồng thời trên nhiều lệnh khác nhau, giống
như một dây chuyền lắp ráp.
Cách hoạt động của pipeline
1. Phân chia các giai đoạn: Quá trình thực hiện một lệnh được chia
thành các giai đoạn nhỏ hơn, ví dụ như:
o IF (Instruction Fetch): Lấy lệnh từ bộ nhớ. o ID
(Instruction Decode): Giải mã lệnh. o EX (Execute):
Thực hiện lệnh (cộng, trừ, so sánh, ...). o MEM (Memory
access): Truy cập bộ nhớ (đọc hoặc ghi). o WB (Write back):
Ghi kết quả vào thanh ghi.
2. Thực hiện đồng thời: Trong mỗi chu kỳ đồng hồ, mỗi giai đoạn sẽ
thực hiện một phần của một lệnh khác nhau. Ví dụ, trong khi giai đoạn IF đang lấy
lệnh thứ nhất, giai đoạn ID thể đang giải mã lệnh thứ hai, và giai đoạn EX đang
thực hiện lệnh thứ ba.
3. Tăng tốc độ: Nhờ việc thực hiện đồng thời các giai đoạn, pipeline
giúp tăng tốc độ thực thi các lệnh đáng kể, vì không phải chờ đợi một lệnh hoàn
thành mới bắt đầu lệnh tiếp theo.
Tăng cường hiệu suất xử lý
Tăng số lượng lệnh được thực thi trong một đơn vị thời gian: Nhờ
thực hiện đồng thời nhiều giai đoạn, pipeline giúp tăng số lượng lệnh được xử lý
trong một chu kỳ đồng hồ.
lOMoARcPSD| 58886076
Giảm thời gian trung bình để thực thi một lệnh: Mặc dù thời gian
để thực thi một lệnh không thay đổi, nhưng thời gian trung bình để thực thi một
loạt các lệnh sẽ giảm đi đáng kể.
Xung đột trong pipeline (hazard)
Trong quá trình hoạt động của pipeline, có thể xảy ra các xung đột (hazard)
làm gián đoạn dòng chảy của các lệnh và giảm hiệu suất. Các loại xung đột phổ
biến:
Structural hazard: Khi hai lệnh cần sử dụng cùng một tài nguyên
phần cứng trong cùng một chu kỳ đồng hồ.
Data hazard: Khi một lệnh cần sử dụng kết quả của lệnh trước đó mà
lệnh trước đó chưa hoàn thành.
Control hazard: Khi một lệnh nhảy (branch) làm thay đổi dòng thực
thi của chương trình, khiến các lệnh đã được đưa vào pipeline trở nên không cần
thiết.
Các giải pháp xử lý xung đột
Stall: Dừng pipeline lại cho đến khi xung đột được giải quyết.
Forwarding: Sử dụng kết quả của một lệnh trước đó để cung cấp cho
lệnh hiện tại, giúp tránh data hazard.
Branch prediction: Dự đoán hướng nhảy của lệnh branch để giảm
thiểu ảnh hưởng của control hazard.
Ví dụ: Giả sử có hai lệnh:
Lệnh 1: add R1, R2, R3 (cộng R2 và R3, lưu kết quả vào R1)
Lệnh 2: sub R4, R1, R5 (trừ R1 và R5, lưu kết quả vào R4)
Nếu không có pipeline, lệnh 2 phải chờ lệnh 1 hoàn thành mới bắt đầu được.
Tuy nhiên, với pipeline, lệnh 2 có thể bắt đầu giai đoạn IF trong khi lệnh 1 đang ở
giai đoạn EX. Tuy nhiên, nếu lệnh 2 cần giá trị của R1 mà lệnh 1 chưa cập nhật, sẽ
xảy ra data hazard. Để giải quyết vấn đề này, có thể sử dụng kỹ thuật forwarding để
cung cấp giá trị mới nhất của R1 cho lệnh 2.
11.Trình bày sự khác biệt giữa paging và segmentation trong
quản lý bộ nhớ. Giải thích cách mỗi phương pháp ảnh hưởng đến tốc
độ truy cập dữ liệu.
PagingSegmentation là hai kỹ thuật phân chia bộ nhớ chính trong hệ
điều hành, nhằm giải quyết vấn đề phân mảnh và quản lý bộ nhớ một cách hiệu
lOMoARcPSD| 58886076
quả. Mặc dù cùng mục đích nhưng hai kỹ thuật này có những cách tiếp cận và đặc
điểm khác nhau, ảnh hưởng khác nhau đến tốc độ truy cập dữ liệu. Paging (Phân
trang)
Nguyên lý: Bộ nhớ được chia thành các khối có kích thước bằng nhau
gọi là trang. Các trang của một tiến trình có thể được phân tán ngẫu nhiên trong bộ
nhớ vật lý.
Ưu điểm:
o Giảm phân mảnh ngoài: Việc chia bộ nhớ thành các trang có kích
thước cố định giúp giảm thiểu tình trạng phân mảnh ngoài.
o Quản lý đơn giản: Bảng trang đơn giản và dễ quản lý.
Nhược điểm:
o Kích thước cố định: Kích thước trang cố định có thể dẫn đến lãng
phí bộ nhớ nếu một tiến trình không cần sử dụng hết một trang.
Ảnh hưởng đến tốc độ:
o Tốc độ truy cập: Tốc độ truy cập dữ liệu phụ thuộc vào hiệu quả của
thuật toán thay thế trang và kích thước của bảng trang. Nếu bảng trang lớn và cần
nhiều lần truy cập, tốc độ truy cập có thể bị chậm lại. Segmentation (Phân
đoạn)
Nguyên lý: Bộ nhớ được chia thành các đoạn có kích thước khác
nhau, mỗi đoạn đại diện cho một vùng dữ liệu hoặc mã có ý nghĩa.
Ưu điểm:
o Kích thước linh hoạt: Các đoạn có kích thước khác nhau, phù hợp
với yêu cầu của từng chương trình. o Ý nghĩa ngữ nghĩa: Mỗi đoạn có ý
nghĩa ngữ nghĩa rõ ràng, giúp
quản lý bộ nhớ hiệu quả hơn.
Nhược điểm:
o Phân mảnh trong: Dễ xảy ra phân mảnh trong khi các đoạn được
phân bổ không liên tục.
o Quản lý phức tạp: Bảng đoạn phức tạp hơn bảng trang.
Ảnh hưởng đến tốc độ:
o Tốc độ truy cập: Tốc độ truy cập dữ liệu phụ thuộc vào cấu trúc của
lOMoARcPSD| 58886076
bảng đoạn và cách thức tìm kiếm đoạn. Nếu bảng đoạn lớn và phức tạp, tốc độ truy
cập có thể bị chậm lại.
So sánh ảnh hưởng đến tốc độ truy cập dữ liệu
Đặc điểm Paging Segmentation
Kích thước Cố định Linh hoạt
Phụ thuộc vào bảng
Tốc độ truy Phụ thuộc vào cấu trúc
trang và thuật toán thay thế
cập bảng đoạn và cách thức tìm kiếm
trang
Phân mảnh Ít phân mảnh ngoài Dễ xảy ra phân mảnh trong
Quản lý Đơn giản Phức tạp
Kết luận:
Paging thường được sử dụng rộng rãi trong các hệ điều hành hiện đại
nhờ khả năng giảm phân mảnh ngoài và quản lý đơn giản. Tuy nhiên, tốc độ truy
cập dữ liệu có thể bị ảnh hưởng bởi kích thước của bảng trang và thuật toán thay
thế trang.
Segmentation cung cấp một cách tiếp cận linh hoạt hơn trong việc
quản lý bộ nhớ, nhưng phức tạp hơn và dễ xảy ra phân mảnh trong. Tốc độ truy
cập dữ liệu cũng có thể bị ảnh hưởng bởi cấu trúc của bảng đoạn.
Trong thực tế, nhiều hệ điều hành kết hợp cả paging và segmentation để
tận dụng ưu điểm của cả hai kỹ thuật.
Các yếu tố ảnh hưởng đến tốc độ truy cập dữ liệu:
Kích thước của bảng: Bảng trang hoặc bảng đoạn lớn sẽ làm tăng
thời gian tìm kiếm địa chỉ.
Thuật toán thay thế: Thuật toán thay thế trang hiệu quả sẽ giúp giảm
thiểu số lần truy cập đĩa, tăng tốc độ truy cập dữ liệu.
Cấu trúc dữ liệu: Cách tổ chức bảng trang hoặc bảng đoạn cũng ảnh
hưởng đến tốc độ tìm kiếm.
Kích thước cache: Cache lớn và nhanh sẽ giúp giảm thiểu thời gian
truy cập bộ nhớ chính.
lOMoARcPSD| 58886076
Để tối ưu hóa tốc độ truy cập dữ liệu, các hệ điều hành thường sử dụng
các kỹ thuật như:
Tổ chức bảng trang đa cấp: Chia bảng trang thành nhiều cấp để
giảm kích thước của bảng trang cần truy cập.
Thuật toán thay thế trang LRU: Thay thế trang ít được sử dụng
nhất để tăng khả năng tìm thấy trang trong cache.
Bộ nhớ cache: Sử dụng bộ nhớ cache để lưu trữ các trang được truy
cập thường xuyên.
12. Giải thích sự khác nhau giữa cache trực tiếp (Direct-mapped Cache) và
cache liên kết đầy đủ (Fully Associative Cache). Nêu ưu nhược điểm của từng
loại.
Cache là một bộ nhớ tạm thời được sử dụng để tăng tốc độ truy cập dữ liệu trong
hệ thống máy tính. Hai loại cache phổ biến là cache trực tiếp (Direct-mapped
Cache) và cache liên kết đầy đủ (Fully Associative Cache). Dưới đây là sự khác
nhau giữa hai loại cache này cùng với ưu nhược điểm của từng loại.
1. Cache trực tiếp (Direct-mapped Cache)
Cách hoạt động:
Trong cache trực tiếp, mỗi khối dữ liệu từ bộ nhớ chính chỉ có thể được lưu
trữ tại một vị trí cụ thể trong cache. Vị trí này được xác định bằng cách sử
dụng một hàm băm đơn giản, thường là lấy chỉ số khối dữ liệu modulo số
lượng khối trong cache.
Ưu điểm:
Đơn giản và dễ triển khai: Cấu trúc của cache trực tiếp đơn giản, dễ thiết
kế và quản lý.
Tốc độ truy cập nhanh: Do chỉ cần kiểm tra một vị trí duy nhất trong
cache, thời gian truy cập thường nhanh hơn.
Nhược điểm:
Tỷ lệ va chạm cao: Nếu nhiều khối dữ liệu từ bộ nhớ chính có cùng chỉ số
băm, chúng sẽ phải thay thế nhau trong cache, dẫn đến tỷ lệ va chạm cao.

Preview text:

lOMoAR cPSD| 58886076 Thực hành 6 điểm -2c PHẦN VẤN ĐÁP (4đ)
1.Mô tả vai trò của bộ điều khiển vào/ra (I/O controller) trong
hệ thống máy tính và cách nó quản lý các thiết bị ngoại vi.
Bộ điều khiển vào/ra (I/O controller) trong hệ thống máy tính là một thành
phần quan trọng giúp quản lý và điều phối quá trình trao đổi dữ liệu giữa bộ xử lý
(CPU) và các thiết bị ngoại vi như bàn phím, chuột, màn hình, ổ đĩa cứng, máy in,
v.v. Bộ điều khiển này đóng vai trò trung gian giữa các thiết bị ngoại vi và hệ thống
máy tính, đảm bảo rằng các tín hiệu và dữ liệu có thể được truyền tải đúng đắn và hiệu quả.
Vai trò của Bộ Điều Khiển I/O: 1.
Quản lý và Điều khiển Truyền Dữ liệu: Bộ điều khiển I/O giúp quản
lý quá trình truyền dữ liệu giữa CPU và các thiết bị ngoại vi. Nó xác định cách
thức và thứ tự các hoạt động đọc/ghi dữ liệu, đảm bảo dữ liệu được truyền tải chính xác và hiệu quả. 2.
Chuyển đổi Tín hiệu: Các thiết bị ngoại vi thường sử dụng các giao
tiếp và chuẩn tín hiệu khác nhau với bộ xử lý. Bộ điều khiển I/O có nhiệm vụ
chuyển đổi các tín hiệu này sao cho phù hợp với hệ thống máy tính, ví dụ chuyển
đổi tín hiệu song song thành tín hiệu nối tiếp hoặc ngược lại. 3.
Cung cấp Địa chỉ và Điều khiển Bộ nhớ: Bộ điều khiển I/O quản lý
các địa chỉ bộ nhớ mà các thiết bị ngoại vi sử dụng để trao đổi dữ liệu. Nó giúp xác
định vị trí bộ nhớ mà dữ liệu cần được đọc vào hoặc ghi ra. 4.
Giảm tải cho CPU: Một số bộ điều khiển I/O có khả năng tự động
thực hiện một số thao tác nhất định mà không cần sự can thiệp của CPU, chẳng
hạn như chuyển đổi dữ liệu hoặc đồng bộ hóa các thiết bị. Điều này giúp giảm tải
công việc cho CPU và tăng hiệu suất tổng thể của hệ thống.
Cách Bộ Điều Khiển I/O Quản lý Các Thiết Bị Ngoại Vi: 1.
Giao Tiếp với CPU và Bộ Nhớ: Bộ điều khiển I/O thường giao tiếp
với CPU qua các bus vào/ra (I/O bus) và có thể sử dụng các phương thức như chờ
đợi ngắt (interrupts) hoặc kiểm tra liên tục (polling) để tương tác với các thiết bị
ngoại vi. Khi một thiết bị ngoại vi cần giao tiếp với hệ thống, nó có thể gửi tín hiệu
ngắt tới CPU, thông báo rằng có dữ liệu cần xử lý. lOMoAR cPSD| 58886076 2.
Phân bổ và Quản lý Cổng I/O: Các thiết bị ngoại vi được kết nối với
các cổng I/O (ví dụ cổng USB, cổng mạng). Bộ điều khiển I/O quản lý các cổng
này, xác định thiết bị nào đang kết nối và đảm bảo các cổng hoạt động đúng chức năng. 3.
Cập nhật và Xử lý Dữ liệu: Khi có yêu cầu đọc hoặc ghi dữ liệu từ
các thiết bị ngoại vi, bộ điều khiển I/O sẽ xử lý yêu cầu này. Ví dụ, khi người dùng
nhấn một phím trên bàn phím, bộ điều khiển sẽ nhận tín hiệu từ bàn phím và
chuyển nó đến bộ xử lý để xử lý. 4.
Quản lý Ngắt (Interrupts): Bộ điều khiển I/O sử dụng cơ chế ngắt
để thông báo cho CPU khi một thiết bị ngoại vi đã sẵn sàng để trao đổi dữ liệu. Khi
một thiết bị yêu cầu sự chú ý của CPU, bộ điều khiển I/O sẽ tạo ra một tín hiệu
ngắt, yêu cầu CPU tạm dừng công việc hiện tại để xử lý yêu cầu từ thiết bị ngoại vi. 5.
Quản lý Dòng Dữ Liệu và Đồng Bộ: Bộ điều khiển I/O có thể đồng
bộ hóa và quản lý dòng dữ liệu giữa các thiết bị ngoại vi và bộ xử lý, đảm bảo
không xảy ra tình trạng trùng lặp hoặc mất mát dữ liệu trong quá trình truyền tải.
2.Giải thích cơ chế interrupt-driven I/O và so sánh với Polling
I/O. Nêu ưu nhược điểm của từng phương pháp.
Interrupt-Driven I/O (I/O điều khiển qua ngắt): Trong cơ chế
interruptdriven I/O, khi một thiết bị ngoại vi cần giao tiếp với bộ xử lý (CPU), nó
sẽ gửi một tín hiệu ngắt (interrupt) tới CPU. Khi CPU nhận được tín hiệu ngắt này,
nó tạm dừng thực hiện các tác vụ hiện tại và chuyển sang xử lý ngắt. Sau khi xử lý
xong ngắt, CPU sẽ quay lại công việc ban đầu. Quá trình này giúp CPU không phải
kiểm tra liên tục các thiết bị ngoại vi, chỉ cần phản ứng khi có yêu cầu từ chúng.
Polling I/O (I/O kiểm tra liên tục): Trong cơ chế polling, CPU liên tục
kiểm tra trạng thái của các thiết bị ngoại vi trong một chu trình lặp. Mỗi lần kiểm
tra, CPU sẽ xem liệu thiết bị có yêu cầu dữ liệu hay không. Nếu có, CPU sẽ thực
hiện giao tiếp với thiết bị; nếu không, CPU tiếp tục kiểm tra thiết bị khác. Cơ chế
này yêu cầu CPU phải dành thời gian để kiểm tra tất cả các thiết bị, ngay cả khi
không có yêu cầu nào từ các thiết bị đó.
So sánh Interrupt-Driven I/O và Polling I/O Tiêu chí Interrupt-Driven I/O Polling I/O lOMoAR cPSD| 58886076
CPU không cần phải kiểm CPU phải kiểm tra các
Hiệu suất tra liên tục, giúp tiết kiệm thời gian thiết bị liên tục, dẫn đến tốn
và tài nguyên. tài nguyên và thời gian xử lý. Tiêu chí Interrupt-Driven I/O Polling I/O CPU phải liên tục Sử dụng
Giảm tải cho CPU vì CPU kiểm tra, làm giảm hiệu quả CPU
chỉ xử lý khi có ngắt. của các tác vụ khác. Độ phức
Đơn giản hơn, chỉ cần
Cần hỗ trợ ngắt và phần tạp của phần
phần cứng để kiểm tra trạng cứng xử lý ngắt. cứng thái thiết bị. Tốc độ
Tốc độ phản ứng nhanh vì Phản ứng chậm hơn do phản ứng
CPU được thông báo ngay khi có
phải kiểm tra liên tục. sự kiện.
có nhiều thiết bị ngoại vi hoặc các thống đơn giản, hoặc khi có ít
với hệ thống hệ thống yêu cầu hiệu quả cao. thiết bị ngoại vi.
Tiết kiệm năng lượng hơn vì Tiêu tốn năng lượng Tiêu thụ
CPU không phải hoạt động liên hơn do CPU phải hoạt động năng lượng tục. liên tục.
Ưu và Nhược điểm của từng phương pháp Interrupt- Driven I/O:  Ưu điểm: o
Tiết kiệm tài nguyên CPU: CPU không cần phải kiểm tra liên tục
các thiết bị ngoại vi, giúp tiết kiệm thời gian và tài nguyên hệ thống. o
Phản ứng nhanh: CPU được thông báo ngay khi thiết bị ngoại vi cần sự can thiệp. o
Hiệu quả với nhiều thiết bị: Thích hợp cho hệ thống có nhiều thiết bị
ngoại vi hoặc yêu cầu hiệu suất cao.  Nhược điểm: o
Độ phức tạp phần cứng cao: Cần các cơ chế ngắt và hỗ trợ phần lOMoAR cPSD| 58886076
cứng để quản lý ngắt, làm tăng độ phức tạp của hệ thống. o
Chi phí cao hơn: Vì yêu cầu phần cứng hỗ trợ ngắt và cơ chế điều
khiển phức tạp, nên chi phí có thể cao hơn. Polling I/O:  Ưu điểm: o
Đơn giản: Cơ chế đơn giản, dễ triển khai và không yêu cầu phần cứng phức tạp.
Thích hợp cho các hệ thống Thích hợp cho các hệ Phù hợp lOMoAR cPSD| 58886076 o
Ít tốn tài nguyên phần cứng: Không cần thiết bị đặc biệt để xử lý
ngắt, làm giảm chi phí phần cứng.  Nhược điểm: o
Tiêu tốn tài nguyên CPU: CPU phải liên tục kiểm tra trạng thái các
thiết bị, làm giảm hiệu suất và tăng tiêu thụ năng lượng. o
Phản ứng chậm: Tốc độ phản ứng có thể không nhanh bằng cơ chế
interrupt, vì CPU chỉ kiểm tra theo chu kỳ và không được thông báo ngay khi có sự kiện.
3.Trình bày sự khác nhau giữa bộ nhớ SRAM và DRAM. Tại
sao SRAM thường được dùng làm bộ nhớ cache còn DRAM được sử
dụng làm bộ nhớ chính?
1. Cấu trúc và nguyên lý hoạt động: 
SRAM (Static Random Access Memory): o
Bộ nhớ SRAM sử dụng các flip-flop (mạch điện tử) để lưu trữ mỗi bit
dữ liệu. Một flip-flop có thể duy trì giá trị bit của nó miễn là có điện áp, không cần phải làm mới (refresh). o
Cấu trúc đơn giản và nhanh chóng, vì không yêu cầu chu trình làm mới dữ liệu. 
DRAM (Dynamic Random Access Memory): o
Bộ nhớ DRAM sử dụng các tụ điện để lưu trữ mỗi bit dữ liệu. Dữ liệu
trong DRAM sẽ bị mất nếu tụ điện không được làm mới định kỳ (refresh). Vì vậy,
DRAM cần được làm mới mỗi vài mili giây để duy trì thông tin. o
DRAM có cấu trúc phức tạp hơn và yêu cầu một bộ điều khiển để
thực hiện các chu kỳ làm mới. 2. Tốc độ:  SRAM:
o SRAM nhanh hơn DRAM rất nhiều vì không cần phải làm mới và có
thể truy cập trực tiếp.
o Thời gian truy xuất rất thấp, nên được sử dụng trong các ứng dụng cần tốc độ cao.  DRAM:
o DRAM chậm hơn so với SRAM, vì quá trình làm mới dữ liệu gây ra độ trễ.
o Mặc dù tốc độ thấp hơn, nhưng DRAM có thể cung cấp dung lượng lớn hơn. lOMoAR cPSD| 58886076 3. Dung lượng:  SRAM: o
SRAM có khả năng lưu trữ ít dữ liệu hơn so với DRAM do cấu trúc
phức tạp của các flip-flop. o
Vì vậy, bộ nhớ SRAM có giá thành cao hơn và chỉ được sử dụng trong
các ứng dụng yêu cầu tốc độ cao nhưng dung lượng nhỏ.  DRAM: o
DRAM có dung lượng lưu trữ lớn hơn và có chi phí sản xuất thấp hơn
so với SRAM. Do đó, nó thích hợp cho bộ nhớ chính (RAM) trong máy tính, nơi cần dung lượng lớn.
4. Tiêu thụ năng lượng:  SRAM: o
Tiêu thụ năng lượng thấp khi không hoạt động, nhưng khi hoạt động,
nó vẫn tiêu tốn năng lượng khá ổn định.  DRAM: o
DRAM tiêu thụ nhiều năng lượng hơn khi phải làm mới thường
xuyên, mặc dù mức tiêu thụ năng lượng của nó vẫn thấp hơn so với việc duy trì các flip-flop trong SRAM. 5. Chi phí:  SRAM: o
Do cấu trúc phức tạp hơn và yêu cầu nhiều thành phần hơn (flip-
flops), bộ nhớ SRAM có chi phí sản xuất cao hơn.  DRAM: o
DRAM rẻ hơn vì sử dụng cấu trúc đơn giản với các tụ điện, giúp giảm chi phí sản xuất.
Tại sao SRAM thường được dùng làm bộ nhớ cache còn DRAM được sử
dụng làm bộ nhớ chính?
1. Tốc độ và hiệu suất: 
SRAM nhanh hơn rất nhiều so với DRAM, với thời gian truy xuất
thấp và không cần làm mới dữ liệu. Điều này rất quan trọng trong các ứng dụng
như bộ nhớ cache, nơi cần truy xuất nhanh và thường xuyên. Bộ nhớ cache lưu trữ
các dữ liệu và lệnh mà CPU truy xuất nhiều nhất, giúp tăng tốc độ xử lý bằng cách
giảm độ trễ khi truy cập bộ nhớ chính (DRAM). Do đó, SRAM được chọn làm bộ
nhớ cache vì tốc độ cao và khả năng truy cập nhanh. 2. Dung lượng: lOMoAR cPSD| 58886076 •
Bộ nhớ cache thường chỉ cần một dung lượng nhỏ để lưu trữ các dữ
liệu tạm thời và các chỉ thị mà CPU thường xuyên sử dụng. Do đó, bộ nhớ SRAM
với dung lượng nhỏ, nhưng tốc độ cao, là sự lựa chọn hợp lý. •
DRAM, mặc dù có tốc độ chậm hơn, nhưng có khả năng lưu trữ dung
lượng lớn và chi phí thấp hơn. Bộ nhớ chính (RAM) trong máy tính cần dung
lượng lớn để lưu trữ toàn bộ hệ điều hành, ứng dụng và dữ liệu mà người dùng
đang làm việc. DRAM phù hợp cho vai trò này vì nó cung cấp dung lượng lớn với chi phí thấp. 3. Chi phí: •
SRAM đắt hơn và do đó không thể sử dụng làm bộ nhớ chính vì chi
phí sẽ quá cao nếu phải có một dung lượng lớn. •
DRAM, mặc dù tốc độ chậm hơn, nhưng chi phí sản xuất thấp và có
thể cung cấp dung lượng lớn với giá hợp lý, điều này làm cho DRAM trở thành lựa
chọn lý tưởng cho bộ nhớ chính. Kết luận: •
SRAM được sử dụng làm bộ nhớ cache vì tốc độ truy xuất nhanh,
không cần làm mới dữ liệu và độ trễ thấp. •
DRAM được sử dụng làm bộ nhớ chính nhờ vào khả năng cung cấp
dung lượng lớn với chi phí thấp, mặc dù tốc độ chậm hơn và cần làm mới dữ liệu định kỳ.
4.Mô tả nguyên lý hoạt động của bộ điều khiển DMA (Direct
Memory Access) và giải thích tại sao nó quan trọng trong việc truyền
dữ liệu giữa các thiết bị I/O và bộ nhớ.
Bộ điều khiển DMA (Direct Memory Access) là một thành phần trong máy
tính có nhiệm vụ truyền dữ liệu trực tiếp giữa các thiết bị ngoại vi (I/O) và bộ nhớ
chính, mà không cần sự can thiệp trực tiếp của CPU. Thay vì CPU phải xử lý từng
byte dữ liệu một, DMA sẽ đảm nhận toàn bộ quá trình truyền tải, giải phóng CPU
để thực hiện các tác vụ khác. Nguyên lý hoạt động 1. CPU khởi tạo: o CPU
gửi lệnh cho DMA, cung cấp các thông tin cần thiết như: 
Địa chỉ bắt đầu và kết thúc của khối dữ liệu trong bộ nhớ. 
Địa chỉ của thiết bị I/O. 
Số lượng byte dữ liệu cần truyền. 
Hướng truyền dữ liệu (từ bộ nhớ đến thiết bị hoặc ngược lại). 2. DMA thực hiện: o
DMA tiếp quản bus hệ thống (bus là đường truyền dữ liệu giữa các
thành phần trong máy tính). o
DMA thực hiện việc đọc hoặc ghi dữ liệu trực tiếp giữa bộ nhớ và lOMoAR cPSD| 58886076
thiết bị I/O theo các thông số đã được CPU cung cấp. o
Trong khi DMA đang làm việc, CPU có thể thực hiện các tác vụ khác. 3. Hoàn thành:
o Khi quá trình truyền dữ liệu hoàn tất, DMA sẽ gửi tín hiệu ngắt
(interrupt) cho CPU để thông báo.
o CPU nhận được tín hiệu ngắt và tiếp tục thực hiện các công việc tiếp theo. Tầm quan trọng của DMA •
Giảm tải cho CPU: DMA giúp giảm tải đáng kể cho CPU, đặc biệt trong
các hoạt động truyền dữ liệu khối lượng lớn như: o Truyền dữ liệu từ ổ
cứng vào bộ nhớ. o Truyền dữ liệu từ card mạng vào bộ nhớ. o Truyền dữ
liệu từ thiết bị âm thanh, video vào bộ nhớ. •
Tăng hiệu suất hệ thống: o
Bằng cách giảm tải cho CPU, DMA giúp
tăng tốc độ truyền dữ liệu và
cải thiện hiệu suất tổng thể của hệ thống. o
CPU có thể tập trung vào các tác vụ tính toán phức tạp hơn, giúp hệ
thống hoạt động mượt mà hơn. 
Tiết kiệm năng lượng: o
Việc giảm tải cho CPU cũng đồng nghĩa với việc giảm tiêu thụ điện
năng, giúp kéo dài tuổi thọ của các linh kiện và tiết kiệm năng lượng cho hệ thống.  Ứng dụng rộng rãi: o
DMA được sử dụng rộng rãi trong các thiết bị điện tử, từ máy tính cá
nhân đến các hệ thống nhúng, các thiết bị IoT. Ví dụ
Khi bạn sao chép một file lớn từ ổ cứng vào máy tính, DMA sẽ đảm nhận
việc đọc dữ liệu từ ổ cứng và ghi vào bộ nhớ, trong khi CPU có thể thực hiện các
tác vụ khác như chạy các ứng dụng hoặc duyệt web.
5.Hãy trình bày và giải thích sự khác nhau giữa CPU RISC và CPU CISC.
CPU RISC và CPU CISC là hai loại kiến trúc vi xử lý phổ biến, mỗi loại có
những ưu và nhược điểm riêng. Hiểu rõ sự khác biệt giữa hai loại này sẽ giúp bạn
lựa chọn loại CPU phù hợp cho các ứng dụng khác nhau. CPU RISC (Reduced Instruction Set Computer) 
Đặc điểm: o Bộ lệnh đơn giản, ngắn gọn, dễ thực thi. lOMoAR cPSD| 58886076 o
Số lượng lệnh ít hơn so với CISC. o Hầu hết các
lệnh đều có cùng độ dài. o Sử dụng nhiều thanh ghi
để lưu trữ dữ liệu tạm thời. o Tập trung vào việc tối ưu hóa phần cứng.  Ưu điểm: o
Hiệu suất cao: Do các lệnh đơn giản nên CPU RISC có thể thực thi lệnh nhanh hơn. o
Tiết kiệm năng lượng: Cấu trúc đơn giản giúp giảm tiêu thụ điện năng. o
Dễ thiết kế: Việc thiết kế CPU RISC đơn giản hơn so với CISC.  Nhược điểm: o
Phần mềm phức tạp hơn: Để thực hiện các tác vụ phức tạp, cần nhiều
lệnh RISC hơn so với CISC. o Ít lệnh cấp cao: CPU RISC thường không có các lệnh cấp cao như các
lệnh xử lý chuỗi, số thập phân...
CPU CISC (Complex Instruction Set Computer)  Đặc điểm: o
Bộ lệnh phức tạp, đa dạng, có thể thực hiện nhiều hoạt động trong một lệnh. o
Số lượng lệnh nhiều hơn so với RISC. o Độ dài lệnh không cố định. o
Sử dụng ít thanh ghi hơn. o
Tập trung vào việc tối ưu hóa phần mềm.  Ưu điểm: o
Phần mềm đơn giản: Các chương trình viết bằng ngôn ngữ lập trình
cấp cao thường được biên dịch thành mã máy CISC ngắn gọn hơn. o
Nhiều lệnh cấp cao: CPU CISC có nhiều lệnh hỗ trợ trực tiếp các hoạt động phức tạp.  Nhược điểm: lOMoAR cPSD| 58886076
o Hiệu suất thấp hơn: Các lệnh phức tạp cần nhiều chu kỳ đồng hồ để thực thi.
o Tiêu thụ nhiều năng lượng hơn: Cấu trúc phức tạp dẫn đến tiêu thụ
nhiều điện năng hơn. o Khó thiết kế: Việc thiết kế CPU CISC phức tạp hơn
so với RISC. Bảng so sánh Đặc điểm CPU RISC CPU CISC Bộ lệnh Đơn giản, ngắn Phức tạp, đa gọn dạng Số lượng lệnh Ít Nhiều Không cố Độ dài lệnh Cố định định Thanh ghi Nhiều Ít Tối ưu hóa Phần cứng Phần mềm Hiệu suất Cao Thấp Tiêu thụ năng lượng Thấp Cao Dễ thiết kế Dễ Khó Xuất sang Trang tính Ứng dụng •
CPU RISC: Thường được sử dụng trong các thiết bị nhúng, điện thoại
di động, máy chơi game, máy chủ... •
CPU CISC: Thường được sử dụng trong các máy tính để bàn, máy tính xách tay, máy chủ.
6.Hãy mô tả quá trình truy cập dữ liệu từ bộ nhớ chính (RAM)
và cách CPU tương tác với RAM trong quá trình thực thi chương trình.
RAM (Random Access Memory) là bộ nhớ truy cập ngẫu nhiên, nơi lưu
trữ tạm thời dữ liệu và chương trình đang được CPU sử dụng. CPU liên tục tương lOMoAR cPSD| 58886076
tác với RAM để lấy dữ liệu cần thiết cho việc thực thi các lệnh. Quá trình truy
cập dữ liệu từ RAM 1. CPU gửi yêu cầu: o
Khi CPU cần một dữ liệu cụ thể để thực hiện một lệnh, nó sẽ gửi một
địa chỉ bộ nhớ đến bộ điều khiển bộ nhớ. Địa chỉ này chỉ ra vị trí chính xác của dữ liệu trong RAM. 2.
Bộ điều khiển bộ nhớ truy xuất:
o Bộ điều khiển bộ nhớ sẽ dịch địa chỉ này thành một tín hiệu điện để
định vị đúng vị trí ô nhớ chứa dữ liệu cần tìm.
o Sau đó, nó sẽ đọc dữ liệu từ ô nhớ này và đưa vào một bộ đệm tạm thời. 3.
Dữ liệu được đưa vào CPU:
o Từ bộ đệm tạm thời, dữ liệu được chuyển vào các thanh ghi bên trong CPU.
o Tại đây, CPU sẽ thực hiện các phép toán hoặc các lệnh cần thiết với
dữ liệu vừa nhận được. 4. Viết dữ liệu vào RAM: o
Nếu cần ghi dữ liệu mới vào RAM, quá trình sẽ diễn ra tương tự
nhưng theo chiều ngược lại. CPU sẽ gửi địa chỉ và dữ liệu mới đến bộ điều khiển
bộ nhớ, và bộ điều khiển sẽ ghi dữ liệu vào vị trí chỉ định. Tương tác giữa CPU và RAM •
Bus hệ thống: Là đường truyền dữ liệu chính giữa CPU và các thành
phần khác của máy tính, bao gồm RAM. Tất cả các dữ liệu trao đổi giữa CPU và RAM đều đi qua bus này. •
Địa chỉ: Mỗi ô nhớ trong RAM đều có một địa chỉ duy nhất. Địa chỉ
này được sử dụng để xác định vị trí của dữ liệu. •
Chu kỳ máy: CPU thực hiện các lệnh theo chu kỳ. Mỗi chu kỳ bao
gồm một số giai đoạn như: o Fetch: Lấy lệnh từ bộ nhớ. o Decode: Giải mã lệnh. o
Execute: Thực thi lệnh. o Write back: Ghi kết quả vào bộ nhớ (nếu cần). •
Cache: Để tăng tốc độ truy cập dữ liệu, CPU thường sử dụng một bộ
nhớ đệm nhỏ và nhanh gọi là cache. Cache lưu trữ một bản sao của các dữ liệu
được sử dụng thường xuyên, giúp giảm thời gian truy cập RAM. Tầm quan trọng của RAM •
Lưu trữ tạm thời: RAM lưu trữ dữ liệu và chương trình đang được
sử dụng, cho phép CPU truy cập nhanh chóng. •
Tốc độ: RAM có tốc độ truy cập rất nhanh, giúp CPU xử lý dữ liệu một cách hiệu quả. lOMoAR cPSD| 58886076 •
Dung lượng: Dung lượng RAM càng lớn, máy tính càng có thể chạy
nhiều chương trình cùng một lúc và xử lý các tác vụ phức tạp hơn.
7.Trình bày sự khác nhau giữa paging và segmentation trong quản lý bộ nhớ.
Sự khác biệt giữa Paging và Segmentation trong quản lý bộ nhớ
Paging và Segmentation là hai kỹ thuật phân chia bộ nhớ chính trong hệ
điều hành, nhằm giải quyết vấn đề phân mảnh và quản lý bộ nhớ một cách hiệu
quả. Mặc dù cùng mục đích nhưng hai kỹ thuật này có những cách tiếp cận và đặc điểm khác nhau. Paging (Phân trang) • Nguyên lý: o
Bộ nhớ vật lý và không gian địa chỉ logic đều được chia thành các
khối có kích thước bằng nhau gọi là trang (page). o
Các trang trong bộ nhớ vật lý được quản lý bởi một bảng trang. o
Khi một chương trình cần truy cập dữ liệu, địa chỉ logic sẽ được dịch
thành địa chỉ vật lý thông qua bảng trang.  Đặc điểm: o
Kích thước cố định: Các trang có kích thước cố định, không thay đổi
trong suốt quá trình thực thi chương trình. o
Phân tán: Các trang của một tiến trình có thể được phân tán ngẫu
nhiên trong bộ nhớ vật lý. o
Dễ quản lý: Bảng trang đơn giản và dễ quản lý. o Ít phân mảnh
ngoài: Phân trang giúp giảm thiểu phân mảnh ngoài. Segmentation (Phân đoạn)  Nguyên lý: o
Bộ nhớ logic được chia thành các đoạn (segment) có kích thước khác
nhau, mỗi đoạn đại diện cho một vùng dữ liệu hoặc mã có ý nghĩa. o
Các đoạn được quản lý bởi một bảng đoạn. o
Khi một chương trình cần truy cập dữ liệu, địa chỉ logic sẽ được dịch
thành địa chỉ vật lý thông qua bảng đoạn.  Đặc điểm: o
Kích thước linh hoạt: Các đoạn có thể có kích thước khác nhau, phù
hợp với các yêu cầu khác nhau của chương trình. o Ý nghĩa ngữ nghĩa: Mỗi
đoạn thường đại diện cho một vùng dữ liệu
hoặc mã có ý nghĩa, giúp quản lý bộ nhớ hiệu quả hơn. o
Phân mảnh trong: Dễ xảy ra phân mảnh trong khi các đoạn được lOMoAR cPSD| 58886076
phân bổ không liên tục. o Quản lý phức tạp: Bảng đoạn phức tạp
hơn bảng trang. Bảng so sánh Đặc điểm Paging Segmentation Kích thước Cố định Linh hoạt Cấu trúc
Các trang có kích thước Các đoạn có kích thước khác nhau bằng nhau
Không có ý nghĩa ngữ nghĩa Ý nghĩa rõ ràng
Mỗi đoạn có ý nghĩa ngữ nghĩa Phân mảnh Ít phân mảnh ngoài
Dễ xảy ra phân mảnh trong Quản lý Dễ quản lý Phức tạp hơn
Thường được kết hợp với
paging hoặc sử dụng trong các
Phổ biến trong các hệ điều hệ thống Ứng dụng hành hiện đại đặc biệt
8.Trình bày nguyên lý hoạt động của bộ nhớ cache và cách nó
tương tác với bộ nhớ chính (RAM) để cải thiện hiệu suất hệ thống.
Bộ nhớ cache là một vùng nhớ nhỏ, nhanh hơn rất nhiều so với RAM, được
đặt giữa CPU và RAM. Nó được sử dụng để lưu trữ tạm thời những dữ liệu mà
CPU truy cập thường xuyên. Việc sử dụng bộ nhớ cache giúp giảm thiểu thời gian
truy cập dữ liệu, từ đó tăng tốc độ xử lý của hệ thống. Nguyên lý hoạt động 1. Truy cập dữ liệu: o
Khi CPU cần truy cập một dữ liệu nào đó, nó sẽ đầu tiên kiểm tra xem
dữ liệu đó có trong cache hay không. o
Nếu dữ liệu đã có trong cache (cache
hit), CPU sẽ lấy dữ liệu trực tiếp
từ cache, một quá trình rất nhanh. o
Nếu dữ liệu không có trong cache (cache miss), CPU sẽ phải truy cập
vào RAM để lấy dữ liệu. 2. Đưa dữ liệu vào cache: o
Khi xảy ra cache miss, dữ liệu sẽ được lấy từ RAM và đưa vào cache. o
Để tận dụng tối đa không gian hạn chế của cache, các thuật toán thay lOMoAR cPSD| 58886076
thế sẽ được sử dụng để quyết định dữ liệu nào sẽ được đưa vào cache và dữ liệu nào sẽ bị thay thế. Tương tác với RAM •
Cải thiện hiệu suất: Bộ nhớ cache hoạt động như một lớp đệm giữa
CPU và RAM. Bằng cách lưu trữ những dữ liệu được sử dụng thường xuyên,
cache giúp giảm thiểu số lần truy cập vào RAM, vốn là một quá trình chậm hơn
nhiều so với truy cập cache. •
Nguyên tắc cục bộ: Bộ nhớ cache dựa trên nguyên tắc cục bộ, tức là
các dữ liệu được truy cập gần đây thường có khả năng được truy cập lại trong
tương lai gần. Do đó, việc đưa dữ liệu vào cache sẽ giúp tăng khả năng tìm thấy dữ
liệu trong các lần truy cập tiếp theo. Các cấp độ cache
Để tối ưu hóa hiệu suất, nhiều hệ thống sử dụng nhiều cấp độ cache: •
L1 cache: Cache cấp 1, nằm gần CPU nhất, có dung lượng nhỏ nhưng tốc độ rất cao. •
L2 cache: Cache cấp 2, có dung lượng lớn hơn L1 cache nhưng tốc độ chậm hơn. •
L3 cache: Cache cấp 3, có dung lượng lớn nhất và tốc độ chậm nhất so với các cấp khác. Thuật toán thay thế
Các thuật toán thay thế được sử dụng để quyết định dữ liệu nào sẽ bị loại bỏ
khỏi cache khi không gian cache đầy. Một số thuật toán phổ biến bao gồm: •
LRU (Least Recently Used): Thay thế dữ liệu ít được sử dụng nhất. •
FIFO (First In First Out): Thay thế dữ liệu được đưa vào cache đầu tiên. •
LFU (Least Frequently Used): Thay thế dữ liệu được sử dụng ít nhất.
9.Giải thích vai trò của ALU (Arithmetic Logic Unit) trong CPU
và mối quan hệ của nó với bộ điều khiển (Control Unit).
ALU (Arithmetic Logic Unit) - Bộ phận tính toán logic •
Chức năng chính: ALU là "trái tim" của CPU, có nhiệm vụ thực hiện
các phép tính số học và logic. Các phép toán này bao gồm: o
Phép tính số học: Cộng, trừ, nhân, chia, so sánh lớn hơn, nhỏ hơn, lOMoAR cPSD| 58886076 bằng... o
Phép tính logic: AND, OR, NOT, XOR... •
Hoạt động: ALU nhận dữ liệu từ các thanh ghi, thực hiện phép tính
và đưa kết quả vào thanh ghi. Ví dụ: khi bạn thực hiện phép tính 2+3 trong một
chương trình, ALU sẽ lấy giá trị 2 và 3 từ các thanh ghi, thực hiện phép cộng và
lưu kết quả là 5 vào một thanh ghi khác.
Bộ điều khiển (Control Unit) - Bộ phận điều khiển •
Chức năng chính: Bộ điều khiển là "bộ não" của CPU, có nhiệm vụ
điều khiển toàn bộ hoạt động của CPU. Nó thực hiện các chức năng sau: o
Giải mã lệnh: Khi nhận được một lệnh từ bộ nhớ, bộ điều khiển sẽ
giải mã lệnh đó để hiểu được CPU cần thực hiện công việc gì. o
Điều khiển các thành phần khác: Sau khi giải mã lệnh, bộ điều
khiển sẽ gửi các tín hiệu điều khiển đến các thành phần khác của CPU (như ALU,
thanh ghi, đơn vị truy cập bộ nhớ) để thực hiện lệnh đó. o Điều phối hoạt động:
Bộ điều khiển đảm bảo rằng các thành phần
khác của CPU hoạt động đồng bộ và đúng trình tự.
Mối quan hệ giữa ALU và bộ điều khiển •
ALU là bộ phận thực hiện, bộ điều khiển là bộ phận chỉ huy: ALU
thực hiện các phép tính theo yêu cầu của bộ điều khiển. Bộ điều khiển sẽ gửi tín
hiệu đến ALU để chỉ định phép tính cần thực hiện và các thanh ghi chứa dữ liệu cần thiết. •
Cùng nhau tạo nên một chu kỳ máy: Mỗi chu kỳ máy (machine
cycle) là một chuỗi các hoạt động mà CPU thực hiện để thực thi một lệnh. Trong
mỗi chu kỳ máy, bộ điều khiển và ALU sẽ phối hợp với nhau để hoàn thành các công việc như: o
Lấy lệnh: Bộ điều khiển lấy lệnh từ bộ nhớ và giải mã lệnh. o
Thực hiện lệnh: Bộ điều khiển gửi tín hiệu đến ALU để thực hiện
phép tính (nếu có) và các thành phần khác để thực hiện các thao tác cần thiết. o
Lưu kết quả: Bộ điều khiển lưu kết quả vào thanh ghi hoặc bộ nhớ. Ví dụ: Khi
bạn thực hiện phép tính 2+3 trong một chương trình, các bước hoạt động của CPU sẽ như sau: 1.
Bộ điều khiển lấy lệnh "cộng 2 số" từ bộ nhớ và giải mã lệnh. 2.
Bộ điều khiển gửi tín hiệu đến ALU để thực hiện phép cộng. lOMoAR cPSD| 58886076 3.
ALU lấy giá trị 2 và 3 từ các thanh ghi và thực hiện phép cộng. 4.
ALU gửi kết quả là 5 vào một thanh ghi khác. 5.
Bộ điều khiển tiếp tục thực hiện các lệnh tiếp theo.
10.Mô tả cách pipeline trong CPU hoạt động và cách nó tăng
cường hiệu suất xử lý. Nêu ví dụ về các xung đột có thể xảy ra trong pipeline (ví dụ: hazard).
Pipeline trong CPU là một kỹ thuật thiết kế giúp tăng tốc độ thực thi các
lệnh bằng cách chia nhỏ quá trình thực hiện một lệnh thành nhiều giai đoạn nhỏ
hơn. Các giai đoạn này được thực hiện đồng thời trên nhiều lệnh khác nhau, giống
như một dây chuyền lắp ráp.
Cách hoạt động của pipeline 1.
Phân chia các giai đoạn: Quá trình thực hiện một lệnh được chia
thành các giai đoạn nhỏ hơn, ví dụ như: o
IF (Instruction Fetch): Lấy lệnh từ bộ nhớ. o ID
(Instruction Decode): Giải mã lệnh. o EX (Execute):
Thực hiện lệnh (cộng, trừ, so sánh, ...). o MEM (Memory
access): Truy cập bộ nhớ (đọc hoặc ghi). o WB (Write back):
Ghi kết quả vào thanh ghi. 2.
Thực hiện đồng thời: Trong mỗi chu kỳ đồng hồ, mỗi giai đoạn sẽ
thực hiện một phần của một lệnh khác nhau. Ví dụ, trong khi giai đoạn IF đang lấy
lệnh thứ nhất, giai đoạn ID có thể đang giải mã lệnh thứ hai, và giai đoạn EX đang
thực hiện lệnh thứ ba. 3.
Tăng tốc độ: Nhờ việc thực hiện đồng thời các giai đoạn, pipeline
giúp tăng tốc độ thực thi các lệnh đáng kể, vì không phải chờ đợi một lệnh hoàn
thành mới bắt đầu lệnh tiếp theo.
Tăng cường hiệu suất xử lý •
Tăng số lượng lệnh được thực thi trong một đơn vị thời gian: Nhờ
thực hiện đồng thời nhiều giai đoạn, pipeline giúp tăng số lượng lệnh được xử lý
trong một chu kỳ đồng hồ. lOMoAR cPSD| 58886076 •
Giảm thời gian trung bình để thực thi một lệnh: Mặc dù thời gian
để thực thi một lệnh không thay đổi, nhưng thời gian trung bình để thực thi một
loạt các lệnh sẽ giảm đi đáng kể.
Xung đột trong pipeline (hazard)
Trong quá trình hoạt động của pipeline, có thể xảy ra các xung đột (hazard)
làm gián đoạn dòng chảy của các lệnh và giảm hiệu suất. Các loại xung đột phổ biến: •
Structural hazard: Khi hai lệnh cần sử dụng cùng một tài nguyên
phần cứng trong cùng một chu kỳ đồng hồ. •
Data hazard: Khi một lệnh cần sử dụng kết quả của lệnh trước đó mà
lệnh trước đó chưa hoàn thành. •
Control hazard: Khi một lệnh nhảy (branch) làm thay đổi dòng thực
thi của chương trình, khiến các lệnh đã được đưa vào pipeline trở nên không cần thiết.
Các giải pháp xử lý xung đột •
Stall: Dừng pipeline lại cho đến khi xung đột được giải quyết. •
Forwarding: Sử dụng kết quả của một lệnh trước đó để cung cấp cho
lệnh hiện tại, giúp tránh data hazard. •
Branch prediction: Dự đoán hướng nhảy của lệnh branch để giảm
thiểu ảnh hưởng của control hazard.
Ví dụ: Giả sử có hai lệnh: •
Lệnh 1: add R1, R2, R3 (cộng R2 và R3, lưu kết quả vào R1) •
Lệnh 2: sub R4, R1, R5 (trừ R1 và R5, lưu kết quả vào R4)
Nếu không có pipeline, lệnh 2 phải chờ lệnh 1 hoàn thành mới bắt đầu được.
Tuy nhiên, với pipeline, lệnh 2 có thể bắt đầu giai đoạn IF trong khi lệnh 1 đang ở
giai đoạn EX. Tuy nhiên, nếu lệnh 2 cần giá trị của R1 mà lệnh 1 chưa cập nhật, sẽ
xảy ra data hazard. Để giải quyết vấn đề này, có thể sử dụng kỹ thuật forwarding để
cung cấp giá trị mới nhất của R1 cho lệnh 2.
11.Trình bày sự khác biệt giữa paging và segmentation trong
quản lý bộ nhớ. Giải thích cách mỗi phương pháp ảnh hưởng đến tốc độ truy cập dữ liệu.
Paging và Segmentation là hai kỹ thuật phân chia bộ nhớ chính trong hệ
điều hành, nhằm giải quyết vấn đề phân mảnh và quản lý bộ nhớ một cách hiệu lOMoAR cPSD| 58886076
quả. Mặc dù cùng mục đích nhưng hai kỹ thuật này có những cách tiếp cận và đặc
điểm khác nhau, ảnh hưởng khác nhau đến tốc độ truy cập dữ liệu. Paging (Phân trang) •
Nguyên lý: Bộ nhớ được chia thành các khối có kích thước bằng nhau
gọi là trang. Các trang của một tiến trình có thể được phân tán ngẫu nhiên trong bộ nhớ vật lý. • Ưu điểm: o
Giảm phân mảnh ngoài: Việc chia bộ nhớ thành các trang có kích
thước cố định giúp giảm thiểu tình trạng phân mảnh ngoài. o
Quản lý đơn giản: Bảng trang đơn giản và dễ quản lý.  Nhược điểm: o
Kích thước cố định: Kích thước trang cố định có thể dẫn đến lãng
phí bộ nhớ nếu một tiến trình không cần sử dụng hết một trang. 
Ảnh hưởng đến tốc độ: o
Tốc độ truy cập: Tốc độ truy cập dữ liệu phụ thuộc vào hiệu quả của
thuật toán thay thế trang và kích thước của bảng trang. Nếu bảng trang lớn và cần
nhiều lần truy cập, tốc độ truy cập có thể bị chậm lại. Segmentation (Phân đoạn) •
Nguyên lý: Bộ nhớ được chia thành các đoạn có kích thước khác
nhau, mỗi đoạn đại diện cho một vùng dữ liệu hoặc mã có ý nghĩa. • Ưu điểm: o
Kích thước linh hoạt: Các đoạn có kích thước khác nhau, phù hợp
với yêu cầu của từng chương trình. o Ý nghĩa ngữ nghĩa: Mỗi đoạn có ý
nghĩa ngữ nghĩa rõ ràng, giúp
quản lý bộ nhớ hiệu quả hơn.  Nhược điểm: o
Phân mảnh trong: Dễ xảy ra phân mảnh trong khi các đoạn được
phân bổ không liên tục. o
Quản lý phức tạp: Bảng đoạn phức tạp hơn bảng trang. 
Ảnh hưởng đến tốc độ: o
Tốc độ truy cập: Tốc độ truy cập dữ liệu phụ thuộc vào cấu trúc của lOMoAR cPSD| 58886076
bảng đoạn và cách thức tìm kiếm đoạn. Nếu bảng đoạn lớn và phức tạp, tốc độ truy
cập có thể bị chậm lại.
So sánh ảnh hưởng đến tốc độ truy cập dữ liệu Đặc điểm Paging Segmentation Kích thước Cố định Linh hoạt Phụ thuộc vào bảng Tốc độ truy
Phụ thuộc vào cấu trúc
trang và thuật toán thay thế cập
bảng đoạn và cách thức tìm kiếm trang Phân mảnh Ít phân mảnh ngoài
Dễ xảy ra phân mảnh trong Quản lý Đơn giản Phức tạp Kết luận: •
Paging thường được sử dụng rộng rãi trong các hệ điều hành hiện đại
nhờ khả năng giảm phân mảnh ngoài và quản lý đơn giản. Tuy nhiên, tốc độ truy
cập dữ liệu có thể bị ảnh hưởng bởi kích thước của bảng trang và thuật toán thay thế trang. •
Segmentation cung cấp một cách tiếp cận linh hoạt hơn trong việc
quản lý bộ nhớ, nhưng phức tạp hơn và dễ xảy ra phân mảnh trong. Tốc độ truy
cập dữ liệu cũng có thể bị ảnh hưởng bởi cấu trúc của bảng đoạn.
Trong thực tế, nhiều hệ điều hành kết hợp cả paging và segmentation để
tận dụng ưu điểm của cả hai kỹ thuật.
Các yếu tố ảnh hưởng đến tốc độ truy cập dữ liệu: •
Kích thước của bảng: Bảng trang hoặc bảng đoạn lớn sẽ làm tăng
thời gian tìm kiếm địa chỉ. •
Thuật toán thay thế: Thuật toán thay thế trang hiệu quả sẽ giúp giảm
thiểu số lần truy cập đĩa, tăng tốc độ truy cập dữ liệu. •
Cấu trúc dữ liệu: Cách tổ chức bảng trang hoặc bảng đoạn cũng ảnh
hưởng đến tốc độ tìm kiếm. •
Kích thước cache: Cache lớn và nhanh sẽ giúp giảm thiểu thời gian truy cập bộ nhớ chính. lOMoAR cPSD| 58886076
Để tối ưu hóa tốc độ truy cập dữ liệu, các hệ điều hành thường sử dụng các kỹ thuật như: •
Tổ chức bảng trang đa cấp: Chia bảng trang thành nhiều cấp để
giảm kích thước của bảng trang cần truy cập. •
Thuật toán thay thế trang LRU: Thay thế trang ít được sử dụng
nhất để tăng khả năng tìm thấy trang trong cache. •
Bộ nhớ cache: Sử dụng bộ nhớ cache để lưu trữ các trang được truy cập thường xuyên.
12. Giải thích sự khác nhau giữa cache trực tiếp (Direct-mapped Cache) và
cache liên kết đầy đủ (Fully Associative Cache). Nêu ưu nhược điểm của từng loại.
Cache là một bộ nhớ tạm thời được sử dụng để tăng tốc độ truy cập dữ liệu trong
hệ thống máy tính. Hai loại cache phổ biến là cache trực tiếp (Direct-mapped
Cache) và cache liên kết đầy đủ (Fully Associative Cache). Dưới đây là sự khác
nhau giữa hai loại cache này cùng với ưu nhược điểm của từng loại. 1.
Cache trực tiếp (Direct-mapped Cache) Cách hoạt động: •
Trong cache trực tiếp, mỗi khối dữ liệu từ bộ nhớ chính chỉ có thể được lưu
trữ tại một vị trí cụ thể trong cache. Vị trí này được xác định bằng cách sử
dụng một hàm băm đơn giản, thường là lấy chỉ số khối dữ liệu modulo số lượng khối trong cache. Ưu điểm: •
Đơn giản và dễ triển khai: Cấu trúc của cache trực tiếp đơn giản, dễ thiết kế và quản lý. •
Tốc độ truy cập nhanh: Do chỉ cần kiểm tra một vị trí duy nhất trong
cache, thời gian truy cập thường nhanh hơn. Nhược điểm: •
Tỷ lệ va chạm cao: Nếu nhiều khối dữ liệu từ bộ nhớ chính có cùng chỉ số
băm, chúng sẽ phải thay thế nhau trong cache, dẫn đến tỷ lệ va chạm cao.