















Preview text:
lOMoAR cPSD| 58886076 lOMoAR cPSD| 58886076 PHẦN BÀI TẬP Bài tập 1
1. Chuyển số 4035 từ hệ thập phân sang hệ nhị phân.
2. Chuyển số 4056 từ hệ thập phân sang hệ bát phân.
. Chuyển số 4035 từ hệ thập phân sang hệ nhị phân.
Để chuyển số từ hệ thập phân sang hệ nhị phân, ta sử dụng phép chia liên
tiếp cho 2 và ghi lại phần dư của mỗi lần chia. • 4035 ÷ 2 = 2017 dư 1 • 2017 ÷ 2 = 1008 dư 1 • 1008 ÷ 2 = 504 dư 0 • 504 ÷ 2 = 252 dư 0 • 252 ÷ 2 = 126 dư 0 • 126 ÷ 2 = 63 dư 0 • 63 ÷ 2 = 31 dư 1 • 31 ÷ 2 = 15 dư 1 • 15 ÷ 2 = 7 dư 1 • 7 ÷ 2 = 3 dư 1 • 3 ÷ 2 = 1 dư 1 • 1 ÷ 2 = 0 dư 1
Vậy số 4035 trong hệ nhị phân là: 111111101011.
2. Chuyển số 4056 từ hệ thập phân sang hệ bát phân.
Để chuyển số từ hệ thập phân sang hệ bát phân, ta chia cho 8 và ghi lại phần dư. • 4056 ÷ 8 = 507 dư 0 lOMoAR cPSD| 58886076 • 507 ÷ 8 = 63 dư 3 • 63 ÷ 8 = 7 dư 7 • 7 ÷ 8 = 0 dư 7
Vậy số 4056 trong hệ bát phân là: 7730₈
Bài tập 2: Bộ nhớ cache có kích thước 32KB với mỗi block là 64 byte. Hãy
tính số block có thể lưu trữ trong cache và giải thích cơ chế xử lý cache miss.
- Kích thước bộ nhớ cache là 32KB, tương đương với 32 × 1024 = 32,768 bytes.
- Kích thước mỗi block là 64 byte.
Số block có thể lưu trữ trong cache là: 32,768 bytes = 512 block 64 byte/block
Giải thích cơ chế xử lý cache miss: Khi CPU yêu cầu dữ liệu mà dữ liệu đó
không có trong cache (được gọi là cache miss), hệ thống sẽ phải truy xuất dữ liệu
từ bộ nhớ chính (RAM). Quá trình này sẽ tốn thêm thời gian, vì việc truy xuất từ
RAM chậm hơn nhiều so với việc truy xuất từ cache. Sau khi truy xuất dữ liệu từ
bộ nhớ chính, nó sẽ được lưu vào cache để các lần truy xuất tiếp theo sẽ nhanh hơn. Bài tập 3
1. Biểu diễn số −39 trong hệ nhị phân sử dụng phương pháp bù 2 (2’s complement) với 8 bit. 1.
Biểu diễn số 79 trong hệ nhị phân sử dụng phương pháp bù 2 với 8 bit.
1. Biểu diễn số −39 trong hệ nhị phân sử dụng phương pháp bù 2 (2’s complement) với 8 bit. •
Số 39 trong hệ nhị phân với 8 bit: 00100111. •
Để biểu diễn −39, ta cần lấy bù 2 của 39: lOMoAR cPSD| 58886076 1.
Đảo tất cả các bit: 11011000. 2. Cộng thêm 1: 11011001.
Vậy số −39 trong hệ nhị phân sử dụng phương pháp bù 2 là: 11011001.
2. Biểu diễn số 79 trong hệ nhị phân sử dụng phương pháp bù 2 với 8 bit. •
Số 79 trong hệ nhị phân với 8 bit: 01001111. Vậy số 79 trong hệ nhị phân là: 01001111. Bài tập 4
Một CPU có 4 pipeline và tần số xung nhịp là 2.8GHz. Tính số lệnh được xử
lý trong 5 giây và giải thích lợi ích của pipeline trong việc cải thiện hiệu suất.
Một CPU có 4 pipeline và tần số xung nhịp là 2.8GHz. Tính số lệnh
được xử lý trong 5 giây và giải thích lợi ích của pipeline trong việc cải thiện hiệu suất. •
Tần số xung nhịp của CPU là 2.8GHz, tức là 2.8 tỷ chu kỳ mỗi giây. •
Mỗi chu kỳ xử lý 4 lệnh (vì có 4 pipeline).
Số lệnh được xử lý trong 1 giây là:
2.8 GHz×4=11.2 tỷ lệnh/giây
Trong 5 giây, số lệnh được xử lý là:
11.2tỷ lệnh/giây×5= 56 tỷ lệnh
Giải thích lợi ích của pipeline: Pipeline giúp CPU xử lý nhiều lệnh đồng
thời bằng cách chia quá trình xử lý một lệnh thành nhiều giai đoạn (như fetch,
decode, execute). Điều này làm giảm thời gian chờ và tối ưu hóa việc sử dụng tài
nguyên của CPU, từ đó tăng hiệu suất và giảm độ trễ. Bài tập 5
1. Thực hiện phép cộng hai số nhị phân: 10111001 + 10110110 . ₂ ₂
2. Thực hiện phép trừ hai số nhị phân: 11000001 − 10011101 . ₂ ₂ lOMoAR cPSD| 58886076 1.
Thực hiện phép cộng hai số nhị phân: 10111001 + 10110110 .₂ ₂ 10111001 +10110110 101011111
Vậy kết quả của phép cộng là: 101011111₂ (9 bit). 2.
Thực hiện phép trừ hai số nhị phân: 11000001 − 10011101 .₂ ₂ Để
thực hiện phép trừ nhị phân, ta lấy bù 2 của số trừ và cộng với số bị trừ: •
Bù 2 của 10011101: 01100011, cộng 1 ta có: 01100100. •
Cộng số 11000001 và 01100100: 11000001 +01100100 00100101
Vậy kết quả của phép trừ là: 00100101₂. Bài tập 6
Bộ nhớ cache có kích thước 64KB với mỗi block là 256 byte. Hãy tính số
block trong cache và giải thích cơ chế thay thế block khi cache bị đầy. •
Kích thước bộ nhớ cache là 64KB, tương đương với 64 × 1024 = 65,536 bytes. •
Kích thước mỗi block là 256 bytes.
Số block có thể lưu trữ trong cache là: 65,536 bytes 256 bytes/block = 256 blocks
Giải thích cơ chế thay thế block khi cache bị đầy: Khi bộ nhớ cache đầy
và cần lưu trữ thêm một block mới, cơ chế thay thế block (cache replacement) sẽ
được sử dụng. Các chiến lược thay thế phổ biến là: •
LRU (Least Recently Used): Thay thế block mà ít được sử dụng nhất. lOMoAR cPSD| 58886076 •
FIFO (First In, First Out): Thay thế block cũ nhất. •
Random: Thay thế block ngẫu nhiên. Bài tập 7
1. Giả sử CPU có tần số 3 GHz và tiêu thụ công suất 65W. Tính công suất tiêu
thụ nếu tần số tăng lên 3.5 GHz mà không thay đổi kiến trúc.
2. Giải thích mối quan hệ giữa tần số xung nhịp và công suất tiêu thụ của CPU. 1.
Giả sử CPU có tần số 3 GHz và tiêu thụ công suất 65W. Tính công
suất tiêu thụ nếu tần số tăng lên 3.5 GHz mà không thay đổi kiến trúc.
Công suất tiêu thụ của CPU tỷ lệ với bình phương tần số xung nhịp. Ta có công thức: P2 = P1 × ¿
Với P1 = 65 W, f1 = 3 GHz và f2 = 3,5 GHz
P2 = 65 × ¿ = 65 × (1,1667)2 = 88,5 W
Vậy công suất tiêu thụ khi tần số tăng lên 3.5 GHz là 88.5W. 2.
Giải thích mối quan hệ giữa tần số xung nhịp và công suất tiêu
thụ của CPU. Mối quan hệ này cho thấy rằng công suất tiêu thụ của CPU tăng
theo bình phương của tần số xung nhịp. Khi tần số xung nhịp tăng, CPU xử lý
nhiều lệnh hơn trong mỗi giây, dẫn đến việc tiêu thụ nhiều năng lượng hơn. Bài tập 8
Một CPU có tần số xung nhịp là 2.5GHz và thực hiện được 4 lệnh mỗi chu kỳ.
Tính số lệnh mà CPU có thể xử lý trong 1 giây. Giải thích khái niệm xung nhịp trong CPU. •
Tần số xung nhịp là 2.5GHz, tức là 2.5 tỷ chu kỳ mỗi giây. •
Mỗi chu kỳ CPU thực hiện được 4 lệnh.
Số lệnh CPU có thể xử lý trong 1 giây là:
2.5 GHz×4=10 tỷ lệnh/giây
Giải thích khái niệm xung nhịp trong CPU: Xung nhịp (clock speed) của
CPU đo lường tốc độ hoạt động của bộ xử lý, thể hiện số chu kỳ mà CPU có thể lOMoAR cPSD| 58886076
thực hiện mỗi giây. Tần số cao hơn đồng nghĩa với việc CPU có thể thực hiện
nhiều tác vụ hơn trong thời gian ngắn.
Bài tập 9 :Bộ điều khiển ngắt trong CPU.
1. Giải thích vai trò của bộ điều khiển ngắt trong CPU.
2. Tính số ngắt CPU có thể xử lý trong 1 giây nếu mỗi ngắt mất
10,000 chu kỳ và tần số CPU là 2.5 GHz.
1. Vai trò của bộ điều khiển ngắt trong CPU
Bộ điều khiển ngắt (Interrupt Controller) là một thành phần quan trọng
trong CPU, có vai trò chính trong việc quản lý và xử lý các ngắt (interrupts) từ các
thiết bị ngoại vi hoặc từ các sự kiện trong hệ thống. Dưới đây là một số vai trò
chính của bộ điều khiển ngắt: •
Quản lý ngắt: Bộ điều khiển ngắt nhận và quản lý các tín hiệu ngắt từ các
thiết bị ngoại vi (như bàn phím, chuột, ổ đĩa, card mạng, v.v.). Nó xác định
ngắt nào cần được xử lý và theo thứ tự nào. •
Ưu tiên ngắt: Trong trường hợp có nhiều ngắt xảy ra cùng một lúc, bộ điều
khiển ngắt có thể xác định mức độ ưu tiên của từng ngắt và quyết định ngắt
nào sẽ được xử lý trước. Điều này rất quan trọng trong các hệ thống thời
gian thực, nơi mà một số ngắt cần được xử lý ngay lập tức. •
Tạm dừng và khôi phục: Khi CPU nhận được một tín hiệu ngắt, bộ điều
khiển ngắt sẽ tạm dừng thực hiện chương trình hiện tại, lưu trạng thái của
CPU (như thanh ghi, con trỏ chương trình), và chuyển điều khiển đến
chương trình xử lý ngắt (Interrupt Service Routine - ISR). Sau khi xử lý
xong, trạng thái của CPU sẽ được khôi phục và chương trình trước đó sẽ tiếp tục thực hiện. •
Tăng cường hiệu suất: Bằng cách cho phép CPU xử lý các sự kiện không
đồng bộ mà không cần phải kiểm tra liên tục (polling), bộ điều khiển ngắt
giúp tăng cường hiệu suất của hệ thống, cho phép CPU tập trung vào các tác
vụ khác trong khi chờ đợi các sự kiện từ thiết bị ngoại vi.
2. Tính số ngắt CPU có thể xử lý trong 1 giây
Để tính số ngắt mà CPU có thể xử lý trong 1 giây, ta cần biết tần số CPU và
số chu kỳ cần thiết để xử lý mỗi ngắt. •
Tần số CPU: 2.5 GHz (tức là 2.5 tỷ chu kỳ mỗi giây). •
Số chu kỳ cần thiết để xử lý mỗi ngắt: 10,000 chu kỳ. lOMoAR cPSD| 58886076
Tính số ngắt có thể xử lý trong 1 giây
Tần suất CPU: f= 2,5 GHz= 2,5 x 109 chu kì/giây.
Mỗi ngắt cần 10,000 chu kì để xử lí.
- Số ngắt CPU có thể xử lí trong 1 giây được tính như sau:
Số ngắt = Tổng số chu kì CPU trong 1 giây /số chu kì xử lí một ngắt.
Số ngắt= 2,5 x 109 /10,000 =250,000 Kết luận •
Vai trò của bộ điều khiển ngắt: Quản lý và xử lý các ngắt từ thiết bị ngoại
vi, ưu tiên ngắt, tạm dừng và khôi phục trạng thái CPU, và tăng cường hiệu suất hệ thống. •
Số ngắt CPU có thể xử lý trong 1 giây: 250,000 ngắt.
Bài tập 10: Giả sử một CPU sử dụng pipeline 5 giai đoạn với mỗi giai đoạn
mất 1 chu kỳ xung nhịp để thực hiện.
1. Giải thích cách hoạt động của pipeline trong CPU.
2. Nếu một chương trình cần 100 lệnh để hoàn thành, tính số chu kỳ xung
nhịp tối thiểu cần thiết để thực hiện chương trình này trên CPU có pipeline.
1. Cách hoạt động của pipeline trong CPU
Pipeline là một kỹ thuật trong thiết kế CPU cho phép thực hiện nhiều lệnh
đồng thời bằng cách chia quá trình thực hiện lệnh thành nhiều giai đoạn. Mỗi giai
đoạn thực hiện một phần của lệnh và các giai đoạn này được thực hiện song song.
Các giai đoạn trong pipeline
Một pipeline thường được chia thành các giai đoạn khác nhau, ví dụ như:
Fetch (Lấy lệnh): Lệnh được lấy từ bộ nhớ.
Decode (Giải mã): Lệnh được giải mã để xác định các toán hạng và các
thao tác cần thực hiện.
Execute (Thực thi): Thực hiện các phép toán hoặc thao tác cần thiết.
Memory Access (Truy cập bộ nhớ): Nếu lệnh yêu cầu truy cập bộ nhớ
(như đọc hoặc ghi dữ liệu), giai đoạn này sẽ thực hiện việc đó.
Write Back (Ghi lại): Kết quả của lệnh được ghi lại vào thanh ghi. lOMoAR cPSD| 58886076 Hoạt động của pipeline
Khi một lệnh được đưa vào pipeline, nó sẽ đi qua từng giai đoạn một cách
tuần tự. Tuy nhiên, trong khi lệnh đầu tiên đang ở giai đoạn thứ hai, lệnh thứ hai có
thể được đưa vào giai đoạn đầu tiên, và lệnh thứ ba có thể vào giai đoạn đầu tiên, và cứ như vậy.
Điều này cho phép CPU thực hiện nhiều lệnh cùng một lúc, làm tăng hiệu
suất và giảm thời gian hoàn thành chương trình.
2. Tính số chu kỳ xung nhịp tối thiểu cần thiết để thực hiện chương trình
Giả sử một CPU sử dụng pipeline 5 giai đoạn, mỗi giai đoạn mất 1 chu kỳ
xung nhịp để thực hiện. Để tính số chu kỳ xung nhịp tối thiểu cần thiết để thực
hiện một chương trình cần 100 lệnh, ta có thể làm như sau: Tính toán
Thời gian để hoàn thành một lệnh:Với pipeline 5 giai đoạn, sau khi lệnh đầu
tiên hoàn thành (sau 5 chu kỳ), mỗi lệnh tiếp theo sẽ hoàn thành sau mỗi chu kỳ.
Điều này có nghĩa là sau khi lệnh đầu tiên được hoàn thành, CPU có thể hoàn
thành một lệnh mới mỗi chu kỳ. Số chu kỳ cần thiết:
Để hoàn thành 100 lệnh, ta cần:
5 chu kỳ để đưa lệnh đầu tiên vào pipeline và hoàn thành.
Sau đó, mỗi lệnh tiếp theo sẽ hoàn thành sau mỗi chu kỳ.
Do đó, tổng số chu kỳ cần thiết sẽ là: Tổng số chu kỳ = 5 + (100 - 1) = 5 + 99 = 104 chu kỳ Kết luận
Cách hoạt động của pipeline: Pipeline cho phép CPU thực hiện nhiều lệnh
đồng thời bằng cách chia quá trình thực hiện lệnh thành nhiều giai đoạn, mỗi giai
đoạn thực hiện một phần của lệnh. lOMoAR cPSD| 58886076
Số chu kỳ xung nhịp tối thiểu cần thiết để thực hiện 100 lệnh: 104 chu kỳ.
Bài tập 11: Một hệ thống sử dụng phương pháp interrupt để xử lý các
yêu cầu I/O. Hãy giải thích cách hoạt động của interrupt và so sánh với phương pháp polling.
Cách hoạt động của Interrupt
Interrupt (ngắt) là một cơ chế cho phép các thiết bị ngoại vi hoặc các sự
kiện trong hệ thống thông báo cho CPU rằng chúng cần sự chú ý hoặc xử lý. Dưới
đây là cách hoạt động của interrupt:
1. Gửi tín hiệu ngắt: Khi một thiết bị ngoại vi (như bàn phím, chuột, ổ đĩa,
v.v.) cần CPU xử lý, nó sẽ gửi một tín hiệu ngắt đến bộ điều khiển ngắt (Interrupt Controller).
2. Xác định ngắt: Bộ điều khiển ngắt sẽ nhận tín hiệu và xác định loại ngắt
(có thể có nhiều ngắt từ nhiều thiết bị khác nhau) và mức độ ưu tiên của nó.
3. Tạm dừng chương trình hiện tại: Nếu CPU đang thực hiện một chương
trình, nó sẽ tạm dừng chương trình đó, lưu trạng thái hiện tại (như giá trị của
các thanh ghi, con trỏ chương trình, v.v.) để có thể quay lại sau khi xử lý ngắt.
4. Chuyển điều khiển đến ISR: CPU sẽ chuyển điều khiển đến một chương
trình xử lý ngắt (Interrupt Service Routine - ISR) tương ứng với loại ngắt đã
nhận. ISR sẽ thực hiện các thao tác cần thiết để xử lý yêu cầu từ thiết bị ngoại vi.
5. Khôi phục trạng thái: Sau khi ISR hoàn thành, CPU sẽ khôi phục trạng thái
trước đó và tiếp tục thực hiện chương trình đã tạm dừng.
So sánh với phương pháp Polling
Polling là một phương pháp khác để xử lý các yêu cầu I/O, trong đó CPU
liên tục kiểm tra trạng thái của các thiết bị ngoại vi để xem có yêu cầu nào cần xử
lý hay không. Dưới đây là sự so sánh giữa interrupt và polling:
| Đặc điểm | Interrupt | Polling | lOMoAR cPSD| 58886076
|------------------------|------------------------------------------------|--------------------------
---------------------| | Cách thức hoạt động| Thiết bị gửi tín hiệu ngắt khi cần CPU
xử lý | CPU liên tục kiểm tra trạng thái của thiết bị | | Tính hiệu quả | Hiệu quả hơn
trong việc sử dụng CPU, vì CPU chỉ xử lý khi có yêu cầu | Kém hiệu quả, vì CPU
có thể lãng phí thời gian kiểm tra trạng thái | | Thời gian phản hồi | Thời gian phản
hồi nhanh hơn, vì CPU sẽ ngay lập tức xử lý yêu cầu khi nhận ngắt | Thời gian phản
hồi có thể chậm hơn, phụ thuộc vào tần suất kiểm tra | | Tài nguyên hệ thống| Tiết
kiệm tài nguyên hệ thống, vì CPU không phải kiểm tra liên tục | Tiêu tốn tài nguyên
hệ thống, vì CPU phải liên tục kiểm tra | | Phức tạp | Phức tạp hơn trong việc quản
lý ngắt và xử lý ISR | Đơn giản hơn, dễ triển khai nhưng không hiệu quả | | Ưu tiên
| Có thể xử lý nhiều ngắt với mức độ ưu tiên khác nhau | Không có cơ chế ưu tiên,
tất cả các thiết bị được kiểm tra theo thứ tự | Kết luận •
Interrupt là một phương pháp hiệu quả để xử lý các yêu cầu I/O, cho
phép CPU chỉ xử lý khi có yêu cầu từ thiết bị ngoại vi, giúp tiết kiệm
tài nguyên và tăng tốc độ phản hồi. •
Polling là một phương pháp đơn giản nhưng kém hiệu quả, vì CPU
phải liên tục kiểm tra trạng thái của các thiết bị, dẫn đến lãng phí thời gian và tài nguyên.
Trong hầu hết các hệ thống hiện đại, phương pháp interrupt thường được ưa
chuộng hơn so với polling do tính hiệu quả và khả năng phản hồi nhanh hơn. Bài tập 12
1. Chuyển số -25 từ hệ thập phân sang hệ nhị phân sử
dụng phương pháp bù 2 với 16 bit.
2. Biểu diễn số -57.5 trong hệ nhị phân dấu phẩy động theo chuẩn IEEE 754.
1. Chuyển số -25 từ hệ thập phân sang hệ nhị phân sử dụng phương pháp bù 2 với 16 bit
Bước 1: Chuyển số dương 25 sang hệ nhị phân lOMoAR cPSD| 58886076
Số 25 trong hệ nhị phân: • 25 = 11001 (hệ nhị phân)
Bước 2: Biểu diễn số 25 trong 16 bit •
Để biểu diễn số 25 trong 16 bit, ta thêm các số 0 ở phía trước: •
25 = 0000 0000 0001 1001 (16 bit) Bước 3: Tìm bù 1 •
Để tìm bù 1, ta đảo tất cả các bit: •
0000 0000 0001 1001 → 1111 1111 1110 0110 Bước 4: Tìm bù 2 •
Để tìm bù 2, ta cộng 1 vào bù 1: • 1111 1111 1110 0110 • 0000 0000 0000 0001 • 1111 1111 1110 0111 Kết quả •
Số -25 trong hệ nhị phân bù 2 với 16 bit là: • 1111 1111 1110 0111
2. Biểu diễn số -57.5 trong hệ nhị phân dấu phẩy động theo chuẩn IEEE 754 lOMoAR cPSD| 58886076
Bước 1: Chuyển số dương 57.5 sang hệ nhị phân
Chuyển phần nguyên 57 sang nhị phân: •
57 = 111001 (hệ nhị phân)
Chuyển phần thập phân 0.5 sang nhị phân: •
0.5 = 0.1 (hệ nhị phân) Kết hợp lại: •
57.5 = 111001.1 (hệ nhị phân)
Bước 2: Chuyển sang dạng chuẩn
Chuyển sang dạng chuẩn: • 111001.1 = 1.110011 × 2^5
Bước 3: Xác định các thành phần của IEEE 754 • Dấu: • Số âm nên dấu = 1. • Exponent: •
Giá trị thực của exponent là 5. Trong IEEE 754, exponent được lưu
trữ với một bias (đối với định dạng 32 bit, bias là 127): [ \ text{Exponent} = 5
+ 127 = 132 ] 132 trong nhị phân là: [ 132 = 10000100 ] Mantissa: •
Mantissa là phần sau dấu phẩy trong dạng chuẩn, ta lấy 23 bit sau dấu phẩy: •
1.110011 → 11001100000000000000000 (thêm 0 để đủ 23 bit)
Bước 4: Kết hợp lại thành định dạng IEEE 754 • Dấu: 1 • Exponent: 10000100 •
Mantissa: 11001100000000000000000 lOMoAR cPSD| 58886076 Kết quả
Biểu diễn số -57.5 trong hệ nhị phân dấu phẩy động theo chuẩn IEEE 754
(32 bit) là: [ \text{1 | 10000100 | 11001100000000000000000} ]
Trong định dạng nhị phân: [ \text{1 10000100 11001100000000000000000} ] Tóm tắt
1. Số -25 trong hệ nhị phân bù 2 với 16 bit là: 1111 1111 1110 0111.
2. Số -57.5 trong hệ nhị phân dấu phẩy động theo chuẩn IEEE 754 là: 1
10000100 11001100000000000000000.
Bài tập 13 Một CPU có tần số xung nhịp là 4GHz. Tính thời gian cần
thiết để thực hiện một lệnh nếu mỗi lệnh cần 3 chu kỳ xung nhịp. Giải thích
khái niệm chu kỳ xung nhịp. •
Chu kỳ xung nhịp là khoảng thời gian ngắn nhất để CPU thực hiện một tác
vụ cơ bản, chẳng hạn như truy xuất bộ nhớ hoặc thực thi một phần của một lệnh. •
Tần số xung nhịp của CPU (thường đo bằng đơn vị GHz) cho biết số chu kỳ
xung nhịp mà CPU có thể thực hiện trong một giây. Công thức xác định thời
gian của một chu kỳ xung nhịp là: • T= 1/f Trong đó:
o T: Thời gian của một chu kỳ xung nhịp (giây) o
f: Tần số xung nhịp (Hz)
2. Tính thời gian thực hiện một lệnh CPU
có tần số xung nhịp f=4 GHz=4×109 Hz
Thời gian của một chu kỳ xung nhịp là: lOMoAR cPSD| 58886076 Tcycle lOMoAR cPSD| 58886076
Bài tập 14: Giả sử một CPU có ba loại lệnh A, B, C. Số chu kỳ xung nhịp để thực hiện các
lệnh tương ứng là 1, 2, và 3.
1. Tính thời gian trung bình để thực hiện một lệnh?
2. Nếu tần số xung nhịp của CPU là 2 GHz, tính tốc độ thực hiện lệnh của CPU (lệnh/giây)?
1)Thời gian trung bình để thực hiện một lệnh: Ta có: pA+pB+pC=1.
Thời gian trung bình để thực hiện một lệnh được tính:
Ttrung bình = pA x 1 +pB x2 +pB +pC x 3
Nếu tỷ lệ xuất hiện của A , B,C không được cho, ta giả sử các lệnh xuất hiện
đồng đều tức là : pA=pB=pC=
Ttrung bình = x1+ x2+ x3 =2 (chu kỳ xung nhịp)
2) Tính tốc độ thực hiện lệnh của CPU
Tần số xung nhịp của CPU là 2 GHz, nghĩa là trong 1 giây CPU thực hiện: f=2×109 xung nhịp / giây
Vì trung bình cần 2 chu kỳ để thực hiện một lệnh, tốc độ thực hiện lệnh là:
Tốc độ thực hiện lệnh = f/ TTrung bình =2 x109/2 = 1x109 lệnh /giây.
Bài tập 15: Một hệ thống sử dụng cache liên kết trực tiếp (Direct-mapped Cache). Hãy mô
tả cách hệ thống tìm kiếm dữ liệu trong cache và xử lý khi xảy ra cache miss.? Cách hệ thống
tìm kiếm dữ liệu trong Direct-mapped Cache
1. Tìm vị trí trong cache:
o Bộ nhớ chính được chia thành các khối (blocks), và cache được chia thành
các dòng (lines). Mỗi khối từ bộ nhớ chính có thể ánh xạ đến đúng một dòng trong cache. lOMoAR cPSD| 58886076
o Địa chỉ bộ nhớ được chia thành các phần:
Tag: Xác định khối trong bộ nhớ.
Index: Chỉ ra dòng nào trong cache chứa dữ liệu.
Block offset: Chỉ ra vị trí dữ liệu cụ thể trong khối. 2. So sánh tag:
o CPU trích xuất phần index từ địa chỉ để tìm dòng tương ứng trong cache.
o Sau đó, CPU kiểm tra phần tag của địa chỉ để xác định dữ liệu trong dòng
cache đó có khớp với dữ liệu yêu cầu hay không.
3. Cache hit: o Nếu tag khớp, dữ liệu được lấy từ cache. 4. Cache miss:
o Nếu tag không khớp, dữ liệu được tải từ bộ nhớ chính vào dòng tương ứng
trong cache. Quá trình này có thể thay thế dữ liệu cũ theo quy tắc của cache.
Bài tập 16 :Một CPU có tần số xung nhịp là 2.8 GHz và thực hiện một chương trình với 3
triệu lệnh. 1. Tính số lệnh CPU có thể thực hiện trong 1 giây. 2. Tính thời gian?
1. Tính số lệnh CPU có thể thực hiện trong 1 giây
Tần số xung nhịp của CPU là 2.8 GHz, nghĩa là CPU thực hiện:
Số xung nhịp /giây = 2.8x109 lệnh/giây.
Mỗi lệnh cần trung bình 1 chu kỳ xung nhịp để thực hiện, CPU có thể thực hiện:
Số lệnh/giây = 2.8x109 lệnh/giây.
2. Tính thời gian thực hiện chương trình Thời gian =
=3x106/2.8x109 = 1.07x10-3 giây.
Thời giân thực hiện chương trình là : 1.07 mili giây.