Giáo Trình Kiến Trúc Máy Tính: Cẩm Nang Dành Cho Ngành Công Nghệ Thông Tin

Giáo trình kiến trúc máy tính của TS Lê Văn Quốc Anh và TS Trần Thiên Thanh cung cấp kiến thức chuyên sâu về thiết kế và cấu trúc máy tính.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Giáo Trình
138
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI NÓI ĐẦU

1. CHƯƠNG 1: TỔNG QUAN CẤU TRÚC MÁY TÍNH, LỊCH SỬ PHÁT TRIỂN

1.1. Ngôn ngữ, cấp máy và máy ảo

1.2. Phần cứng và phần mềm

1.3. Tổ chức hệ thống máy tính

1.3.1. Một số thuật ngữ

1.3.2. Tổ chức máy tính

1.4. Các thế hệ máy tính

1.4.1. Thế hệ thứ nhất

1.4.2. Thế hệ thứ hai

1.4.3. Thế hệ thứ ba

1.4.4. Thế hệ thứ tư

1.5. Hệ số đếm

1.5.1. Hệ thập phân

1.5.2. Hệ nhị phân

1.5.3. Chuyển đổi giữa nhị phân và thập phân

1.5.4. Hệ thập lục phân

1.6. Câu hỏi, bài tập chương I

2. CHƯƠNG 2: TỔNG QUAN CHỨC NĂNG MỨC CAO CỦA MÁY TÍNH

2.1. Các thành phần của máy tính

2.2. Kiến trúc von Neumann

2.3. Kiến trúc Harvard

2.4. Chức năng của máy tính

2.5. Cấu trúc kết nối nội

2.5.1. Kiến trúc IAS

2.5.2. Kiến trúc Harvard

2.6. Nâng cao hiệu suất

2.6.1. Cải tiến tổ chức và kiến trúc chip vật lý

2.6.2. Kỹ thuật song song

2.7. Câu hỏi, bài tập chương 2

3. CHƯƠNG 3: BỘ NHỚ

3.1. Bộ nhớ chính bán dẫn

3.2. Lỗi trong bộ nhớ

3.3. Tổ chức DRAM mở rộng

3.4. Bộ nhớ ngoài

3.5. RAID

3.6. Câu hỏi, bài tập chương 3

4. CHƯƠNG 4: I/O

4.1. Các loại mô-đun

4.2. Các kỹ thuật điều khiển I/O

4.3. Phương pháp truy nhập trực tiếp

4.4. Câu hỏi, bài tập chương 4

5. CHƯƠNG 5: BỘ XỬ LÝ TRUNG TÂM CPU

5.1. Cấu trúc cơ bản của CPU

5.2. Đơn vị điều khiển

5.3. Đơn vị số học và logic ALU

5.4. Tập thanh ghi

5.5. Các thành phần của lệnh máy

5.6. Kỹ thuật song song

5.7. Câu hỏi, bài tập chương 5

6. CHƯƠNG 6: GIỚI THIỆU LẬP TRÌNH HỢP NGỮ EMU

6.1. Tổng quan hợp ngữ

6.2. Ngôn ngữ máy và hợp ngữ

6.3. Cú pháp của lệnh hợp ngữ

6.4. Tổ chức bộ nhớ, thanh ghi, ngắt

6.5. Dữ liệu chương trình

6.6. Khung của một chương trình hợp ngữ

6.7. Nhóm lệnh chuyển dữ liệu

6.8. Lệnh OUT

6.9. Nhóm lệnh chuyển điều khiển, lệnh lặp

6.10. Nhóm lệnh nhảy không điều kiện JMP

6.11. Lệnh nhảy có điều kiện

6.12. Lệnh so sánh CMP

6.13. Nhóm các lệnh lặp

6.14. Nhóm lệnh gọi chương trình con

6.15. Nhóm lệnh tính toán số học

6.16. Lệnh SUB (Subtract)

6.17. Nhóm lệnh xử lý luận lý

6.18. Lệnh dịch chuyển và quay

6.19. Lệnh tính toán logic

6.20. Câu hỏi, bài tập chương 6

BẢNG TRA CỨU THUẬT NGỮ, TỪ KHÓA

DANH MỤC HÌNH VẼ

DANH MỤC BẢNG BIỂU

Tóm tắt

I. Khám phá giáo trình kiến trúc máy tính cho ngành CNTT

