Kiến trúc máy tính là một lĩnh vực nghiên cứu về cách thiết kế, cấu trúc và hoạt động của các hệ thống máy tính. Kiến trúc máy tính bao gồm nhiều khía cạnh, như kiến trúc vi xử lý, kiến trúc bộ nhớ, kiến trúc đường truyền, kiến trúc hệ thống nhập/xuất, kiến trúc song song và phân tán, và kiến trúc phần mềm.
Nhập môn kiến trúc máy tính là một môn học cơ bản cho sinh viên ngành công nghệ thông tin, điện tử viễn thông, và các ngành liên quan. Mục tiêu của môn học này là giới thiệu cho sinh viên các khái niệm, nguyên lý và ứng dụng của kiến trúc máy tính trong thực tế. Nội dung học của môn học này bao gồm:
– Giới thiệu về kiến trúc máy tính: khái niệm, lịch sử, phân loại, xu hướng và tác động của kiến trúc máy tính đối với hiệu năng, hiệu quả và khả năng mở rộng của các hệ thống máy tính.
– Kiến trúc vi xử lý: cấu trúc và hoạt động của các thành phần cơ bản của vi xử lý, như bộ đăng ký, bộ giải mã lệnh, bộ thực hiện lệnh, bộ điều khiển, và bộ nhớ đệm. Các loại vi xử lý khác nhau, như vi xử lý CISC, RISC, VLIW, và SIMD. Các kỹ thuật tăng tốc vi xử lý, như ống dẫn (pipeline), đa luồng (multithreading), đa nhân (multicore), và siêu vô tuyến (superscalar).
– Kiến trúc bộ nhớ: cấu trúc và hoạt động của các loại bộ nhớ khác nhau, như bộ nhớ chính (RAM), bộ nhớ ngoài (ROM), bộ nhớ đĩa (disk), và bộ nhớ flash. Các kỹ thuật quản lý bộ nhớ, như phân trang (paging), phân đoạn (segmentation), và bảng tra cứu (lookup table). Các kỹ thuật tối ưu hóa bộ nhớ, như bộ nhớ đệm (cache), bộ nhớ ảo (virtual memory), và bộ nhớ liên kết (associative memory).
– Kiến trúc đường truyền: cấu trúc và hoạt động của các loại đường truyền khác nhau, như đường truyền song song (parallel bus), đường truyền nối tiếp (serial bus), đường truyền điểm-điểm (point-to-point link), và đường truyền vòng (ring network). Các kỹ thuật điều khiển đường truyền, như điều khiển theo thời gian (time division multiplexing), điều khiển theo tín hiệu (signal division multiplexing), và điều khiển theo ưu tiên (priority arbitration). Các kỹ thuật tăng tốc đường truyền, như chia sẻ tài nguyên (resource sharing), chuyển tiếp thông tin (message passing), và chuyển tiếp nhanh (fast forwarding).
– Kiến trúc hệ thống nhập/xuất: cấu trúc và hoạt động của các loại thiết bị nhập/xuất khác nhau, như bàn phím, chuột, màn hình, loa, máy in, và máy quét. Các kỹ thuật giao tiếp giữa vi xử lý và thiết bị nhập/xuất, như giao tiếp theo chương trình (programmed I/O), giao tiếp ngắt (interrupt-driven I/O), và giao tiếp trực tiếp bộ nhớ (direct memory access). Các kỹ thuật tối ưu hóa hệ thống nhập/xuất, như đệm dữ liệu (buffering), đồng bộ hóa (synchronization), và nén dữ liệu (compression).
– Kiến trúc song song và phân tán: cấu trúc và hoạt động của các loại hệ thống song song và phân tán khác nhau, như hệ thống đa xử lý (multiprocessor system), hệ thống đa máy tính (multicomputer system), hệ thống lưới (grid system), và hệ thống đám mây (cloud system). Các kỹ thuật phân chia công việc, như phân chia tĩnh (static partitioning), phân chia động (dynamic partitioning), và phân chia thích ứng (adaptive partitioning). Các kỹ thuật cân bằng tải, như cân bằng tải toàn cục (global load balancing), cân bằng tải cục bộ (local load balancing), và cân bằng tải dựa trên ngữ cảnh (context-aware load balancing).
– Kiến trúc phần mềm: cấu trúc và hoạt động của các loại phần mềm khác nhau, như hệ điều hành, trình biên dịch, trình thông dịch, trình liên kết, và trình nạp. Các kỹ thuật thiết kế phần mềm, như thiết kế theo mô-đun (modular design), thiết kế theo lớp (layered design), thiết kế theo đối tượng (object-oriented design), và thiết kế theo thành phần (component-based design). Các kỹ thuật kiểm tra và đảm bảo chất lượng phần mềm, như kiểm tra đơn vị (unit testing), kiểm tra tích hợp (integration testing), kiểm tra hệ thống (system testing), và kiểm tra chấp nhận (acceptance testing).
Qua môn học này, sinh viên sẽ có được kiến thức cơ bản về kiến trúc máy tính, nắm được các nguyên lý và ứng dụng của kiến trúc máy tính trong thực tế, và có khả năng phân tích, so sánh, và đánh giá các giải pháp kiến trúc máy tính khác nhau. Sinh viên cũng sẽ có được kỹ năng tự học, tự nghiên cứu, và tự giải quyết các vấn đề liên quan đến kiến trúc máy tính.