Từ khóa chính: đề thi kiến trúc máy tính

Ý định tìm kiếm: Informational (Người dùng muốn tìm kiếm thông tin, lời giải hoặc cách tiếp cận các bài tập liên quan đến kiến trúc máy tính).

Kịch bản viết lại: KỊCH BẢN 1: Dành cho Intent [Informational], [Commercial], [Transactional]

Đề Thi Kiến Trúc Máy Tính: Phân Tích & Hướng Dẫn Giải Chi Tiết

Kỳ thi cuối học kỳ môn Kiến trúc Máy tính là một cột mốc quan trọng, đánh dấu sự nắm vững kiến thức nền tảng của sinh viên. Nội dung các đề thi thường xoay quanh các khái niệm cốt lõi như biểu diễn số học, thiết kế mạch logic, các lệnh máy và tổ chức hệ thống máy tính. Bài viết này sẽ phân tích chi tiết các dạng bài tập thường gặp trong đề thi Kiến trúc Máy tính, cung cấp hướng dẫn giải và những lưu ý quan trọng để bạn tự tin chinh phục môn học này.

Tóm tắt các bước chính để giải đề thi Kiến trúc Máy tính

  1. Phân tích kỹ yêu cầu đề bài: Đọc lướt qua toàn bộ đề thi để nắm tổng quan, sau đó đọc kỹ từng câu hỏi, xác định rõ yêu cầu của mỗi phần (biểu diễn số, thiết kế mạch, phân tích lệnh…).
  2. Xác định khái niệm liên quan: Đối với mỗi câu hỏi, liên hệ ngay đến các kiến thức lý thuyết đã học (hệ đếm, phép bù, bản đồ Karnaugh, mạch tuần tự, các loại lệnh máy…).
  3. Áp dụng công thức và phương pháp giải: Sử dụng các công thức và quy trình đã được học để thực hiện các phép tính hoặc thiết kế mạch.
  4. Kiểm tra lại kết quả: Đặc biệt đối với các phép toán số học, cần kiểm tra lại bằng phương pháp khác hoặc bằng cách chuyển đổi sang hệ thập phân để đảm bảo tính chính xác.
  5. Trình bày rõ ràng, mạch lạc: Sắp xếp các bước giải một cách logic, sử dụng các ký hiệu và thuật ngữ chuyên ngành chính xác.

Các dạng bài tập thường gặp trong đề thi Kiến trúc Máy tính

1. Biểu diễn số học và các phép toán trong hệ đếm

Các bài tập về biểu diễn số học thường yêu cầu sinh viên thực hiện các phép toán cộng, trừ trên các số nguyên và số thực với các hệ đếm khác nhau (nhị phân, bù 2, dấu chấm động).

Biểu diễn số trong hệ bù 2

Hệ bù 2 là một phương pháp biểu diễn số nguyên có dấu phổ biến trong máy tính, cho phép thực hiện phép cộng và trừ một cách thống nhất.

Quy tắc:

  • Số dương: Biểu diễn giống hệ nhị phân thông thường.
  • Số âm: Lấy bù 2 của biểu diễn nhị phân số dương tương ứng. Để tính bù 2 của một số âm:
    1. Biểu diễn số dương của nó.
    2. Đảo tất cả các bit (bù 1).
    3. Cộng thêm 1 vào kết quả bù 1.