Giáo trình kiến trúc máy tính là tài liệu nền tảng, cung cấp những kiến thức cốt lõi về cấu trúc và chức năng của một hệ thống máy tính. Đối với sinh viên công nghệ thông tinkhoa học máy tính, việc nắm vững môn học này không chỉ là yêu cầu bắt buộc mà còn là chìa khóa để hiểu sâu sắc cách phần cứng và phần mềm tương tác với nhau. Một giáo trình kiến trúc máy tính dành cho ngành công nghệ thông tin chất lượng sẽ trình bày chi tiết về các thành phần cơ bản như bộ xử lý trung tâm (CPU), hệ thống bộ nhớ máy tính, và các cơ chế vào/ra (I/O). Nội dung không chỉ dừng lại ở lý thuyết mà còn đi sâu vào các kiến trúc cụ thể, ví dụ như kiến trúc von Neumann và Harvard, làm tiền đề cho việc thiết kế và tối ưu hóa hệ thống sau này. Theo tài liệu của Lê Văn Quốc Anh và cộng sự, việc hiểu rõ mối quan hệ giữa các khối chức năng này là cơ sở để cải thiện hiệu suất, tăng độ tin cậy và dự trù các hỏng hóc có thể xảy ra. Môn học này giúp sinh viên xây dựng một tư duy hệ thống, nhìn nhận máy tính không phải là một 'hộp đen' mà là một tập hợp các thành phần mạch logickỹ thuật số phối hợp nhịp nhàng. Từ đó, người học có thể viết ra những đoạn mã hiệu quả hơn, tận dụng tối đa sức mạnh phần cứng và gỡ lỗi ở mức độ sâu hơn. Các tài liệu môn kiến trúc máy tính thường bắt đầu từ những khái niệm tổng quan, lịch sử phát triển, sau đó đi vào chi tiết từng thành phần. Việc phân biệt rõ ràng giữa cấu trúc máy tính (thuộc tính mà lập trình viên nhìn thấy) và tổ chức máy tính (cách các thành phần được hiện thực hóa) là một trong những mục tiêu đầu tiên mà sinh viên cần đạt được. Một giáo trình tốt sẽ cung cấp cả slide bài giảng kiến trúc máy tính và bài tập ứng dụng, giúp củng cố kiến thức và chuẩn bị cho các kỳ ôn tập kiến trúc máy tính quan trọng.

1.1. Phân biệt kiến trúc máy tính và tổ chức máy tính

Một trong những khái niệm cơ bản nhất được đề cập trong các giáo trình kiến trúc máy tính là sự khác biệt giữa kiến trúc và tổ chức. Kiến trúc máy tính (Computer Architecture) liên quan đến các thuộc tính của hệ thống mà một lập trình viên có thể thấy được, chẳng hạn như tập lệnh ISA, số bit dùng để biểu diễn dữ liệu, cơ chế I/O và kỹ thuật định địa chỉ. Ngược lại, tổ chức máy tính (Computer Organization) đề cập đến cách các thuộc tính kiến trúc đó được triển khai. Nó bao gồm các chi tiết phần cứng như tín hiệu điều khiển, giao diện và công nghệ bộ nhớ. Ví dụ, hai bộ xử lý có thể có cùng kiến trúc tập lệnh x86 nhưng lại có tổ chức máy tính hoàn toàn khác nhau về bộ nhớ đệm và hệ thống bus, điển hình là AMD Opteron và Intel Core i7. Hiểu rõ sự phân biệt này giúp sinh viên nhận ra rằng một kiến trúc có thể được hiện thực hóa bằng nhiều cách tổ chức khác nhau để đạt được các mục tiêu về hiệu năng và chi phí.

1.2. Vai trò nền tảng của kiến trúc von Neumann và Harvard

Hầu hết các hệ thống máy tính hiện đại đều được xây dựng dựa trên hai mô hình kiến trúc nền tảng: von Neumann và Harvard. Kiến trúc von Neumann, hay còn gọi là kiến trúc IAS, đặc trưng bởi việc sử dụng chung một không gian bộ nhớ và một bus duy nhất cho cả lệnh và dữ liệu. Điều này dẫn đến một nhược điểm cố hữu gọi là 'thắt cổ chai von Neumann' do xung đột khi truy cập đồng thời. Ngược lại, kiến trúc Harvard sử dụng hai hệ thống bus và hai không gian bộ nhớ máy tính riêng biệt cho lệnh và dữ liệu. Điều này cho phép truy xuất đồng thời, làm tăng tốc độ hoạt động của vi xử lý. Mặc dù kiến trúc Harvard thuần túy ít được sử dụng trong các máy tính đa dụng, một phiên bản cải tiến của nó rất phổ biến trong các hệ thống nhúng và bộ xử lý tín hiệu số (DSP), nơi hiệu suất thực thi lệnh là ưu tiên hàng đầu. Một giáo trình kiến trúc máy tính toàn diện phải phân tích sâu cả hai mô hình này.

II. Thách thức khi học kiến trúc máy tính và giải pháp

Môn kiến trúc máy tính thường được xem là một thách thức lớn đối với sinh viên công nghệ thông tin. Nguyên nhân chính đến từ tính trừu tượng của các khái niệm và sự phức tạp trong việc hình dung cách các thành phần phần cứng hoạt động cùng nhau. Sinh viên phải chuyển đổi tư duy từ lập trình bậc cao, nơi chi tiết phần cứng được che giấu, sang một cấp độ thấp hơn, nơi mọi thứ được biểu diễn bằng bit và các tín hiệu mạch logic. Một trong những rào cản lớn nhất là hiểu được mối quan hệ giữa ngôn ngữ máy, hợp ngữ Assembly và ngôn ngữ bậc cao. Theo tài liệu tham khảo, một câu lệnh C++ có thể tương ứng với nhiều lệnh máy, và người lập trình ở cấp độ này 'nhìn thấy rất ít kiến trúc bên dưới'. Việc này đòi hỏi người học phải nắm vững các hệ đếm (nhị phân, thập lục phân) và cách dữ liệu được biểu diễn, lưu trữ. Một thách thức khác là sự đa dạng của các kiến trúc như kiến trúc RISCkiến trúc CISC, mỗi loại có triết lý thiết kế tập lệnh ISA riêng. Để vượt qua những khó khăn này, việc tiếp cận một giáo trình kiến trúc máy tính dành cho ngành công nghệ thông tin có cấu trúc, đi từ tổng quan đến chi tiết là vô cùng quan trọng. Giáo trình cần có nhiều ví dụ minh họa, sơ đồ khối rõ ràng và các bài tập thực hành lập trình hợp ngữ Assembly để sinh viên có thể 'chạm' vào phần cứng một cách gián tiếp. Việc sử dụng các trình giả lập như EMU8086 cũng là một phương pháp hiệu quả để trực quan hóa hoạt động của CPU và các thanh ghi, biến lý thuyết khô khan trở nên sinh động và dễ hiểu hơn.

