Kiến thức Toàn diện về Kiến trúc Hệ thống Máy tính (ASA)
Giới thiệu và Các Yêu cầu của Môn học
Kiến thức nền tảng yêu cầu: Sinh viên cần có kiến thức về: * Tổ chức và Kiến trúc Máy tính: Bao gồm logic tổ hợp/tuần tự, bộ xử lý (processor), bộ nhớ (memory), và hợp ngữ (assembly language). * Cấu trúc Dữ liệu và Giải thuật: Khả năng phân tích độ phức tạp của thuật toán và triển khai mã nguồn hiệu quả. * Hệ điều hành: Hiểu biết về lập lịch tác vụ (task scheduling), quản lý bộ xử lý, quản lý bộ nhớ và điều khiển thiết bị I/O.
Nội dung cốt lõi của môn học: * Lịch sử tóm tắt và các khái niệm cơ bản về kiến trúc hệ thống. * Nguyên lý Tập lệnh (Instruction Set Principles): Phân loại, chế độ địa chỉ (addressing modes), toán hạng (operands), luồng điều khiển (control flow), định dạng lệnh và vai trò quan trọng của trình biên dịch (compiler). * Pipelining (Đường ống): Các khái niệm cơ bản, các loại rủi ro (hazards - structural, data, control) và chiến lược dự đoán nhánh (branch prediction). * Hệ thống phân cấp bộ nhớ: Cơ chế bộ nhớ Cache, bộ nhớ ảo (virtual memory) và các kỹ thuật quản lý bộ nhớ. * Đa xử lý và Kiến trúc song song: Nghiên cứu về Multiprocessors. * Kiến trúc tiên tiến: Superscalar và VLIW (Very Long Instruction Word). * Các lĩnh vực mới: Chip AI và bảo thực hệ thống.
Khái niệm và Vai trò của Kiến trúc Máy tính
Sự thay đổi định nghĩa theo thời gian: * Thập niên 1950 - 1960: Tập trung vào Số học Máy tính (Computer Arithmetic). * Thập niên 1970 - giữa 1980: Trọng tâm là Thiết kế Tập lệnh (Instruction Set Design). * Thập niên 1990: Mở rộng sang Thiết kế CPU, bộ nhớ, hệ thống I/O, Đa xử lý và Mạng. * Thập niên 2000: Kỷ nguyên thiết kế đa lõi (multi-core), mạng trên chip (network-on-chip), lập trình song song và các kỹ thuật giảm điện năng tiêu thụ. * Thập niên 2010: Ưu tiên xử lý di động, thiết kế điện năng thấp và hệ thống tự thích ứng (self-adaptive systems). * Thập niên 2020: Kỷ nguyên của Chip AI và Điện toán lượng tử.
Định nghĩa hiện đại: Kiến trúc máy tính là việc thiết kế và kỹ thuật hóa các cấp độ khác nhau của một hệ thống máy tính nhằm tối đa hóa hiệu suất (performance) và khả năng lập trình (programmability) trong các giới hạn khắt khe về công nghệ (technology) và chi phí (cost).
Cấp độ Trừu tượng (Levels of Abstraction): Hệ thống máy tính được phân tầng để che giấu sự phức tạp của tầng dưới đối với tầng trên: * Ứng dụng (Application) * Hệ điều hành (Operating System) * Trình biên dịch (Compiler) * Firmware * Kiến trúc Tập lệnh (ISA - Instruction Set Architecture): Đây là giao diện trừu tượng hóa giữa phần cứng và phần mềm, cho phép các triển khai phần cứng khác nhau (về chi phí/hiệu suất) chạy cùng một phần mềm. * Bộ xử lý Tập lệnh / Hệ thống I/O * Luồng dữ liệu và Điều khiển (Datapath & Control) * Thiết kế Kỹ thuật số (Digital Design) * Thiết kế Mạch (Circuit Design) * Layout
Nhiệm vụ của Người thiết kế Máy tính: * Xác định các thuộc tính quan trọng cho máy tính mới. * Thiết kế hệ thống để tối đa hóa hiệu suất trên giá thành (cost-performance). * Thực hiện thiết kế tập lệnh, tổ chức chức năng, thiết kế logic và triển khai vật lý (thiết kế vi mạch, đóng gói, quản lý năng lượng, hệ thống làm mát).
Lịch sử và Sự Tiến hóa của Vi xử lý
Thời kỳ "Big Iron": Sử dụng ống chân không, rơ-le điện và thiết bị lưu trữ từ tính cồng kềnh. Giai đoạn này chưa có vi xử lý hay bộ nhớ hiện đại. Ví dụ: ENIAC (1945), IBM Mark 1 (1944).
Kiến trúc Von Neumann: John von Neumann phát minh ra kiến trúc lưu trữ chương trình đầu tiên với máy EDSAC (1949). Đây là nền tảng mà hầu hết máy tính hiện nay vẫn sử dụng.
Sự ra đời của Vi xử lý (Intel 4004 - 1971): * Số lượng bóng bán dẫn: * Diện tích die: * Tốc độ xung nhịp:
Sự phát triển của dòng Intel x86: * 8086 (1978): bóng bán dẫn, . Là bộ xử lý 16-bit đầu tiên, nền tảng cho IBM PC và DOS. Không gian địa chỉ . * 80386 (1985): bóng bán dẫn, . Bộ xử lý 32-bit đầu tiên (IA32), hỗ trợ "địa chỉ phẳng" và chạy được Unix. * Pentium 4E (2004): bóng bán dẫn, . Bộ xử lý x86 64-bit đầu tiên (x86-64). * Core 2 (2006): bóng bán dẫn, . Bộ xử lý đa lõi đầu tiên của Intel. * Core i7 (2008): bóng bán dẫn, . Thiết kế bốn lõi.
Định luật Moore và Xu hướng Công nghệ
- Định luật Moore (1965): Số lượng bóng bán dẫn trên các mạch tích hợp hiệu quả về chi phí sẽ tăng gấp đôi sau mỗi tháng (Gordon Moore).
- Xu hướng kích thước tuyến tính: Chiều rộng dây hẹp nhất giảm từ (1971) xuống các mức cực nhỏ như (tương đương độ rộng nguyên tử). Các thế hệ chip mới như Arrow Lake (2024) đạt mức và Panther Lake (2026) hướng tới .
- Thách thức hiện tại: Số lượng bóng bán dẫn không còn là rào cản duy nhất (Chip M2 Ultra đã đạt bóng bán dẫn). Các vấn đề lớn hiện nay là nồng độ năng lượng, nhiệt độ, độ trễ và sự thiếu hụt tính song song. Giải pháp bao gồm công nghệ chip 3D, kết nối quang trên chip và thiết kế đa lõi.
- Tình trạng kỹ thuật năm 2026: Intel Panther Lake dự kiến ra mắt trên tiến trình Intel 18A, cấu hình tối đa có thể đạt , hỗ trợ NPU 5 và LPDDR5X.
Bức tường Điện năng và Kỷ nguyên Đa lõi
Hiệu suất Đơn lõi (Uniprocessor Performance): Tăng trưởng mạnh mẽ (1978-1986), vọt lên (1986-2002), nhưng đã chững lại đáng kể sau năm 2002 do các giới hạn vật lý.
Khái niệm các "Bức tường" (The Brick Wall): * Bức tường Điện năng (Power Wall): Mật độ điện năng tăng vọt từ mức bếp điện nóng (hot plate) đến mức lò phản ứng hạt nhân, vòi phun tên lửa và bề mặt mặt trời. Quan niệm cũ coi bóng bán dẫn đắt và điện miễn phí đã đảo ngược thành bóng bán dẫn miễn phí nhưng điện năng rất đắt. * Bức tường ILP (ILP Wall): Quy luật hiệu suất giảm dần khi cố gắng thêm phần cứng để khai thác song song mức lệnh (Instruction Level Parallelism). * Bức tường Bộ nhớ (Memory Wall): Khoảng cách hiệu suất quá lớn giữa CPU và RAM. Phép nhân chỉ mất chu kỳ trong khi truy cập DRAM mất tới chu kỳ.
Sự chuyển dịch sang Đa lõi (Multicore): Thay vì một bộ xử lý phức tạp, thiết kế chuyển sang sử dụng nhiều bộ xử lý đơn giản hơn trên cùng một chip để đạt hiệu quả năng lượng cao hơn. * Ví dụ: Intel 80-core (2007), Intel Single-Chip Cloud Computer (2010) với 48 lõi. * Thách thức lớn: Thuật toán, ngôn ngữ lập trình, trình biên dịch và hệ điều hành hiện tại chưa sẵn sàng cung cấp Thread Level Parallelism (song song mức luồng) cho quy mô hàng nghìn CPU.
Chu trình Thiết kế, Chi phí và Hiệu suất
Vòng lặp Thiết kế 3 Bước: 1. Hiệu suất (Performance): Đo lường hệ thống hiện có để tìm nút thắt (bottlenecks) qua Benchmarks. 2. Công nghệ (Technology): Mô phỏng thiết kế và tổ chức mới dựa trên xu hướng công nghệ. 3. Chi phí (Cost): Triển khai hệ thống thế hệ tiếp theo với mục tiêu hiệu quả chi phí cao nhất.
Đo lường Hiệu suất: * Độ trễ (Latency/Response Time): Thời gian hoàn thành một tác vụ. * Thông lượng (Throughput): Số lượng tác vụ hoàn thành trong một đơn vị thời gian (ví dụ: kết quả/giây). * Ví dụ Boeing 747 vs Concorde: * Concorde nhanh hơn về độ trễ (: so với ). * Boeing 747 nhanh hơn về thông lượng (: chở nhiều khách hơn trên mỗi đơn vị thời gian).
Phân tích Chi phí: * Price vs Cost: Giá bán ra (Price) bao gồm chi phí sản xuất (Cost) cộng với lợi nhuận gộp, chiết khấu và chi phí nghiên cứu (R&D). * Đường cong học tập (Learning Curve): Khi sản lượng (volume) tăng gấp đôi, chi phí sản xuất thường giảm khoảng . * Chi phí Mạch tích hợp (IC Cost): * * * Die Yield: Phụ thuộc vào mật độ lỗi (Defect density) và diện tích của die.
Thống kê thời gian UNIX (UNIX Time Command): * User CPU Time: Thời gian CPU chạy mã của chương trình người dùng. * System CPU Time: Thời gian CPU thực hiện các tác vụ hệ điều hành theo yêu cầu của chương trình. * Elapsed Time: Tổng thời gian thực tế trôi qua từ lúc bắt đầu đến khi kết thúc. * Tỷ lệ CPU ():
Phương trình CPU và Các Yếu tố Tác động
Phương trình Hiệu suất CPU cơ bản: * * Trong đó là số chu kỳ trung bình cho mỗi lệnh (Cycles Per Instruction).
Các yếu tố ảnh hưởng: * Chương trình (Program): Ảnh hưởng đến số lượng lệnh và CPI. * Trình biên dịch (Compiler): Ảnh hưởng đến số lượng lệnh và CPI. * Kiến trúc Tập lệnh (ISA): Ảnh hưởng đến cả 3 yếu tố (số lệnh, CPI, và chu kỳ xung nhịp). * Tổ chức thiết kế CPU (Organization): Ảnh hưởng đến CPI và chu kỳ xung nhịp. * Công nghệ vi mạch (Technology): Chủ yếu ảnh hưởng đến chu kỳ xung nhịp (tần số).
Tính CPI trung bình cho nhiều loại lệnh: * * Với là tần suất (tỷ lệ) lệnh loại thực hiện.
Định luật Amdahl và Các Nguyên lý Thiết kế
Phát biểu Định luật Amdahl: Mức độ cải thiện hiệu năng đạt được khi sử dụng một phương pháp thực thi nhanh hơn sẽ bị giới hạn bởi phần thời gian mà phương pháp đó thực sự được sử dụng. * * Trong đó là phần thời gian được cải tiến (fraction enhanced) và là hệ số tăng tốc của phần đó (speedup enhanced).
Nguyên lý "Make The Common Case Fast": Luôn tập trung tối ưu hóa những trường hợp xảy ra thường xuyên nhất vì chúng mang lại hiệu quả tăng tốc tổng thể cao nhất.
Tính cục bộ của chương trình (Locality): * 90/10 rule: thời gian chạy tập trung trong mã chương trình. * Spatial Locality (Cục bộ không gian): Nếu một ô nhớ được truy cập, các ô lân cận nó có khả năng cao sẽ được truy cập sớm. * Temporal Locality (Cục bộ thời gian): Nếu dữ liệu vừa được truy cập, nó có khả năng cao sẽ được dùng lại trong tương lai gần. * Ứng dụng: Xây dựng hệ thống phân cấp bộ nhớ (Memory Hierarchy): Thanh ghi (Registers) Cache RAM Disk.
Chỉ số Tiếp thị và Benchmark
MIPS (Millions of Instructions Per Second): * * Nhược điểm: Không phản ánh chính xác hiệu năng nếu tập lệnh (ISA) hoặc trình biên dịch khác nhau. Một máy có MIPS cao hơn có thể chạy chậm hơn do thực hiện nhiều lệnh thừa.
MFLOPS (Millions of Floating Point Operations Per Second): * Thước đo số triệu phép toán dấu chấm động mỗi giây. Tốt hơn MIPS khi so sánh giữa các máy có ISA khác nhau nhưng vẫn phụ thuộc vào hỗn hợp lệnh (mix of operations) trong chương trình.
Bộ Benchmark SPEC (Standard Performance Evaluation Corporation): * Là tiêu chuẩn công nghiệp hiện nay để đánh giá CPU desktop và server qua các ứng dụng thực tế. * Bao gồm các bài kiểm tra số nguyên (SPECint) và số thực (SPECfp). * Các thế hệ: SPEC89, SPEC92, SPEC95, SPEC2000, SPECCPU2006. * Cung cấp các chỉ số cơ sở (base) với thiết lập trình biên dịch cố định để đảm bảo tính công bằng.
Câu hỏi & Thảo luận
- Q: Trọng tâm của KTMT thập niên 2000 là gì? * A: Thiết kế đa lõi (Multi-core) và mạng trên chip.
- Q: Mục đích chính của "tầng trừu tượng"? * A: Che giấu các chi tiết phức tạp của tầng dưới đối với tầng trên.
- Q: Giao diện trực tiếp giữa Phần mềm và Phần cứng? * A: Kiến trúc Tập lệnh (ISA).
- Q: "Brick Wall" gồm những gì? * A: Power Wall + ILP Wall + Memory Wall.
- Q: "Power Wall" ám chỉ giới hạn nào? * A: Mật độ điện năng tỏa nhiệt quá cao, gây nguy cơ nóng chảy chip.
- Q: Thách thức lớn nhất của ManyCore? * A: Phần mềm (thuật toán, trình biên dịch, OS) chưa sẵn sàng khai thác tính song song mức luồng cho hàng nghìn lõi.
- Q: Yếu tố quyết định Die Yield? * A: Mật độ lỗi (Defect density) và diện tích Die.
- Q: Tính CPU Time với bài tập: lệnh, , . * A: (1 ms).
- Q: Tính Speedup Amdahl: Thay CPU FP nhanh gấp 4, phần FP chiếm thời gian? * A: .