Ví dụ minh họa cho câu 1a của Đề I:

  • 1) 23 – 17:

    • Chuyển sang hệ nhị phân với 8 bit:
      • 2310 = 000101112
      • 1710 = 000100012
    • Phép trừ 23 – 17 tương đương với phép cộng 23 + (-17).
    • Tìm biểu diễn bù 2 của -17:
      • 1710 = 000100012
      • Bù 1: 111011102
      • Cộng 1: 111011102 + 12 = 111011112 (Đây là biểu diễn của -17)
    • Thực hiện phép cộng:
        00010111  (23)
      + 11101111  (-17)
      ----------
      100000110
      
    • Do sử dụng 8 bit, bit tràn (bit thứ 9) sẽ bị bỏ đi. Kết quả là 000001102.
    • Chuyển kết quả về hệ thập phân: 000001102 = 610.
    • Kiểm tra: 23 – 17 = 6. Kết quả chính xác.
  • 2) -25 – 19:

    • Chuyển sang hệ nhị phân với 8 bit:
      • 2510 = 000110012
      • 1910 = 000100112
    • Phép trừ -25 – 19 tương đương với phép cộng (-25) + (-19).
    • Tìm biểu diễn bù 2 của -25:
      • 2510 = 000110012
      • Bù 1: 111001102
      • Cộng 1: 111001102 + 12 = 111001112 (Đây là biểu diễn của -25)
    • Tìm biểu diễn bù 2 của -19:
      • 1910 = 000100112
      • Bù 1: 111011002
      • Cộng 1: 111011002 + 12 = 111011012 (Đây là biểu diễn của -19)
    • Thực hiện phép cộng:
        11100111  (-25)
      + 11101101  (-19)
      ----------
      111010100
      
    • Do sử dụng 8 bit, bit tràn (bit thứ 9) sẽ bị bỏ đi. Kết quả là 110101002.
    • Kết quả này là số âm. Để xác định giá trị thập phân, ta tìm bù 2 của nó:
      • 110101002
      • Bù 1: 001010112
      • Cộng 1: 001010112 + 12 = 001011002
    • Chuyển 001011002 về hệ thập phân: 001011002 = 32 + 8 + 4 = 4410.
    • Vì biểu diễn ban đầu là số âm, kết quả là -4410.
    • Kiểm tra: -25 – 19 = -44. Kết quả chính xác.

Biểu diễn số thực dạng dấu chấm động (IEEE 754)

Số thực được biểu diễn dưới dạng dấu chấm động theo chuẩn IEEE 754, bao gồm 3 thành phần: Dấu (Sign), Số mũ (Exponent) và Phần định trị (Mantissa/Fraction). Chuẩn chính xác đơn (single-precision) sử dụng 32 bit.

  • Bit 31: Dấu (0 cho dương, 1 cho âm).
  • Bit 30-23 (8 bit): Số mũ, được lưu trữ dưới dạng bù thiên vị (biased exponent) với thiên vị là 127.
  • Bit 22-0 (23 bit): Phần định trị.

Quy trình biểu diễn số thực âm -42,25 (Đề I, Câu 1b):

  1. Xác định dấu: Số -42,25 là số âm, nên bit dấu là 1.

  2. Chuyển phần nguyên sang nhị phân:

    • 4210 = 32 + 8 + 2 = 25 + 23 + 21 = 1010102
  3. Chuyển phần thập phân sang nhị phân:

    • 0,25 = 1/4 = 2-2. Vậy phần thập phân là .012.
    • Kết hợp lại: 42,2510 = 101010.012
  4. Chuẩn hóa về dạng 1.xxxxx 2n:

    • Dịch dấu thập phân sang trái 5 vị trí: 1.01010012 25.
    • Phần định trị (Mantissa/Fraction) là 0101001 (bỏ phần 1 phía trước). Ta thêm các số 0 vào cuối để đủ 23 bit: 01010010000000000000000.
  5. Tính số mũ thiên vị (Biased Exponent):

    • Số mũ thực tế (n) là 5.
    • Thiên vị (Bias) cho 32 bit là 127.
    • Số mũ thiên vị = 5 + 127 = 132.
    • Chuyển 132 sang hệ nhị phân 8 bit: 132 = 128 + 4 = 27 + 22 = 100001002.
  6. Ghép các thành phần:

    • Dấu (1 bit): 1
    • Số mũ thiên vị (8 bit): 10000100
    • Phần định trị (23 bit): 01010010000000000000000

    Kết quả biểu diễn dạng dấu chấm động 32 bit cho -42,25 là:
    1 10000100 01010010000000000000000

2. Thiết kế mạch logic với Bản đồ Karnaugh

Bản đồ Karnaugh (K-map) là một công cụ trực quan để rút gọn các hàm Boole, giúp đơn giản hóa thiết kế mạch logic.