2.1. Vượt qua rào cản từ ngôn ngữ máy đến hợp ngữ Assembly

Ngôn ngữ máy, được biểu diễn dưới dạng mã nhị phân, là ngôn ngữ duy nhất mà vi xử lý có thể hiểu trực tiếp. Tuy nhiên, lập trình bằng chuỗi số 0 và 1 là cực kỳ khó khăn và dễ gây lỗi. Do đó, hợp ngữ Assembly ra đời như một lớp trừu tượng ngay trên ngôn ngữ máy. Mỗi lệnh hợp ngữ (mnemonic) tương ứng một-một với một lệnh máy duy nhất, giúp lập trình viên dễ đọc và dễ nhớ hơn. Thách thức đối với sinh viên là phải học cách tư duy theo luồng thực thi của CPU, quản lý trực tiếp các thanh ghi và địa chỉ bộ nhớ. Việc nắm vững hợp ngữ Assembly không chỉ giúp hiểu sâu hơn về kiến trúc máy tính mà còn là nền tảng cho các lĩnh vực như lập trình nhúng, tối ưu hóa hiệu năng và an ninh mạng. Các tài liệu môn kiến trúc máy tính thường dành một chương riêng để giới thiệu về lập trình hợp ngữ, ví dụ như trên EMU8086, để củng cố kiến thức lý thuyết.

2.2. Hình dung sự phối hợp giữa các khối chức năng vật lý

Một máy tính là một hệ thống phức tạp gồm nhiều khối chức năng như CPU, bộ nhớ máy tính, và đơn vị vào/ra (I/O), tất cả được kết nối qua một hệ thống bus. Việc hình dung cách các khối này phối hợp để thực thi một lệnh đơn giản cũng là một thách thức. Ví dụ, để thực hiện lệnh ADD AX, [BX], CPU phải: (1) gửi địa chỉ trong thanh ghi BX ra bus địa chỉ, (2) gửi tín hiệu đọc bộ nhớ ra bus điều khiển, (3) chờ dữ liệu từ bộ nhớ được gửi về qua bus dữ liệu và nạp vào một thanh ghi tạm, (4) thực hiện phép cộng trong ALU, và (5) cập nhật cờ trạng thái. Sơ đồ khối trong giáo trình kiến trúc máy tính là công cụ trực quan quan trọng giúp sinh viên mô hình hóa các luồng dữ liệu và tín hiệu điều khiển này, từ đó hiểu rõ hơn về tổ chức máy tính.

III. Hướng dẫn học cấu trúc máy tính CPU bộ nhớ và I O

Để chinh phục môn học này, một phương pháp tiếp cận có hệ thống là điều cần thiết. Một giáo trình kiến trúc máy tính dành cho ngành công nghệ thông tin hiệu quả sẽ chia nội dung thành ba phần chính, tương ứng với ba trụ cột của một hệ thống máy tính: Bộ xử lý trung tâm (CPU), hệ thống bộ nhớ máy tính, và hệ thống vào/ra (I/O). Bắt đầu với CPU, người học cần tập trung vào cấu trúc bên trong của nó, bao gồm Đơn vị Số học và Logic (ALU) và Đơn vị Điều khiển (CU), cùng với vai trò của các thanh ghi. Hiểu được chu kỳ lệnh (tìm nạp - giải mã - thực thi) là nền tảng để biết một chương trình được chạy như thế nào ở mức độ thấp nhất. Tiếp theo, phần hệ thống bộ nhớ là một chủ đề lớn, bao gồm phân cấp bộ nhớ từ thanh ghi, cache, bộ nhớ chính (RAM) đến bộ nhớ ngoài (HDD, SSD). Sinh viên cần nắm vững các khái niệm như cơ chế ánh xạ cache và bộ nhớ ảo. Cuối cùng, hệ thống I/O giải quyết cách máy tính giao tiếp với thế giới bên ngoài. Phần này bao gồm các kỹ thuật điều khiển như Programmed I/O, Interrupt-driven I/O và Truy cập bộ nhớ trực tiếp (DMA). Việc nghiên cứu kỹ từng phần, kết hợp với các slide bài giảng kiến trúc máy tính và làm bài tập sẽ giúp xây dựng một nền tảng kiến thức vững chắc. Tài liệu của Đại học Giao thông vận tải TP.HCM đã cấu trúc nội dung rất rõ ràng theo các chương riêng biệt cho từng thành phần này, giúp sinh viên dễ dàng theo dõi và hệ thống hóa kiến thức.

3.1. Phân tích bộ xử lý trung tâm CPU và tập lệnh ISA

CPU hay vi xử lý là bộ não của máy tính, chịu trách nhiệm thực thi các lệnh của chương trình. Cấu trúc cơ bản của CPU gồm Đơn vị Điều khiển (CU) điều phối mọi hoạt động, và Đơn vị Số học & Logic (ALU) thực hiện các phép toán. Một thành phần quan trọng khác là tập các thanh ghi dùng để lưu trữ dữ liệu và địa chỉ tạm thời với tốc độ truy xuất cực nhanh. Hoạt động của CPU được định nghĩa bởi tập lệnh ISA (Instruction Set Architecture). Giáo trình kiến trúc máy tính sẽ giới thiệu hai loại kiến trúc chính: kiến trúc CISC (Complex Instruction Set Computer) với tập lệnh phức tạp và kiến trúc RISC (Reduced Instruction Set Computer) với tập lệnh đơn giản, tối ưu hóa cho thực thi nhanh. Hiểu rõ ISA là điều kiện tiên quyết để lập trình hợp ngữ Assembly.

