Trắc nghiệm Kiến trúc máy tính - Đề 13 được biên soạn kỹ lưỡng với nhiều câu hỏi phong phú, hấp dẫn và bám sát nội dung chương trình học. Đây là cơ hội tuyệt vời để bạn ôn luyện, kiểm tra và nâng cao kiến thức một cách hiệu quả. Hãy cùng bắt đầu làm bài tập ngay hôm nay để tự tin hơn trên hành trình chinh phục môn học này!
Câu 1: Xét một hệ thống máy tính sử dụng bộ nhớ cache L1 và L2. Thời gian truy cập cache L1 là 2ns, cache L2 là 10ns và bộ nhớ chính là 100ns. Tỷ lệ hit của cache L1 là 90% và tỷ lệ hit cục bộ của cache L2 (tức là hit trong L2 khi miss L1) là 80%. Tính thời gian truy cập bộ nhớ trung bình (Average Memory Access Time - AMAT) của hệ thống này.
- A. 3.2 ns
- B. 5.0 ns
- C. 12.0 ns
- D. 30.0 ns
Câu 2: Trong kiến trúc tập lệnh RISC-V, lệnh `beq rs1, rs2, offset` thực hiện so sánh giá trị của hai thanh ghi `rs1` và `rs2`. Nếu `rs1` bằng `rs2`, bộ xử lý sẽ thực hiện điều gì tiếp theo?
- A. Thực hiện lệnh kế tiếp trong bộ nhớ.
- B. Dừng thực hiện chương trình và báo lỗi.
- C. Nhảy đến địa chỉ lệnh mới, địa chỉ này được tính bằng địa chỉ lệnh hiện tại cộng với `offset`.
- D. Ghi giá trị 1 vào thanh ghi đặc biệt để báo hiệu điều kiện bằng nhau.
Câu 3: Xét một hệ thống pipeline 5 giai đoạn: IF (Instruction Fetch), ID (Instruction Decode), EX (Execute), MEM (Memory Access), WB (Write Back). Giả sử các giai đoạn này mất lần lượt 2ns, 1ns, 2ns, 3ns, 1ns. Nếu không có pipeline, thời gian thực hiện một lệnh là tổng thời gian các giai đoạn. Với pipeline lý tưởng (không có hazard), throughput lý thuyết tối đa (số lệnh hoàn thành trên giây) sẽ là bao nhiêu?
- A. 100 triệu lệnh/giây
- B. 200 triệu lệnh/giây
- C. 250 triệu lệnh/giây
- D. 333 triệu lệnh/giây
Câu 4: Trong kiến trúc máy tính hiện đại, bộ nhớ ảo (Virtual Memory) được sử dụng để làm gì?
- A. Cho phép chương trình sử dụng không gian địa chỉ bộ nhớ lớn hơn dung lượng bộ nhớ vật lý (RAM) hiện có.
- B. Tăng tốc độ truy cập bộ nhớ bằng cách sử dụng bộ nhớ cache.
- C. Bảo vệ dữ liệu trong bộ nhớ khỏi bị truy cập trái phép.
- D. Giảm điện năng tiêu thụ của hệ thống bộ nhớ.
Câu 5: Phương pháp định địa chỉ nào sau đây thường được sử dụng để truy cập các phần tử trong một mảng (array) khi lập trình?
- A. Định địa chỉ trực tiếp (Direct Addressing)
- B. Định địa chỉ thanh ghi (Register Addressing)
- C. Định địa chỉ index (Indexed Addressing)
- D. Định địa chỉ gián tiếp (Indirect Addressing)
Câu 6: Xét giao thức kết nối bộ nhớ DDR5. So với DDR4, DDR5 mang lại cải tiến chính nào về băng thông bộ nhớ?
- A. Giảm độ trễ (latency) truy cập bộ nhớ đáng kể.
- B. Tăng gấp đôi băng thông bộ nhớ trên mỗi module.
- C. Giảm điện áp hoạt động xuống mức thấp hơn đáng kể.
- D. Tích hợp bộ điều khiển bộ nhớ trực tiếp trên chip DRAM.
Câu 7: Trong hệ thống vào/ra (I/O), DMA (Direct Memory Access) được sử dụng để làm gì?
- A. Điều khiển tốc độ truyền dữ liệu giữa CPU và bộ nhớ.
- B. Phát hiện và sửa lỗi dữ liệu trong quá trình truyền I/O.
- C. Cho phép thiết bị ngoại vi truyền dữ liệu trực tiếp đến hoặc từ bộ nhớ chính mà không cần CPU can thiệp vào mọi byte dữ liệu.
- D. Quản lý việc cấp phát địa chỉ bộ nhớ cho các thiết bị I/O.
Câu 8: Kiến trúc Von Neumann và kiến trúc Harvard khác nhau chủ yếu ở điểm nào?
- A. Kiến trúc Von Neumann sử dụng chung bộ nhớ và bus cho cả dữ liệu và lệnh, trong khi kiến trúc Harvard tách riêng bộ nhớ và bus cho dữ liệu và lệnh.
- B. Kiến trúc Von Neumann sử dụng pipeline, còn kiến trúc Harvard thì không.
- C. Kiến trúc Von Neumann có bộ nhớ cache, còn kiến trúc Harvard thì không.
- D. Kiến trúc Von Neumann dùng cho máy tính cá nhân, kiến trúc Harvard dùng cho siêu máy tính.
Câu 9: Trong hệ thống bus đồng bộ, điều gì quyết định tốc độ truyền dữ liệu tối đa?
- A. Độ rộng của bus dữ liệu.
- B. Tần số xung clock của bus.
- C. Số lượng thiết bị kết nối trên bus.
- D. Giao thức truyền dữ liệu được sử dụng.
Câu 10: Xét một hệ thống bộ nhớ cache sử dụng phương pháp ánh xạ trực tiếp (Direct Mapping). Bộ nhớ chính có kích thước 16MB (2^24 bytes) và cache có 64KB (2^16 bytes), kích thước block cache là 32 bytes (2^5 bytes). Hỏi cần bao nhiêu bit cho trường tag, trường index và trường offset trong địa chỉ bộ nhớ?
- A. Tag: 6 bits, Index: 13 bits, Offset: 5 bits
- B. Tag: 11 bits, Index: 8 bits, Offset: 5 bits
- C. Tag: 8 bits, Index: 11 bits, Offset: 5 bits
- D. Tag: 5 bits, Index: 11 bits, Offset: 8 bits
Câu 11: Trong kỹ thuật pipeline, "data hazard" (rủi ro dữ liệu) xảy ra khi nào?
- A. Một lệnh trong pipeline cần sử dụng dữ liệu là kết quả của một lệnh trước đó, nhưng lệnh trước đó chưa hoàn thành việc ghi dữ liệu trở lại.
- B. Hai lệnh trong pipeline cùng cố gắng truy cập cùng một tài nguyên (ví dụ: bộ nhớ) tại cùng một thời điểm.
- C. Lệnh rẽ nhánh làm thay đổi luồng điều khiển, khiến các lệnh đã được nạp vào pipeline có thể không còn cần thiết.
- D. Lỗi phần cứng xảy ra trong quá trình thực hiện pipeline.
Câu 12: Bộ phận nào của CPU chịu trách nhiệm thực hiện các phép toán số học và logic?
- A. Bộ điều khiển (Control Unit)
- B. Thanh ghi (Registers)
- C. Bộ nhớ cache (Cache Memory)
- D. KhốiLogic Số học (Arithmetic Logic Unit - ALU)
Câu 13: Phương pháp thay thế block nào trong cache có xu hướng loại bỏ block được sử dụng ít nhất trong thời gian gần đây, dựa trên nguyên tắc "locality of reference"?
- A. FIFO (First-In, First-Out)
- B. LRU (Least Recently Used)
- C. Random
- D. LIFO (Last-In, First-Out)
Câu 14: Trong kiến trúc máy tính song song, MIMD (Multiple Instruction, Multiple Data) là gì?
- A. Một loại bộ nhớ truy cập tuần tự.
- B. Một kỹ thuật pipeline lệnh.
- C. Một kiến trúc máy tính song song trong đó nhiều bộ xử lý có thể thực hiện các lệnh khác nhau trên các dữ liệu khác nhau một cách đồng thời.
- D. Một giao thức truyền dữ liệu nối tiếp.
Câu 15: Interrupt (ngắt) trong hệ thống máy tính được sử dụng để làm gì?
- A. Báo hiệu cho CPU biết rằng một sự kiện nào đó (ví dụ: hoàn thành I/O, lỗi, yêu cầu từ thiết bị ngoại vi) cần được xử lý ngay lập tức.
- B. Tăng tốc độ xử lý của CPU bằng cách chia nhỏ công việc.
- C. Bảo vệ hệ thống khỏi các chương trình độc hại.
- D. Quản lý bộ nhớ ảo.
Câu 16: Trong hệ thống máy tính, "thrashing" (xáo trộn trang) trong bộ nhớ ảo xảy ra khi nào?
- A. Bộ nhớ cache bị đầy.
- B. CPU quá tải do xử lý quá nhiều tiến trình.
- C. Ổ cứng bị phân mảnh dữ liệu.
- D. Hệ thống dành phần lớn thời gian để swapping trang giữa bộ nhớ chính và bộ nhớ thứ cấp, do thiếu bộ nhớ chính hoặc thuật toán quản lý trang kém hiệu quả.
Câu 17: Bus PCI Express (PCIe) được sử dụng chủ yếu cho mục đích gì trong máy tính hiện đại?
- A. Kết nối CPU với bộ nhớ chính (RAM).
- B. Kết nối các card mở rộng tốc độ cao (ví dụ: card đồ họa, SSD NVMe) với bo mạch chủ.
- C. Kết nối các thiết bị ngoại vi tốc độ thấp (ví dụ: chuột, bàn phím).
- D. Truyền dữ liệu giữa các core CPU trong hệ thống đa nhân.
Câu 18: Trong kiến trúc bộ nhớ cache, cache write-back (ghi lại) hoạt động như thế nào khi có một cache hit và dữ liệu cần ghi?
- A. Dữ liệu được ghi đồng thời vào cả cache và bộ nhớ chính.
- B. Dữ liệu chỉ được ghi vào bộ nhớ chính, không ghi vào cache.
- C. Dữ liệu chỉ được ghi vào cache, và đánh dấu block là "dirty". Dữ liệu sẽ được ghi vào bộ nhớ chính sau khi block này bị thay thế.
- D. Không thực hiện ghi nếu dữ liệu đã có trong cache.
Câu 19: Endianness (thứ tự byte) trong kiến trúc máy tính đề cập đến điều gì?
- A. Thứ tự sắp xếp các byte của một giá trị đa byte (ví dụ: số nguyên 32-bit) trong bộ nhớ.
- B. Kích thước của địa chỉ bộ nhớ.
- C. Tốc độ truy cập bộ nhớ.
- D. Phương pháp mã hóa dữ liệu trong bộ nhớ.
Câu 20: Giả sử bạn có một chương trình và sau khi chạy profiler, bạn thấy rằng chương trình dành phần lớn thời gian trong các lệnh truy cập bộ nhớ. Biện pháp kiến trúc máy tính nào sau đây có thể giúp cải thiện hiệu suất chương trình này?
- A. Tăng tần số xung clock của CPU.
- B. Tối ưu hóa hệ thống bộ nhớ cache (ví dụ: tăng kích thước cache, cải thiện thuật toán thay thế).
- C. Sử dụng nhiều thanh ghi hơn trong CPU.
- D. Giảm độ rộng bus dữ liệu.
Câu 21: Trong kiến trúc máy tính, "locality of reference" (tính cục bộ tham chiếu) là nguyên tắc quan trọng để thiết kế hiệu quả bộ nhớ cache. Nguyên tắc này phát biểu rằng:
- A. Dữ liệu nên được lưu trữ phân tán trong bộ nhớ để tránh tắc nghẽn.
- B. Các chương trình nên được viết sao cho truy cập bộ nhớ một cách ngẫu nhiên để tăng tính bảo mật.
- C. Chương trình thường có xu hướng truy cập một tập hợp nhỏ các địa chỉ bộ nhớ trong một khoảng thời gian ngắn.
- D. Bộ nhớ cache nên được thiết kế lớn nhất có thể để chứa toàn bộ chương trình.
Câu 22: Xét một hệ thống sử dụng bộ nhớ phân trang (paging). Bảng trang (page table) được lưu trữ ở đâu?
- A. Trong CPU (ví dụ: trong bộ nhớ cache hoặc thanh ghi).
- B. Trong bộ nhớ chính (RAM).
- C. Trong bộ nhớ cache của ổ cứng.
- D. Trong ROM BIOS.
Câu 23: Trong kiến trúc ARM, Thumb và ARM state khác nhau như thế nào?
- A. ARM state dùng cho hệ điều hành, Thumb state dùng cho ứng dụng.
- B. ARM state là kiến trúc 64-bit, Thumb state là kiến trúc 32-bit.
- C. ARM state có nhiều thanh ghi hơn Thumb state.
- D. ARM state sử dụng lệnh 32-bit, Thumb state sử dụng lệnh 16-bit (trong Thumb-2 có thể kết hợp cả 16-bit và 32-bit). Thumb state thường cho code nhỏ gọn hơn, ARM state thường cho hiệu năng cao hơn.
Câu 24: Công nghệ NVMe (Non-Volatile Memory Express) cải thiện hiệu suất của ổ cứng SSD như thế nào so với giao diện SATA truyền thống?
- A. NVMe giảm giá thành sản xuất ổ cứng SSD.
- B. NVMe sử dụng giao diện PCIe tốc độ cao thay vì SATA, giảm độ trễ và tăng băng thông truyền dữ liệu đáng kể.
- C. NVMe tăng độ bền của chip nhớ flash NAND trong SSD.
- D. NVMe giúp tiết kiệm điện năng tiêu thụ của ổ cứng SSD.
Câu 25: Trong kiến trúc pipeline, "control hazard" (rủi ro điều khiển) phát sinh chủ yếu do loại lệnh nào?
- A. Lệnh số học (ví dụ: ADD, SUB).
- B. Lệnh logic (ví dụ: AND, OR).
- C. Lệnh rẽ nhánh (ví dụ: JUMP, BEQ).
- D. Lệnh truy cập bộ nhớ (ví dụ: LOAD, STORE).
Câu 26: Phương pháp nào sau đây thường được sử dụng để giải quyết "data hazard" trong pipeline bằng phần cứng, mà không cần phần mềm can thiệp?
- A. Data forwarding (bypass).
- B. Stalling pipeline (chèn bubble).
- C. Software scheduling (sắp xếp lại lệnh bằng phần mềm).
- D. Flush pipeline (xóa pipeline).
Câu 27: Trong kiến trúc máy tính, thuật ngữ "word" (từ) thường dùng để chỉ điều gì?
- A. Một ký tự (byte).
- B. Kích thước dữ liệu chuẩn mà một kiến trúc máy tính xử lý một cách tự nhiên và hiệu quả nhất (thường bằng độ rộng thanh ghi).
- C. Một khối dữ liệu 512 bytes trên ổ cứng.
- D. Một dòng lệnh assembly.
Câu 28: Xét hệ thống bộ nhớ cache set-associative 2-way. Điều gì có nghĩa là "2-way set-associative"?
- A. Cache có thể truy cập đồng thời từ 2 hướng.
- B. Dữ liệu trong cache được sao lưu thành 2 bản.
- C. Mỗi set trong cache có 2 line, một block bộ nhớ chính có thể được ánh xạ vào một trong 2 line này.
- D. Cache hoạt động ở tốc độ gấp đôi so với bộ nhớ chính.
Câu 29: Trong kiến trúc máy tính, "Moore"s Law" (Định luật Moore) phát biểu về xu hướng phát triển nào?
- A. Tốc độ xung clock của CPU tăng gấp đôi mỗi năm.
- B. Giá thành bộ nhớ RAM giảm một nửa mỗi năm.
- C. Kích thước ổ cứng tăng gấp đôi mỗi năm.
- D. Số lượng transistor trên chip vi xử lý tăng gấp đôi sau mỗi khoảng thời gian nhất định.
Câu 30: Xét một hệ thống máy tính sử dụng địa chỉ vật lý 32-bit. Hỏi không gian địa chỉ vật lý tối đa mà hệ thống này có thể quản lý là bao nhiêu?
- A. 4GB
- B. 16GB
- C. 32GB
- D. 64GB