Các bước thực hiện:

  1. Xác định các biến đầu vào: Số lượng biến xác định số ô trong K-map (ví dụ: 4 biến A, B, C, D tương ứng với K-map 4×4).
  2. Điền giá trị vào K-map: Dựa trên các giá trị “1” (hoặc “0” tùy theo dạng chuẩn) cho trước trong biểu thức hàm Boole (ví dụ: ∑(0, 1, 2, 6, 8, 9, 10, 11)), đánh dấu “1” vào các ô tương ứng với các chỉ số đó. Lưu ý quy tắc mã Gray cho các hàng và cột.
  3. Nhóm các ô “1” liền kề: Tạo các nhóm hình chữ nhật hoặc vuông với số lượng ô là lũy thừa của 2 (1, 2, 4, 8…). Ưu tiên nhóm lớn nhất và bao phủ tất cả các ô “1”. Các nhóm có thể chồng chéo. Các ô ở biên của K-map được coi là liền kề.
  4. Viết biểu thức rút gọn: Với mỗi nhóm, xác định các biến không thay đổi giá trị trong nhóm đó. Biến nào có giá trị là 1 thì giữ nguyên, biến nào có giá trị là 0 thì bù (ví dụ: nếu A thay đổi (0 và 1) thì bỏ A, nếu B luôn là 1 thì giữ B, nếu C luôn là 0 thì giữ C’).
  5. Kết hợp các biểu thức:
    • Dạng chuẩn tổng các tích (SOP): Dùng toán tử OR (+) nối các tích (AND – ) tương ứng với mỗi nhóm.
    • Dạng chuẩn tích các tổng (POS): Dùng toán tử AND () nối các tổng (OR – +) tương ứng với mỗi nhóm các ô “0”.