3.2. Tìm hiểu hệ thống bộ nhớ máy tính và phân cấp bộ nhớ

Hệ thống bộ nhớ máy tính được tổ chức theo một cấu trúc phân cấp để cân bằng giữa tốc độ, dung lượng và chi phí. Ở đỉnh là các thanh ghi của CPU, tiếp theo là bộ nhớ cache (L1, L2, L3), bộ nhớ chính (RAM), và cuối cùng là bộ nhớ ngoài (SSD, HDD). Nguyên lý hoạt động dựa trên 'nguyên tắc địa phương' (locality of reference): các dữ liệu và lệnh vừa được truy cập có khả năng cao sẽ được truy cập lại trong tương lai gần. Bộ nhớ cache đóng vai trò trung gian tốc độ cao giữa CPU và RAM, giúp giảm đáng kể thời gian chờ đợi. Các tài liệu môn kiến trúc máy tính thường tập trung vào các kỹ thuật ánh xạ địa chỉ của cache (trực tiếp, liên kết, liên kết tập hợp) vì chúng ảnh hưởng trực tiếp đến hiệu suất hệ thống.

IV. Bí quyết nắm vững kiến trúc máy tính qua hợp ngữ 8086

Lập trình hợp ngữ Assembly là phương pháp hiệu quả nhất để kiểm nghiệm và củng cố kiến thức lý thuyết về kiến trúc máy tính. Thông qua việc viết các chương trình hợp ngữ, sinh viên công nghệ thông tin có thể tương tác trực tiếp với các thành phần phần cứng như thanh ghi, cổng I/O và các vùng nhớ. Một giáo trình kiến trúc máy tính dành cho ngành công nghệ thông tin thường sử dụng kiến trúc 8086 làm ví dụ minh họa vì sự đơn giản và tính lịch sử của nó. Chương 6 trong tài liệu tham khảo giới thiệu chi tiết về cú pháp lệnh, cách tổ chức bộ nhớ (segment:offset), và các nhóm lệnh cơ bản của hợp ngữ 8086. Khi lập trình, sinh viên sẽ phải tự quản lý luồng điều khiển, di chuyển dữ liệu giữa các thanh ghi và bộ nhớ, thực hiện các phép toán số học và logic. Quá trình này giúp họ hiểu rõ chức năng của từng lệnh trong tập lệnh ISA, vai trò của các cờ trạng thái (carry, zero, overflow) và cơ chế ngắt. Sử dụng trình giả lập như EMU8086 cho phép người học chạy và gỡ lỗi từng dòng lệnh, quan sát sự thay đổi giá trị trong các thanh ghi và ô nhớ. Đây là cách học thực tiễn, biến những khái niệm trừu tượng về CPUbộ nhớ máy tính thành những kết quả hữu hình, từ đó giúp việc ôn tập kiến trúc máy tính trở nên dễ dàng và hiệu quả hơn rất nhiều.

4.1. Cấu trúc một chương trình hợp ngữ và các chỉ thị cơ bản

Một chương trình hợp ngữ Assembly bao gồm các chỉ thị và câu lệnh. Mỗi câu lệnh thường có cú pháp: [nhãn:] [tên gợi nhớ] [toán hạng] [; chú thích]. Tên gợi nhớ (mnemonic) như MOV, ADD, JMP định nghĩa hành động của lệnh. Toán hạng chỉ định dữ liệu mà lệnh tác động lên, có thể là thanh ghi (AX, BX), ô nhớ ([BX]), hoặc giá trị tức thời (10h). Các chỉ thị như .MODEL, .STACK, .DATA, .CODE giúp trình biên dịch tổ chức chương trình. Ví dụ, .DATA dùng để khai báo biến và hằng, trong khi .CODE chứa các lệnh thực thi. Nắm vững cấu trúc này là bước đầu tiên để viết các chương trình hợp ngữ hoàn chỉnh.

4.2. Các nhóm lệnh chính trong tập lệnh kiến trúc 8086

Tập lệnh ISA của 8086 được chia thành nhiều nhóm chức năng. Nhóm lệnh chuyển dữ liệu (MOV, XCHG, PUSH, POP) dùng để di chuyển thông tin giữa các thanh ghi và bộ nhớ máy tính. Nhóm lệnh số học (ADD, SUB, MUL, DIV) được thực hiện bởi khối ALU của CPU. Nhóm lệnh logic (AND, OR, NOT, XOR) thực hiện các phép toán trên bit. Nhóm lệnh chuyển điều khiển (JMP, CALL, RET và các lệnh nhảy có điều kiện như JE, JNE) thay đổi luồng thực thi của chương trình. Việc thực hành với từng nhóm lệnh này giúp sinh viên hiểu rõ khả năng xử lý của vi xử lý và cách xây dựng các thuật toán phức tạp từ những thao tác cơ bản.

V. Ứng dụng kiến trúc máy tính trong công nghệ thông tin

