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ế, xây dựng và tối ưu hóa các hệ thống máy tính để đáp ứng các yêu cầu về hiệu năng, khả năng mở rộng, bảo mật và tiết kiệm năng lượng. 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ệ điều hành và kiến trúc phần mềm.
Thực hành kiến trúc máy tính là quá trình áp dụng các nguyên lý, kỹ thuật và công cụ của kiến trúc máy tính để thiết kế, xây dựng và kiểm tra các hệ thống máy tính thực tế. Thực hành kiến trúc máy tính đòi hỏi các kỹ năng phân tích, thiết kế, lập trình, gỡ lỗi và tối ưu hóa. Thực hành kiến trúc máy tính cũng liên quan đến việc nắm bắt các yêu cầu của người dùng, đánh giá các giải pháp có sẵn và đề xuất các giải pháp mới.
Nội dung học của môn thực hành kiến trúc máy tính bao gồm các chủ đề sau:
– Các thành phần cơ bản của một hệ thống máy tính: CPU, bộ nhớ, đĩa cứng, card mạng, card đồ họa, card âm thanh, v.v.
– Các nguyên lý hoạt động của các thành phần cơ bản: luồng dữ liệu, luồng điều khiển, giao tiếp giữa các thành phần, v.v.
– Các mô hình kiến trúc vi xử lý: von Neumann, Harvard, RISC, CISC, VLIW, SIMD, MIMD, v.v.
– Các kỹ thuật thiết kế vi xử lý: pipeline, cache, branch prediction, out-of-order execution, superscalar, multicore, v.v.
– Các kỹ thuật tối ưu hóa hiệu năng vi xử lý: parallelism, concurrency, vectorization, prefetching, speculation, v.v.
– Các kỹ thuật tối ưu hóa tiết kiệm năng lượng vi xử lý: dynamic voltage and frequency scaling (DVFS), clock gating, power gating, thermal management, v.v.
– Các nguyên lý hoạt động của bộ nhớ: hierarchical memory system, memory mapping, virtual memory, paging, segmentation, v.v.
– Các kỹ thuật thiết kế bộ nhớ: cache coherence and consistency protocols (MESI), memory interleaving and banking (RAID), error correction codes (ECC), wear leveling and garbage collection (SSD), v.v.
– Các kỹ thuật tối ưu hóa hiệu năng bộ nhớ: cache replacement policies (LRU), cache prefetching and bypassing (streaming), memory compression and deduplication (ZFS), v.v.
– Các nguyên lý hoạt động của đường truyền: bus architecture and arbitration protocols (PCI), point-to-point interconnects and routing protocols (InfiniBand), network-on-chip and topology design (Mesh), v.v.
– Các kỹ thuật thiết kế đường truyền: serial and parallel transmission modes (SATA), encoding and modulation schemes (NRZ), flow control and congestion control mechanisms (TCP), v.v.
– Các kỹ thuật tối ưu hóa hiệu năng đường truyền: buffering and queuing strategies (FIFO), multiplexing and switching techniques (TDM), routing and load balancing algorithms (Dijkstra), v.v.
– Các nguyên lý hoạt động của hệ điều hành: process and thread management, scheduling and synchronization, memory management and protection, file system and I/O management, v.v.
– Các kỹ thuật thiết kế hệ điều hành: kernel architecture and design patterns (monolithic, microkernel, hybrid), system call interface and implementation (syscall, trap, interrupt), device driver model and framework (Linux), v.v.
– Các kỹ thuật tối ưu hóa hiệu năng hệ điều hành: virtualization and containerization technologies (VMware, Docker), distributed and cloud computing paradigms (MapReduce, Spark), security and reliability mechanisms (encryption, replication), v.v.
– Các nguyên lý hoạt động của phần mềm: software development life cycle, software engineering principles and practices, software design patterns and paradigms, software testing and debugging methods, v.v.
– Các kỹ thuật thiết kế phần mềm: programming languages and compilers, data structures and algorithms, software architectures and frameworks, software tools and environments, v.v.
– Các kỹ thuật tối ưu hóa hiệu năng phần mềm: code optimization techniques (loop unrolling, inlining), parallel programming models (OpenMP, MPI), performance analysis tools (gprof, perf), v.v.
Môn thực hành kiến trúc máy tính giúp sinh viên nâng cao kiến thức và kỹ năng về cách thiết kế, xây dựng và tối ưu hóa các hệ thống máy tính hiện đại. Môn học cũng giúp sinh viên phát triển tư duy phân tích, sáng tạo và giải quyết vấn đề trong lĩnh vực kiến trúc máy tính. Môn học cũng là cơ sở để sinh viên tiếp cận các chủ đề nâng cao và ứng dụng của kiến trúc máy tính trong các lĩnh vực khác như trí tuệ nhân tạo, khoa học dữ liệu, an toàn thông tin và mạng máy tính.