Ví dụ minh họa cho câu 2 (Đề I & Đề II):

  • Đề I, Câu 2a: Dạng chuẩn tổng các tích của f(A, B, C, D) = ∑(0, 1, 2, 6, 8, 9, 10, 11)

    • Cần vẽ K-map 4×4 với các biến A, B, C, D.
    • Điền “1” vào các ô 0, 1, 2, 6, 8, 9, 10, 11.
    • Sau khi nhóm, ta sẽ thu được các nhóm cho các ô:
      • Nhóm 1: ô 0, 1, 8, 9 (cho ra tích A’B’)
      • Nhóm 2: ô 0, 2, 8, 10 (cho ra tích A’C’)
      • Nhóm 3: ô 6, 7, 14, 15 (nếu có) – không có trong đề này
      • Nhóm 4: ô 2, 6, 10, 14 (nếu có) – không có trong đề này
      • Nhóm 5: ô 1, 2, 3, 10, 11 (nếu có) – không có trong đề này
      • … (cần vẽ K-map thực tế để xác định nhóm tối ưu nhất)

    Giả sử sau khi rút gọn, ta có các nhóm chính bao phủ các ô được cho:

    • Nhóm 1: Ô 0, 1, 8, 9 -> A’B’
    • Nhóm 2: Ô 0, 2, 8, 10 -> A’C’
    • Nhóm 3: Ô 1, 9 -> A’D’ (nếu không được bao phủ bởi nhóm khác) – cần xem xét sự chồng chéo
    • Nhóm 4: Ô 2, 6, 10, 14 -> B’C’ (nếu có 14)

    Cách tiếp cận chính xác cho Đề I, Câu 2a:

    • K-map cho f(A, B, C, D) = ∑(0, 1, 2, 6, 8, 9, 10, 11)
    • Các ô có giá trị 1:
      • 0000, 0001, 0010, 0110, 1000, 1001, 1010, 1011
    • Sau khi vẽ và nhóm trên K-map:

      • Nhóm 1: Ô 0, 1, 8, 9 (A’B’)
      • Nhóm 2: Ô 0, 2, 8, 10 (A’C’)
      • Nhóm 3: Ô 1, 9, 11 (cần xem xét lại nhóm này, có thể A’D’ bao phủ 1, 9, 11 nhưng không bao phủ hết ô 3)
      • Nhóm 4: Ô 2, 6, 10, 14 (nếu có ô 14, thì B’C’) – ở đây không có ô 14
      • Nhóm 5: Ô 6, 7 (nếu có 7) – ở đây không có 7
    • Các nhóm tối ưu nhất bao phủ tất cả các ô “1”:

      • Ô 0, 8: A’B’ (bao phủ 0, 1, 8, 9)
      • Ô 0, 2, 8, 10: A’C’ (bao phủ 0, 2, 8, 10)
      • Ô 6, 10, 11: BCD’, BC’D (cần xem lại)
    • Dựa trên K-map chuẩn cho ∑(0, 1, 2, 6, 8, 9, 10, 11):

      • Nhóm bao phủ các ô 0, 1, 8, 9: A’B’
      • Nhóm bao phủ các ô 0, 2, 8, 10: A’C’
      • Nhóm bao phủ các ô 2, 6, 10, 14: B’C’ (Nếu có ô 14) – ở đây không có ô 14.
      • Nhóm bao phủ các ô 6, 7, 14, 15: CD (Nếu có 7, 14, 15) – ở đây không có các ô này.
    • Phân tích lại các ô:

      • Ô 0 (A’B’C’D’), 1 (A’B’C’D), 2 (A’B’CD’), 6 (A’BC’D), 8 (AB’C’D’), 9 (AB’C’D), 10 (AB’CD’), 11 (AB’CD)
    • Nhóm tối ưu:

      • Ô 0, 1, 8, 9 -> A’B’
      • Ô 0, 2, 8, 10 -> A’C’
      • Ô 2, 6, 10, 14 -> B’C’ (Có ô 6, 2, 10. Nếu có ô 14 thì nhóm này hợp lệ. Tuy nhiên, trong đề bài chỉ cho đến 11)
    • Xem xét lại các khả năng:

      • Ô 0, 1, 8, 9 -> A’B’
      • Ô 0, 2, 8, 10 -> A’C’
      • Ô 6 (A’BC’D), ô 11 (AB’CD)
    • Dạng chuẩn tổng các tích (SOP) cho f(A, B, C, D) = ∑(0, 1, 2, 6, 8, 9, 10, 11):

      Đề Thi Kiến Trúc Máy Tính: Phân Tích & Hướng Dẫn Giải Chi Tiết
      Đề Thi Kiến Trúc Máy Tính: Phân Tích & Hướng Dẫn Giải Chi Tiết
      • Nhóm 1 (ô 0,1,8,9): A’B’
      • Nhóm 2 (ô 0,2,8,10): A’C’
      • Nhóm 3 (ô 2,6,10): B’C’ (không bao phủ hết 2, 6, 10)
    • Cách tiếp cận đúng cho K-Map SOP (đảm bảo bao phủ tất cả các 1):

      1. Ô 0, 1, 8, 9 -> A’B’ (bao phủ 0, 1, 8, 9)
      2. Ô 0, 2, 8, 10 -> A’C’ (bao phủ 0, 2, 8, 10)
      3. Ô 6 -> A’BC’D (cần bao phủ ô 6)
      4. Ô 11 -> AB’CD (cần bao phủ ô 11)
    • Biểu thức rút gọn: A’B’ + A’C’ + A’BC’D + AB’CD (Đây là một cách rút gọn, có thể có cách tối ưu hơn).

  • Đề I, Câu 2b: Dạng chuẩn tích các tổng của hàm f

    • Cần tìm các ô có giá trị “0” trong K-map (tổng cộng 16 ô, đã cho 8 ô là “1”, vậy còn 8 ô là “0”).
    • Các ô “0” là: 3, 4, 5, 7, 12, 13, 14, 15.
    • Nhóm các ô “0” liền kề theo quy tắc tương tự.
    • Với mỗi nhóm ô “0”, xác định biểu thức tổng (OR).
    • Dạng chuẩn tích các tổng (POS) là tích (AND) của các biểu thức tổng đó.
    • Ví dụ, nhóm ô 3 (A’BCD) và ô 7 (A’BCD) -> A’B + C’D (nếu nhóm này hợp lệ)
    • Để tìm dạng POS, ta tìm các nhóm “0”:
      • Ô 3 (A’BCD)
      • Ô 4 (AB’C’D’)
      • Ô 5 (AB’C’D)
      • Ô 7 (A’BCD)
      • Ô 12 (ABC’D’)
      • Ô 13 (ABC’D)
      • Ô 14 (ABCD’)
      • Ô 15 (ABCD)
    • Nhóm các ô “0”:

      • Nhóm 1: Ô 3, 7, 11 (nếu 11 là 0 – nhưng 11 là 1 trong đề này).
      • Nhóm 2: Ô 4, 5, 12, 13 -> AB’ + AC’
      • Nhóm 3: Ô 5, 7, 13, 15 -> AC + BD
      • Nhóm 4: Ô 3, 7, 11, 15 -> AD + BC
    • Sau khi vẽ K-Map và nhóm các ô “0”:

      • Ô 4, 12 -> AB’
      • Ô 5, 13 -> AB’
      • Ô 7, 15 -> AC
      • Ô 3, 7 -> CD
      • Ô 5, 7 -> BD
      • Ô 12, 13 -> AC’
      • Ô 14, 15 -> CD’
    • Cách tiếp cận đúng cho POS:

      • Tìm các nhóm “0”:

        • Nhóm 1: Ô 4, 5, 12, 13 -> AB’ (bao phủ 4, 5, 12, 13)
        • Nhóm 2: Ô 3, 7, 11, 15 -> AD (bao phủ 3, 7, 11, 15)
        • Nhóm 3: Ô 4, 6, 12, 14 -> A’C (nếu ô 6, 14 là 0 – nhưng 6 là 1)
        • Nhóm 4: Ô 5, 7, 13, 15 -> BD (bao phủ 5, 7, 13, 15)
      • Các nhóm “0” tối ưu:

        • Ô 3, 7, 11, 15: AD
        • Ô 4, 5, 12, 13: AB’
        • Ô 5, 7, 13, 15: BD
        • Ô 3, 11 (nếu có)
        • Ô 4, 6 (nếu 6 là 0)
      • Dạng chuẩn tích các tổng (POS) cho f(A, B, C, D) = ∑(0, 1, 2, 6, 8, 9, 10, 11) (tức là các ô 0 là: 3, 4, 5, 7, 12, 13, 14, 15):

        • Nhóm ô 3, 7, 11, 15: AD
        • Nhóm ô 4, 5, 12, 13: AB’
        • Nhóm ô 4, 6, 12, 14: AC’ (nếu 6, 14 là 0)
        • Nhóm ô 5, 7, 13, 15: BD
      • Biểu thức rút gọn (POS): (AD + AB’ + BD + AC’) (Cần xác nhận lại các nhóm “0” trên K-map thực tế).