Kiến thức từ giáo trình kiến trúc máy tính không chỉ mang tính học thuật mà còn có ứng dụng sâu rộng trong thực tiễn ngành công nghệ thông tin. Các lập trình viên phát triển hệ điều hành phải hiểu rõ kiến trúc phần cứng để quản lý tài nguyên, xử lý ngắt và lập lịch cho các tiến trình. Trong lĩnh vực lập trình nhúng, nơi tài nguyên phần cứng bị giới hạn, kiến thức về tổ chức máy tínhhợp ngữ Assembly là tối quan trọng để viết mã nhỏ gọn và hiệu quả. Ngay cả trong phát triển phần mềm ứng dụng, việc hiểu về phân cấp bộ nhớ máy tính và hoạt động của cache giúp lập trình viên viết mã tối ưu hơn, tránh được các tình trạng 'cache miss' gây giảm hiệu năng. Ví dụ, cách tổ chức dữ liệu trong các vòng lặp lớn có thể ảnh hưởng đáng kể đến tốc độ thực thi do tận dụng được tính địa phương của dữ liệu. Hơn nữa, trong lĩnh vực an ninh mạng, các chuyên gia cần hiểu kiến trúc máy tính ở mức độ thấp để phân tích mã độc, phát hiện các lỗ hổng tràn bộ đệm (buffer overflow) và phát triển các kỹ thuật phòng thủ. Rõ ràng, một nền tảng vững chắc về kiến trúc máy tính mở ra nhiều cơ hội và là yếu tố phân biệt một lập trình viên giỏi với một lập trình viên thông thường.

5.1. Tối ưu hóa hiệu năng phần mềm dựa trên kiến thức phần cứng

Hiệu suất của một chương trình không chỉ phụ thuộc vào thuật toán mà còn vào cách nó tương tác với phần cứng. Kiến thức về kỹ thuật đường ống (pipelining) trong CPU và bộ nhớ cache cho phép lập trình viên tối ưu hóa mã nguồn. Ví dụ, việc sắp xếp lại các lệnh để tránh phụ thuộc dữ liệu có thể giúp vi xử lý thực thi song song hiệu quả hơn. Tương tự, việc truy cập dữ liệu trong bộ nhớ theo một trình tự tuần tự (ví dụ: duyệt mảng theo hàng thay vì theo cột trong một số ngôn ngữ) sẽ làm tăng tỷ lệ 'cache hit', từ đó tăng tốc đáng kể chương trình. Đây là những kỹ thuật tối ưu hóa mà các tài liệu môn kiến trúc máy tính nâng cao thường đề cập.

5.2. Nền tảng cho hệ điều hành và các hệ thống nhúng

Hệ điều hành là lớp phần mềm nằm ngay trên phần cứng, có nhiệm vụ quản lý tài nguyên của máy tính. Để xây dựng một hệ điều hành, các kỹ sư phải làm việc trực tiếp với các cơ chế của CPU như chế độ bảo vệ (protected mode), quản lý bộ nhớ ảo, xử lý ngắt và giao tiếp với các thiết bị I/O. Tương tự, trong các hệ thống nhúng (ví dụ: trong ô tô, thiết bị y tế), lập trình viên phải kiểm soát từng bit, từng chu kỳ xung nhịp để đảm bảo hệ thống hoạt động chính xác và đáp ứng thời gian thực. Tất cả những điều này đều đòi hỏi một sự am hiểu sâu sắc về cấu trúc máy tínhtổ chức máy tính.

VI. Tương lai ngành kiến trúc máy tính và tài liệu ôn tập

Ngành kiến trúc máy tính đang không ngừng phát triển để đáp ứng nhu cầu tính toán ngày càng tăng của trí tuệ nhân tạo, dữ liệu lớn và điện toán đám mây. Xu hướng hiện nay tập trung vào kiến trúc xử lý song song, với các CPU đa lõi (multi-core) và các bộ xử lý chuyên dụng như GPU (Graphics Processing Unit) và TPU (Tensor Processing Unit). Các kỹ thuật như SIMD (Single Instruction, Multiple Data) và MIMD (Multiple Instruction, Multiple Data) đang trở nên phổ biến để tăng cường thông lượng hệ thống. Do đó, các phiên bản mới của giáo trình kiến trúc máy tính dành cho ngành công nghệ thông tin sẽ cần cập nhật những kiến thức này. Đối với sinh viên công nghệ thông tin, việc ôn tập kiến trúc máy tính không chỉ là học thuộc lòng các khái niệm cũ mà còn phải nắm bắt các xu hướng mới. Để chuẩn bị tốt, sinh viên nên tận dụng các nguồn tài liệu môn kiến trúc máy tính đa dạng, từ sách giáo trình, slide bài giảng kiến trúc máy tính, đến các khóa học trực tuyến và các bài báo khoa học. Việc thực hành liên tục với các bài tập lập trình hợp ngữ Assembly và các bài toán thiết kế mạch logic đơn giản sẽ giúp củng cố nền tảng và phát triển tư duy cần thiết để thành công trong lĩnh vực đầy tiềm năng này.

6.1. Xu hướng kiến trúc xử lý song song và đa lõi

Do những giới hạn vật lý của định luật Moore, việc tăng tốc độ xung nhịp của một vi xử lý đơn lõi đã trở nên khó khăn. Giải pháp được đưa ra là tích hợp nhiều nhân xử lý (core) trên cùng một con chip. Điều này cho phép thực thi nhiều luồng công việc đồng thời, một khái niệm gọi là xử lý song song. Các tổ chức máy tính như SMP (Symmetric Multiprocessing) và NUMA (Non-Uniform Memory Access) ra đời để quản lý hiệu quả các hệ thống đa xử lý này. Sinh viên cần tìm hiểu các khái niệm này để chuẩn bị cho môi trường lập trình hiện đại, nơi mà việc viết mã đa luồng (multi-threaded) là một kỹ năng thiết yếu.

