CEA201 - Tổ chức và Kiến trúc máy tính
Chủ đề học tập
CEA201 Chương 1 - Nhập môn tổ chức và kiến trúc máy tính
Phân biệt hai khái niệm nền tảng: kiến trúc máy tính (computer architecture) là những thuộc tính mà người lập trình nhìn thấy và có ảnh hưởng trực tiếp tới việc thực thi chương trình - tập lệnh, số bit biểu diễn kiểu dữ liệu, cơ chế vào ra, kỹ thuật định địa chỉ; còn tổ chức máy tính (computer organization) là các đơn vị vận hành và liên kết giữa chúng để hiện thực hoá kiến trúc đó - tín hiệu điều khiển, giao diện, công nghệ bộ nhớ. Chương cũng trình bày cấu trúc và chức năng, bốn chức năng cơ bản của máy tính là xử lý dữ liệu, lưu trữ dữ liệu, di chuyển dữ liệu và điều khiển, các thành phần chính CPU - bộ nhớ chính - vào ra - liên kết hệ thống, cùng kiến trúc Von Neumann và Harvard.
CEA201 Chương 11 - Logic số
Nền tảng toán học và mạch của máy tính số. Phần đại số Boole trình bày các phép AND, OR, NOT, XOR, NAND, NOR, các định luật cơ bản cùng định luật De Morgan và cách lập bảng chân trị. Phần cổng logic mô tả ký hiệu, chức năng và tính đầy đủ chức năng của NAND và NOR. Phần mạch tổ hợp hướng dẫn đi từ đặc tả tới sơ đồ mạch: biểu diễn tổng các tích, tối thiểu hoá bằng bìa Karnaugh và phương pháp Quine - McCluskey, rồi hiện thực bằng các khối chức năng thông dụng gồm bộ giải mã, bộ dồn kênh, bộ cộng bán phần và toàn phần, ALU và PLA. Chương cũng giới thiệu mạch tuần tự với flip-flop, thanh ghi và bộ đếm.
CEA201 Chương 12 - Tập lệnh: đặc trưng và chức năng
Tập lệnh nhìn từ góc độ người thiết kế và người lập trình. Phần đặc trưng lệnh máy phân tích bốn thành phần của một lệnh gồm mã thao tác, tham chiếu toán hạng nguồn, tham chiếu toán hạng đích và tham chiếu lệnh kế tiếp, cùng ảnh hưởng của số lượng địa chỉ trong lệnh tới độ dài chương trình và độ phức tạp phần cứng. Phần kiểu toán hạng bàn về địa chỉ, số, ký tự và dữ liệu logic, cùng các kiểu dữ liệu cụ thể của x86 và ARM, kèm quy ước Big-endian và Little-endian. Phần kiểu phép toán liệt kê các nhóm chuyển dữ liệu, số học, logic, chuyển đổi, vào ra, điều khiển hệ thống và chuyển điều khiển với lời gọi thủ tục.
CEA201 Chương 13 - Tập lệnh: chế độ địa chỉ và định dạng
Cách một lệnh chỉ ra nơi lấy toán hạng và cách gói lệnh vào số bit hữu hạn. Phần chế độ địa chỉ trình bày và so sánh địa chỉ tức thì, trực tiếp, gián tiếp, thanh ghi, thanh ghi gián tiếp, dịch chuyển với ba biến thể relative, base-register và indexing, cùng chế độ ngăn xếp, kèm ưu nhược điểm và công thức tính địa chỉ hiệu dụng của từng chế độ. Phần định dạng lệnh bàn về độ dài lệnh, phân bổ bit cho trường mã thao tác và trường địa chỉ, mã thao tác mở rộng và lệnh độ dài thay đổi. Phần hợp ngữ giới thiệu cú pháp, nhãn, lệnh giả và vai trò của trình hợp dịch trong việc sinh mã máy.
CEA201 Chương 14 - Cấu trúc và chức năng bộ xử lý
Bên trong CPU. Phần tổ chức bộ xử lý mô tả ALU, đơn vị điều khiển, tập thanh ghi và các đường dữ liệu nội bộ. Phần tổ chức thanh ghi phân biệt thanh ghi người dùng nhìn thấy với thanh ghi điều khiển và trạng thái, giải thích vai trò của PC, IR, MAR, MBR và thanh ghi trạng thái chương trình PSW cùng các cờ. Phần chu kỳ lệnh trình bày biểu đồ trạng thái đầy đủ gồm cả chu kỳ gián tiếp và chu kỳ ngắt, kèm luồng dữ liệu ở từng giai đoạn. Phần đường ống lệnh phân tích cách chia lệnh thành nhiều tầng để tăng thông lượng, ba loại hazard cấu trúc - dữ liệu - điều khiển và các kỹ thuật dự đoán rẽ nhánh.
CEA201 Chương 15 - Máy tính tập lệnh rút gọn (RISC)
Cơ sở thực nghiệm và các lựa chọn thiết kế của kiến trúc RISC. Phần đặc trưng thực thi lệnh dựa trên thống kê tần suất các loại lệnh, số toán hạng và độ sâu lời gọi thủ tục để chỉ ra rằng phần lớn thời gian dành cho gán giá trị và gọi hàm với ít tham số. Từ đó chương lý giải hai hướng tối ưu: dùng tệp thanh ghi lớn với cơ chế cửa sổ thanh ghi chồng lấp cho tham số, và tối ưu thanh ghi dựa trên trình biên dịch bằng thuật toán tô màu đồ thị. Phần kiến trúc RISC trình bày các đặc điểm lệnh một chu kỳ, mô hình load/store, ít chế độ địa chỉ, định dạng lệnh đơn giản, pipeline RISC với delayed branch, và so sánh RISC với CISC.
CEA201 Chương 16 - Song song mức lệnh và bộ xử lý siêu vô hướng
Kỹ thuật cho phép nhiều lệnh độc lập được thực thi đồng thời. Phần tổng quan định nghĩa bộ xử lý siêu vô hướng với nhiều đường ống song song, phân biệt với siêu đường ống superpipelined, và tách bạch song song mức lệnh với song song mức máy. Phần vấn đề thiết kế phân tích năm ràng buộc gồm phụ thuộc dữ liệu thật, phụ thuộc thủ tục, xung đột tài nguyên, phụ thuộc ra và phản phụ thuộc, cùng các giải pháp: chính sách phát lệnh và hoàn thành theo hoặc không theo thứ tự, đổi tên thanh ghi để khử phụ thuộc giả, cửa sổ lệnh, thực thi suy đoán và dự đoán rẽ nhánh, minh hoạ trên Pentium 4 và ARM Cortex.
CEA201 Chương 17 - Xử lý song song
Các kiến trúc dùng nhiều bộ xử lý. Chương mở đầu bằng phân loại Flynn với bốn nhóm SISD, SIMD, MISD và MIMD, rồi phân biệt hệ ghép chặt và ghép lỏng. Phần đa xử lý đối xứng SMP trình bày tổ chức bus chung, ưu nhược điểm và các vấn đề thiết kế của hệ điều hành đa xử lý. Phần kết hợp cache giải thích vì sao nhiều bản sao của cùng một dòng dữ liệu có thể mất đồng bộ, các giải pháp phần mềm và phần cứng, giao thức snoopy, giao thức thư mục và đặc biệt là bốn trạng thái Modified - Exclusive - Shared - Invalid của giao thức MESI. Phần cuối bàn về đa luồng, chip đa xử lý, cụm máy tính, NUMA và CC-NUMA.
CEA201 Chương 18 - Máy tính đa lõi
Vì sao ngành công nghiệp chuyển từ tăng xung nhịp sang tăng số lõi và hệ quả của lựa chọn đó. Phần hiệu năng phần cứng phân tích giới hạn của việc tăng độ phức tạp và tần số: độ trễ dây dẫn, mật độ tích hợp, mật độ công suất và toả nhiệt, cùng quy luật hiệu năng trên watt. Phần hiệu năng phần mềm áp dụng luật Amdahl cho hệ đa lõi để chỉ ra phần mã tuần tự nhỏ cũng đủ chặn tăng tốc, kèm các lớp ứng dụng thực sự hưởng lợi từ đa lõi. Phần tổ chức đa lõi so sánh các phương án cache riêng cho từng lõi, chia sẻ L2 hoặc chia sẻ L3, kiến trúc đồng nhất và không đồng nhất, minh hoạ bằng Intel Core i7 và ARM11 MPCore.
CEA201 Chương 2 - Tiến hoá máy tính và hiệu năng
Lịch sử máy tính qua các thế hệ: máy đèn điện tử với ENIAC và máy IAS của Von Neumann, thế hệ transistor, mạch tích hợp IC, rồi VLSI và bộ vi xử lý, kèm định luật Moore. Phần thiết kế vì hiệu năng bàn về khoảng cách ngày càng lớn giữa tốc độ bộ xử lý và tốc độ bộ nhớ, các biện pháp cân bằng như cache nhiều mức, bus rộng hơn và bộ nhớ phân cấp, cùng giới hạn về công suất và khả năng mở rộng. Chương giới thiệu ba hướng tổ chức multicore, MIC và GPGPU, và kết thúc bằng đánh giá hiệu năng: xung nhịp, CPI, MIPS, MFLOPS, luật Amdahl, luật Little, trung bình số học - điều hoà - nhân và bộ benchmark SPEC.
CEA201 Chương 3 - Chức năng và liên kết ở mức đỉnh
Nhìn máy tính ở mức tổng thể qua ba nội dung. Thứ nhất là các thành phần máy tính và cách chúng phối hợp trong kiến trúc chương trình lưu trữ. Thứ hai là chức năng máy tính với chu kỳ lệnh fetch - execute, biểu đồ trạng thái chu kỳ lệnh, cơ chế ngắt và tại sao ngắt lại cần thiết để tránh lãng phí thời gian chờ thiết bị chậm, cách xử lý nhiều ngắt theo kiểu tuần tự hoặc lồng nhau theo mức ưu tiên. Thứ ba là cấu trúc liên kết và bus: đường dữ liệu, đường địa chỉ, đường điều khiển, phân cấp bus, phân xử bus tập trung và phân tán, định thời đồng bộ và bất đồng bộ, chuẩn PCI và liên kết điểm - điểm QPI.
CEA201 Chương 4 - Bộ nhớ cache
Tổng quan hệ thống bộ nhớ máy tính theo các đặc trưng vị trí, dung lượng, đơn vị truyền, phương thức truy cập, hiệu năng và tính khả biến, từ đó dẫn tới phân cấp bộ nhớ và nguyên lý cục bộ về thời gian lẫn không gian - cơ sở khiến cache hoạt động hiệu quả. Chương trình bày nguyên lý cache với khái niệm khối, dòng và tag, rồi đi vào các phần tử thiết kế: kích thước cache, ba kiểu ánh xạ trực tiếp - liên kết hoàn toàn - liên kết tập hợp, thuật toán thay thế LRU, FIFO, LFU và ngẫu nhiên, chính sách ghi write-through và write-back, kích thước dòng, số mức cache L1 L2 L3, cache thống nhất và tách rời, cùng cách tính tỉ lệ trúng và thời gian truy cập trung bình.
CEA201 Chương 5 - Bộ nhớ trong
Bộ nhớ bán dẫn và cách tổ chức nó. Phần đầu so sánh RAM động DRAM với RAM tĩnh SRAM về cấu tạo tế bào, nhu cầu làm tươi, tốc độ và giá thành, cùng họ bộ nhớ chỉ đọc ROM, PROM, EPROM, EEPROM và flash; kèm tổ chức chip nhớ, giải mã địa chỉ hai chiều và cách ghép nhiều chip thành module. Phần thứ hai về phát hiện và sửa lỗi: bit chẵn lẻ, mã Hamming, sơ đồ SEC-DED sửa một bit và phát hiện hai bit, cách tính số bit kiểm tra cần thiết. Phần cuối trình bày các tổ chức DRAM tiên tiến gồm SDRAM đồng bộ, DDR và các thế hệ DDR2 DDR3 DDR4, cùng luồng dữ liệu từ RAM qua cache tới CPU.
CEA201 Chương 6 - Bộ nhớ ngoài
Các phương tiện lưu trữ ngoài và đặc tính hiệu năng của chúng. Đĩa từ được trình bày từ cấu tạo đầu đọc ghi, track, sector, cách bố trí CAV và ghi nhiều vùng, tới ba thành phần của thời gian truy cập là seek time, rotational latency và transfer time, cùng ảnh hưởng của tốc độ quay. Tiếp đó là RAID với bảy mức từ RAID 0 đến RAID 6, ba kỹ thuật nền tảng striping, mirroring và parity, cùng đánh đổi giữa dung lượng, hiệu năng và khả năng chịu lỗi. Chương khép lại bằng ổ thể rắn SSD dựa trên flash NAND, cơ chế wear leveling, so sánh SSD với HDD cho người dùng phổ thông và cho trung tâm dữ liệu, cùng đĩa quang và băng từ.
CEA201 Chương 7 - Vào ra (Input/Output)
Cách bộ xử lý trao đổi dữ liệu với thế giới bên ngoài. Chương bắt đầu từ thiết bị ngoại vi và lý do cần module vào ra làm trung gian, cùng các chức năng của module: điều khiển và định thời, giao tiếp với bộ xử lý, giao tiếp với thiết bị, đệm dữ liệu và phát hiện lỗi. Ba kỹ thuật vào ra được so sánh trực tiếp: vào ra bằng chương trình với vòng lặp thăm dò gây lãng phí CPU, vào ra điều khiển bằng ngắt cùng các cách xác định thiết bị gây ngắt và phân mức ưu tiên, và truy nhập bộ nhớ trực tiếp DMA với kỹ thuật đánh cắp chu kỳ. Phần cuối giới thiệu kênh và bộ xử lý vào ra, giao diện ngoài, USB và InfiniBand.
CEA201 Chương 8 - Hỗ trợ hệ điều hành
Những đặc tính phần cứng mà hệ điều hành dựa vào, nhìn từ góc độ kiến trúc máy tính. Phần tổng quan trình bày mục tiêu và chức năng của hệ điều hành, quá trình tiến hoá từ xử lý theo lô đơn giản tới đa chương và chia sẻ thời gian, cùng khái niệm tiến trình, các trạng thái tiến trình và khối điều khiển tiến trình PCB. Phần lập lịch phân biệt lập lịch dài hạn, trung hạn và ngắn hạn cùng các thuật toán FCFS, SJF, Round Robin và theo độ ưu tiên. Phần quản lý bộ nhớ đi từ hoán đổi và phân vùng tới phân trang, bộ nhớ ảo, bảng trang, bộ đệm TLB, phân đoạn và các chiến lược thay trang.
CEA201 Thực hành - Hợp ngữ và mô phỏng MARIE
Khối thực hành sáu buổi của môn, gắn với CLO7 và CLO10. Sinh viên làm việc trên bộ mô phỏng MARIE để thấy trực tiếp cách một máy tính chương trình lưu trữ hoạt động: kiến trúc MARIE với AC, MAR, MBR, PC, IR và InREG OutREG; tập lệnh Load, Store, Add, Subt, Input, Output, Halt, Skipcond, Jump, JnS, Clear, AddI và JumpI; chu kỳ fetch - decode - execute mô tả bằng ngôn ngữ truyền thanh ghi RTL. Nội dung thực hành gồm viết, hợp dịch và chạy từng bước chương trình hợp ngữ, theo dõi giá trị thanh ghi và ô nhớ, hiện thực rẽ nhánh và vòng lặp bằng Skipcond, gọi chương trình con bằng JnS, cùng bài tập mô phỏng cache trên ParaCache Simulator để quan sát ảnh hưởng của kích thước khối và độ liên kết tới tỉ lệ trúng.