3. Thiết kế mạch tuần tự

Các bài tập về mạch tuần tự yêu cầu thiết kế mạch dựa trên các điều kiện hoạt động được cho, sử dụng các loại flip-flop khác nhau (T, JK, D, SR).

Các bước thiết kế mạch tuần tự:

  1. Xác định trạng thái: Xác định tất cả các trạng thái có thể có của mạch (thường là 2n trạng thái với n flip-flop). Đặt tên cho các trạng thái.
  2. Xây dựng bảng trạng thái (State Table): Bảng này liệt kê: trạng thái hiện tại, các đầu vào, trạng thái kế tiếp, và các đầu ra (nếu có).
  3. Xây dựng bảng kích hoạt flip-flop (Flip-Flop Excitation Table): Dựa vào bảng trạng thái, xác định các tín hiệu kích hoạt (input) cho từng loại flip-flop để chuyển từ trạng thái hiện tại sang trạng thái kế tiếp.
  4. Rút gọn các hàm kích hoạt flip-flop: Sử dụng K-map hoặc đại số Boole để rút gọn các biểu thức cho đầu vào của mỗi flip-flop (ví dụ: JA, KA, DA, TA).
  5. Vẽ sơ đồ mạch: Vẽ sơ đồ mạch logic sử dụng các flip-flop đã chọn và các cổng logic tương ứng với các biểu thức rút gọn.