6.2. Nguồn tài liệu và phương pháp ôn tập kiến trúc máy tính

Để ôn tập kiến trúc máy tính hiệu quả, sinh viên nên kết hợp nhiều phương pháp. Trước hết, cần bám sát giáo trình kiến trúc máy tính chính của trường. Sau đó, bổ sung kiến thức từ các nguồn uy tín khác như sách của William Stallings hay Patterson & Hennessy. Tận dụng slide bài giảng kiến trúc máy tính để tóm tắt các ý chính trước mỗi kỳ thi. Quan trọng nhất là thực hành: giải các bài tập về chuyển đổi hệ đếm, thiết kế mạch, và đặc biệt là lập trình hợp ngữ Assembly. Tham gia các nhóm học tập để thảo luận về các chủ đề khó như cơ chế ánh xạ cache hay kỹ thuật đường ống cũng là một cách học hiệu quả. Việc xây dựng một lộ trình học tập và ôn tập có cấu trúc sẽ đảm bảo nắm vững kiến thức nền tảng của ngành khoa học máy tính.

14/07/2025

Trích đoạn nội dung tài liệu

chương I 5 CHUONG 2. TONG QUAN CHUC NANG MUC CAO CUA MAY TINH.1 Các thành phần của máy tinh 2.1 Kiến trúc von Neumamn.2 Kiến trúc Harvard 2.2 Chức năng của máy tính ‘ 2.3 Cấu trúc kết nối nội.1 Kién tric IAS .2 Kiến tric Harvard.5 Nâng cao hiệu suất 2.1 Cải tiến tổ chức và kiến trúc chip vật lý.2 Kỹ thuật song song Câu hỏi, bài tập chương 2.1 Bộ nhớ cache.1 Tổng quan hệ thông bộ nhớ máy tính .2 Cơ bản bộ nhớ cache 3.3 Tối ưu hóa hiệu năng bộ nhớ cache .2 Bộ nhớ trong ¿86 3.1 Bộ nhớ chính bán dẫn.2 Lỗi trong bộ nhớ 3.3 Tổ chức DRAM mở rộng Ji 3.3 Bộ nhớ ngOài. + tt nHHH HT HH HH ghê 3.2 RAID 72 Cầu hỏi, bài tập chương Š:.2 Các loại mô-đun LO 4.3 Các kỹ thuật điều khiển I/O .4 Phương pháp truy nhập trực tiếp. Câu hỏi, bài tập chương 4 CHƯƠNG 5.