Ví dụ minh họa cho câu 3 (Đề I & Đề II):

  • Đề I, Câu 3: Mạch dùng mạch lật T

    • Đầu vào: E, x.
    • Flip-flop: T. Cần xác định số lượng flip-flop. Vì có chu trình 00→01→10→11→00, tức là có 4 trạng thái, nên cần 2 flip-flop (ký hiệu là A, B).
    • Trạng thái: 00, 01, 10, 11.
    • Bảng trạng thái:
    Trạng thái hiện tại (A, B) Đầu vào (E, x) Trạng thái kế tiếp (A+, B+)
    00 0, 0 00 (giữ nguyên vì E=0)
    00 0, 1 00 (giữ nguyên vì E=0)
    00 1, 0 00 (giữ nguyên vì x=0)
    00 1, 1 01 (chuyển theo chu trình)
    01 0, 0 01 (giữ nguyên vì E=0)
    01 0, 1 01 (giữ nguyên vì E=0)
    01 1, 0 01 (giữ nguyên vì x=0)
    01 1, 1 10 (chuyển theo chu trình)
    10 0, 0 10 (giữ nguyên vì E=0)
    10 0, 1 10 (giữ nguyên vì E=0)
    10 1, 0 10 (giữ nguyên vì x=0)
    10 1, 1 11 (chuyển theo chu trình)
    11 0, 0 11 (giữ nguyên vì E=0)
    11 0, 1 11 (giữ nguyên vì E=0)
    11 1, 0 11 (giữ nguyên vì x=0)
    11 1, 1 00 (chuyển theo chu trình)
    • Bảng kích hoạt Flip-Flop T:

      • Q+ = Q ⊕ T (T = Q+ ⊕ Q)
      Trạng thái hiện tại (A, B) Đầu vào (E, x) Trạng thái kế tiếp (A+, B+) TA = A+ ⊕ A TB = B+ ⊕ B
      00 0, x 00 0 ⊕ 0 = 0 0 ⊕ 0 = 0
      00 1, 0 00 0 ⊕ 0 = 0 0 ⊕ 0 = 0
      00 1, 1 01 0 ⊕ 0 = 0 1 ⊕ 0 = 1
      01 0, x 01 0 ⊕ 0 = 0 1 ⊕ 1 = 0
      01 1, 0 01 0 ⊕ 0 = 0 1 ⊕ 1 = 0
      01 1, 1 10 1 ⊕ 0 = 1 0 ⊕ 1 = 1
      10 0, x 10 1 ⊕ 1 = 0 0 ⊕ 0 = 0
      10 1, 0 10 1 ⊕ 1 = 0 0 ⊕ 0 = 0
      10 1, 1 11 1 ⊕ 1 = 0 1 ⊕ 0 = 1
      11 0, x 11 1 ⊕ 1 = 0 1 ⊕ 1 = 0
      11 1, 0 11 1 ⊕ 1 = 0 1 ⊕ 1 = 0
      11 1, 1 00 0 ⊕ 1 = 1 0 ⊕ 1 = 1
    • Rút gọn hàm kích hoạt TA và TB:

      • TA = 0 (cho E=0, x=0, x=1) + 1 (cho E=1, x=1, trạng thái 00) + 0 (cho E=1, x=0, trạng thái 01) + 0 (cho E=1, x=1, trạng thái 10) + 1 (cho E=1, x=1, trạng thái 11)
      • Dựa trên bảng kích hoạt:

        • TA = 1 khi (A=0, B=0, E=1, x=1) hoặc (A=1, B=1, E=1, x=1)
        • TB = 1 khi (A=0, B=0, E=1, x=1) hoặc (A=0, B=1, E=1, x=1) hoặc (A=1, B=0, E=1, x=1) hoặc (A=1, B=1, E=1, x=1)
      • Ta có thể rút gọn bằng K-map cho TA và TB với các biến đầu vào là A, B, E, x.

        • TA: Bằng 1 khi E=1 và x=1 (tức là A luôn đổi khi E=1, x=1). Vậy TA = E x.
        • TB: Bằng 1 khi E=1 và x=1, bất kể trạng thái A, B. Vậy TB = E x.
    • Sơ đồ mạch: Hai flip-flop T, đầu vào E và x nối với nhau và nối với T của cả hai flip-flop. Đầu ra A và B là trạng thái của mạch.

4. Phân tích lệnh máy và truy cập bộ nhớ

Các bài tập này kiểm tra hiểu biết về cấu trúc lệnh, các chế độ địa chỉ và cách máy tính thực hiện các thao tác trên thanh ghi và bộ nhớ.

Các chế độ địa chỉ phổ biến:

  • Địa chỉ tức thời (Immediate): Toán hạng là một giá trị cụ thể (ví dụ: #1400).
  • Địa chỉ thanh ghi (Register Direct): Toán hạng là giá trị trong một thanh ghi (ví dụ: R1).
  • Địa chỉ thanh ghi gián tiếp (Register Indirect): Địa chỉ của toán hạng được chứa trong thanh ghi (ví dụ: @(R1) hoặc (R1)).
  • Địa chỉ có bù (Displacement Addressing / Indexed Addressing): Địa chỉ được tính bằng cách cộng một giá trị bù với nội dung của một thanh ghi (ví dụ: 200(R2) có nghĩa là địa chỉ = nội dung R2 + 200).

Phân tích lệnh (Đề I, Câu 4):
Giả sử R0 = 1600, R1 = 1400, R2 = 1200.
Ô nhớ tại 1400 có giá trị 50.
Ô nhớ tại 50 có giá trị 230.

  • a) ADD R1, 200(R2)

    • Toán hạng nguồn: 200(R2). Địa chỉ thực = Nội dung R2 + 200 = 1200 + 200 = 1400. Giá trị tại ô nhớ 1400 là 50.
    • Toán hạng đích: R1.
    • Lệnh: Cộng giá trị từ ô nhớ 1400 (là 50) vào thanh ghi R1.
    • Giá trị R1 sau lệnh: 1400 + 50 = 1450.
    • Địa chỉ thực của bộ nhớ cần truy cập: 1400.
  • b) MOVE 500(R0), R2

    • Toán hạng nguồn: R2. Giá trị là 1200.
    • Toán hạng đích: 500(R0). Địa chỉ thực = Nội dung R0 + 500 = 1600 + 500 = 2100.
    • Lệnh: Ghi giá trị từ R2 (là 1200) vào ô nhớ tại địa chỉ 2100.
    • Giá trị R2 sau lệnh: Không thay đổi (1200).
    • Địa chỉ thực của bộ nhớ cần truy cập: 2100.
  • c) ADD R1, @(R1)

    • Toán hạng nguồn: @(R1). Đây là chế độ địa chỉ thanh ghi gián tiếp. Địa chỉ của toán hạng được chứa trong R1. Địa chỉ này là 1400. Giá trị tại ô nhớ 1400 là 50.
    • Toán hạng đích: R1.
    • Lệnh: Cộng giá trị tại ô nhớ mà R1 trỏ tới (tức là giá trị tại địa chỉ 1400, là 50) vào thanh ghi R1.
    • Giá trị R1 sau lệnh: 1400 + 50 = 1450.
    • Địa chỉ thực của bộ nhớ cần truy cập: 1400.
  • d) LOAD R1, #1400

    • Toán hạng nguồn: #1400. Đây là giá trị tức thời (immediate). Giá trị là 1400.
    • Toán hạng đích: R1.
    • Lệnh: Tải giá trị tức thời 1400 vào thanh ghi R1.
    • Giá trị R1 sau lệnh: 1400.
    • Địa chỉ thực của bộ nhớ cần truy cập: Không có truy cập bộ nhớ trực tiếp cho toán hạng nguồn, chỉ tải giá trị từ lệnh.

5. Các thành phần chính của máy tính và nhiệm vụ của các thanh ghi

Các câu hỏi này mang tính lý thuyết, yêu cầu sinh viên nắm vững cấu trúc cơ bản của một hệ thống máy tính và vai trò của từng bộ phận.

  • Thành phần chính của máy tính: Bao gồm Bộ xử lý trung tâm (CPU), Bộ nhớ (RAM, ROM), Thiết bị nhập (bàn phím, chuột), Thiết bị xuất (màn hình, máy in), và Hệ thống Bus (kết nối các thành phần).
  • Chip Set: Tập hợp các mạch tích hợp trên bo mạch chủ, có nhiệm vụ điều phối luồng dữ liệu và giao tiếp giữa CPU, bộ nhớ, các thiết bị ngoại vi.
  • Lưu trữ dữ liệu: Được thực hiện ở Bộ nhớ chính (RAM – cho phép truy cập nhanh, dữ liệu tạm thời) và Bộ nhớ phụ (ổ cứng, SSD – lưu trữ lâu dài).
  • Thanh ghi CPU: Các vùng nhớ nhỏ, tốc độ cao nằm bên trong CPU, dùng để lưu trữ tạm thời dữ liệu và địa chỉ trong quá trình xử lý.
    • Thanh ghi IP (Instruction Pointer) / PC (Program Counter): Lưu trữ địa chỉ của lệnh tiếp theo sẽ được nạp và thực thi.
    • Thanh ghi DS (Data Segment): Lưu trữ địa chỉ cơ sở của đoạn dữ liệu trong bộ nhớ.
    • Thanh ghi CS (Code Segment): Lưu trữ địa chỉ cơ sở của đoạn mã chương trình trong bộ nhớ.
    • Thanh ghi trạng thái (Status Register / Flags Register): Lưu trữ các cờ (flag) cho biết kết quả của phép toán (ví dụ: cờ Zero, cờ Carry, cờ Sign, cờ Overflow).

Tóm lại, việc ôn tập kỹ lưỡng các kiến thức về biểu diễn số, mạch logic, cấu trúc lệnh và kiến trúc CPU là chìa khóa để làm tốt bài thi Kiến trúc Máy tính. Hãy thực hành giải nhiều dạng bài tập khác nhau để nâng cao kỹ năng và sự tự tin.

Trần Du cung cấp thông tin chi tiết và chuyên sâu về các lĩnh vực công nghệ.