BỘ XỬ LÝ TRUNG TÂM CPU.1 Cấu trúc cơ bản của CPU.1 Đơn vị điều khiển 5.2 Đơn vị số học và logic ALU .3 Tap thanh ghi.1 Các thành phần của lệnh máy. 4 51212 Ce Riéw thao thes ssevsesssevssvscsscsaaruseesscsssarcserseevesvenanvvssesavuanssrsssseseete 5.3 Kỹ thuật song song. Câu hỏi, bài tập chương 5 CHƯƠNG 6. GIỚI THIỆU LẬP TRÌNH HỢP NGỮ EMU.1 Tổng quan hợp ngữ.1 Ngôn ngữ máy và hợp ngữ 6.2 Cú pháp của lệnh hợp ngữ 6.3 Cú pháp của một lệnh hợp ngữ 6.4 Tổ chức bộ nhớ, thanh ghi, ngắ 6.2 Dữ liệu chương trình.4 Khung của một chương trình hợp ngữ.3 Nhóm lệnh chuyển dữ liệu .14 Lénh OUT wok ZL 6.4 Nhóm lệnh chuyền điều khiển, lệnh lặp.1 Nhóm lệnh nhảy không điều kiện JMP 121 6.2 Lệnh nhảy có điều kiện.3 Lénh so sanh CMP .4 Nhóm các lệnh lặp we 123 6.5 Nhóm lệnh gọi chương trình con .5 Nhóm lệnh tính toán số học.4 Lénh SUB (Subtract 6.6 Nhóm lệnh xử lý luận lý 6.1 Lệnh dịch chuyển và quay.2 Lệnh tính toán logic Câu hỏi, bài tập Chương 6.

we BẢNG TRA CỨU THUẬT NGỮ, TỪ KHÓA.-- 22 +2225+2£2+czxzze 133 TẤT:LIỂU THÂN KHH¬Ô Lo cttbccseoingnadiaGigi00080306615458031603108101G3 8600 g2) 134 BANG KÝ HIỆU TT |Kýhiệu Giải thích 1 AMAT Thời gian truy cập bộ nhớ trung bình 2 i, Số lượng câu lệnh mã máy trong một chương trình 3 HT Thời gian truy cập vào bộ nhớ cache 4 MA Số lần truy cập vào bộ nhớ 5 MISS a không tổn tại trong cache tương 6 MR Tỉ lệ dữ liệu không tồn tại trong bộ nhớ cache Zz T Thời gian tồn tại một xung clock 8 T Thời gian thực thi chương trình BANG VIET TAT rr | Thuat ngữ Diễn giải Ý nghĩa 1 AC Accumulator Bộ tích lũy 2: ALU Arithmetic Logic Unit Don vi tinh toan số học 2 CPU Central Processing Unit Bộ xử lý trung tâm CPU 3 cu Control Unit Khối đơn vị điều khiển 4 DCA Direct Cache Access Truy cập cache trực tiếp 5 DDR- | Double Data Rate - DRAM DRAM DRAM gấp đôi tốc độ 6 DMA Direct Memory Access Truy nhập bộ nhớ trực tiếp 7 DRAM Dynamic RAM RAM động 8 DS Data Stream Luỗng dữ liệu 9 | ENIAC je ead oe Máy tính tích hợp điện tử 10 HDD Hard Disk Drive Đĩa cứng 11 IBR Instruction Buffer Register Thanh ghi lệnh đệm 12 IF Interrupt-enable Flag Cờ cho phép ngắt 13 INTR Interrupt Request Yêu cầu ngắt 14 IR Instruction Register Thanh ghi lệnh 15 IS Instruction Stream Luồng lệnh 16 ISA Instruction Set Architecture Tập lệnh 17 LM Local memory Bộ nhớ cục bộ 18 MAR Memory Address Register Thanh ghi địa chỉ bộ nhớ 19 MBR Memory Buffer Register Thanh ghi bộ nhớ đệm Multiple Instruction 20 MIMD Multiple Data Đa lệnh đa dữ liệu 21 MISD Multiple Instruction Single Đa lệnh đơn dữ liệu Data 22 MQ Multiplier Quotient Bộ nhân chia 23 MU Memory Unit Đơn vị bộ nhớ 24 NIC Network Interface Card Card mạng 25 NMI Non-Maskable Interrupt Ngat khẩn cấp 26 NUMA Nonuniform Memory Truy cập bộ nhớ không đông Access nhât 27 PC Program Counter Bộ đếm chương trình 28 PU Processing Unit Bo xu ly 29 RAM Random Access Memory | Bộ nhớ truy xuất ngẫu nhiên 30 | spRAM | Synchronous RAM Dynamic RAM động đồng bộ 31 SIMD Single Instruction Multiple Đơn lệnh đa đữ liệu Data 32 SISD Single Instruction Single Đơn lệnh đơn dữ liệu Data 33 SMP Symmetric Multiprocesors Đa xử lý đối xứng 34 SRAM Static RAM RAM tinh 35 SSD Solid-State Drive O dia thé ran 36 | VLSI VeryIntegration Large Scale Tích hợp cỡ lớn DANH MỤC HÌNH VẼ Hình I.1 Mô hình hệ thống máy vậy lý và máy ảo [1].2 Hình ảnh VM trong một chương trình điều khiển [2].3 Thiết bị lưu trữ IBM SAN 256B-7.4 Sơ đồ khối I/O và các khối cấp thấp hơn Hình 1.5 Các khối chức năng tổng quát của một máy tính Hình 1.6 Phân loại bộ nhớ theo tổ chức máy tính Hình 1.7 Lập trình viên đang thực hiện đi dây trên ENIAC [6].8 Cấu trúc máy tinh TAS [7].----c22sscczvczse+ 23 Hình 1:9 Định:đạng bộ nhớ TẠS [T7] sosisssscsaoiiniiiDiAiitiaisiaisesasat 23 Hình 1.10 Tam phim véi 6502 bộ xử lý của Pragmatic [8] .1 Kiến trúc máy tính von Neumann.2 Kiến tric Harvard [11] .3 Kiến trúc Harvard cải tiễn [1 1].4 Chu kỳ lệnh cơ bản [7] Hình 2.5 Chu kỳ truy xuat-thuc thi .6 Chu kỳ lệnh có kiểm tra yêu cầu ngắt Hình 2.7 Hệ thống máy tính .8 Kết nói giữa bộ xử lý, bàn phím, màn hình.9 Kết nói giữa bộ xử lý và bộ nhớ chính.10 Các thành phần của hệ thống bus điển hình .11 Hệ thống bus kiến trúc Harvard.1 Hệ thống phân cấp bộ nhớ [5].2 Khảo sát hiệu suất hai hệ thống.3 So dé sir dung cache trong hệ thống Hình 3.4 Cấu trúc bộ nhớ cache/bộ nhớ chính [7] Hình 3.5 Các tham số phân loại kién tric cache .6 Các loại cache: luận lý và vật lý [7].7 Ánh xạ địa chỉ trực tiếp [7].8 Các trường trong bộ nhớ chính [7].9 Ánh xạ liên kết [7].10 Ví dụ ánh xạ liên KẾT.11 Ánh xạ liên kết tập hợp Hình 3.12 Sơ đồ khối một tế bào đữ liệu [7] Hình 3.13 Tế bào nhớ một bit [7] .-:-¿--22cccczz5cccvssse+ 65 Hình 3.14 Chip 6116 và sơ đồ chân chức năng.15 Bộ nhớ dùng chip logic dung lượng 2?""_.16 Cấu tạo bên trong đĩa cứng và sản phẩm thương mại .17 Đĩa luận lý gồm dãy đĩa vật lý.18 Ví dụ RAID 0 với hai ô đĩa vật lý Hình 3.19 RAID 1 với ba đĩa vật lý Hình 3.20 RAID 2 dùng mã kiểm tra Hamming (7,3).21 RAID 3/RAID4 với hai đĩa vật lý đữ liệu .22 RAID 5 với 4 đĩa vật lý dữ liệu.24 Kết hop RAID 1-0 (RA1D 10).1 Giao tiếp thiết bị I/O với CPU tổng quát.2 Sơ đồ khối téng quat cua thiét bi I/O [7].3 Sơ đồ chức năng mô-đun I/O tổng quát [7] Hình 4.4 Phối hợp bộ điều khiển ngắt 8259A [7].5 Các nguồn ngắt x8086 [14] Hình 4.6 Truyền dữ liệu giữa I/O và bộ nhớ chính .7 Sơ đồ khối mô-đun DMA điển hình [7].§ Quy trình giao tiếp mô-đun DMA và CPU.9 Luéng dữ liệu từ NIC dùng DMA hoặc DCA [II] .1 Cấu trúc nội của CPU [7|.-¿2+cz+2+sz+++czxse 90 Hình 5.2 Sơ đồ khối đơn vị điều khiển [7].3 Đường dẫn dữ liệu và tín hiệu điều khiển [7] Hình 5.4 Đầu vào và đầu ra khối ALU [7].5 Luồng trao đổi dữ liệu, chu kỳ gián tiếp [7].6 Cấu trúc thanh ghi ARM [7].7 Cấu trúc thanh ghi MC68000 và thanh ghi 8086 [7].8 Phân loại tổ chức máy tính [7] .1 Biểu diễn bit trong một byte.2 Biểu diễn một từ dữ liệu.3 Lưu trữ word trong bộ nhớ.4 Biểu diễn một double word.5 Biểu diễn segment trong bộ nhớ.6 Biểu diễn thanh ghi AX.-----22222c2ccc+c2cccvvvrcrrrrrrrrrree 123 12 DANH MỤC BẢNG BIẾU Bang 1.1 Một số lệnh thuộc tập lệnh IAS [7].2 Vị trí số thập phân.3 VỊ trí một số trong hệ cơ SỔ Tỉ hgnDt SG SOITDUHIOEISEIESA Ea an 29 Bảng 1.4 Ánh xạ giá trị hệ nhị phân, thập lục phân và thập phân.5 Nội dung của ô nhớ trong kiến trúc IAS Bảng 3.1 Thuật ngữ bộ nhớ cache Bảng 3.2 So sánh các cơ chế ánh *ữ địa GHÍ¿ su snsxesasnnenotoarnsseae 56 Bảng 3.3 Thông số trong ánh xa trutc tiép [7] .4 Phân bổ khối vào dòng thuộc cache [7] .5 Phân bổ khối vào dòng thuộc cache [7] .6 Thông số trong ánh xạ liên kết [7| .7 Thông số trong ánh xạ liên kết tập hợp [7].8 Các phương pháp mã hóa sửa-phát hiện lỗi.9 Từ mã dùng Parity Bảng 3.10 Bảng thiết kế sửa-phát hiện lỗi Hamming Bang 3.11 Mối liên hệ giá trị syndrome va vi tri lỗi.1 Cờ điều khiển và mô tả.2 Một vài mã gợi nhớ .-¿- -- 5 55+ ‡vS+££xsxstzsvzererrrsee 99 Bang 5.3 Danh sách các lệnh phổ biến của 8086 .1 Mã máy và hợp ngữ tương ứng. TÔNG QUAN CÁU TRÚC MÁY TÍNH LICH SU PHAT TRIEN Muc tiéu chuong: - Trinh bay cac khái niệm cơ bản về máy tính. - Trình bày khái niệm tô chức hệ thống, sơ đồ khối. - Dé cập các máy tính tiêu biểu cho từng thế hệ.

~ Mô tả các hệ số đếm và cách thức chuyên đổi giữa các hệ đếm.1 Ngôn ngữ, cấp máy và máy áo 1.1 Ngôn ngữ Ngôn ngữ máy tính hay còn gọi là ngôn ngữ lập trình, là tập hợp các lệnh mà bộ xử lý sử dụng đê thực hiện các chức năng: tải đữ liệu, tính toán số nguyên trên một đơn vị đữ liệu của bộ nhớ. Ngôn ngữ lập trình phân thành 3 loại: (1) Ngôn ngữ máy Ngôn ngữ máy là một ngôn ngữ được biểu diễn dưới dạng mã nhị phân, bộ xử lý có thể nhận biết và thực hiện trực tiếp bởi các mạch điện tử mà không cần trình thông dịch hoặc trình biên dịch nào. Ngôn ngữ máy phù hợp với máy tính xem các lệnh dưới dạng nhị phân nhưng con người khó có thê hiểu và lập trình theo trình tự các số 0 và 1 nên cần có các ngôn ngữ khác đơn giản hơn. Hợp ngữ có môi quan hệ một đối một với ngôn ngữ máy: Mỗi lệnh hợp ngữ tương ứng với một lệnh ngôn ngữ máy duy nhất.

Việc thay thế tên cho các mã lệnh giúp việc lập trình dễ đàng hơn. (3) Ngôn ngữ lập trình bậc cao Các ngôn ngữ cấp cao là ngôn ngữ có cấu trúc tương tự ngôn ngữ tự nhiên nhu Python, C++, Java, Pascal có quan hệ với hợp ngữ và ngôn ngữ máy. Một câu lệnh trong C++ sẽ mở rộng thành nhiều lệnh máy hoặc hợp ngữ. Người lập trìnhở cấp độ này nhìn thấy rất ít kiến trúc bên dưới của máy tính.

Ví du: A - B thay cho SUB A, B. Hau hét cdc chuong trinh duge viết bằng ngôn ngữ cấp cao, trình biên dich lay một ngôn ngit cap cao (C++) chuyển thành hợp ngữ sau đó dịch trực tiếp sang ngôn ngữ máy để máy có thẻ hiểu được.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