Giáo trình Kiến trúc máy tính và Quản lý hệ thống máy tính Phần 1 - ĐH Thái Bình

Tài liệu giảng dạy Kiến trúc máy tính và quản lý hệ thống (p1) hệ thống hóa kiến thức từ cơ bản đến nâng cao ngành trong thời kỳ mới

Trường đại học

Trường Đại học Thái Bình

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Giáo trình

2016

104
2
0

Phí lưu trữ

35 Point

Tóm tắt

I. Hướng dẫn học Kiến trúc máy tính Nền tảng cốt lõi P1

Kiến trúc máy tính (Computer Architecture) là một lĩnh vực khoa học nền tảng, nghiên cứu các nguyên lý hoạt động và tổ chức của một hệ thống máy tính. Nội dung này không chỉ tập trung vào phần cứng (hardware) mà còn bao gồm cả các yếu-tố-quyết-định-đến-việc-thực-thi-chương-trình. Một tài liệu kiến trúc máy tính chất lượng sẽ giúp người học phân biệt rõ ràng giữa "kiến trúc" và "cấu trúc". Kiến trúc đề cập đến những thuộc tính mà một lập trình viên có thể nhìn thấy, ví dụ như tập lệnh (instruction set), số bit biểu diễn dữ liệu, và cơ chế vào/ra. Ngược lại, cấu trúc máy tính lại liên quan đến các thành phần vật lý và cách chúng kết nối với nhau, như công nghệ bộ nhớ hay các tín hiệu điều khiển. Việc nắm vững các khái niệm này là bước đệm quan trọng để khai thác tối đa hiệu suất hệ thống. Một máy tính hoàn chỉnh bao gồm các khối chức năng chính: Bộ xử lý trung tâm (CPU), bộ nhớ, thiết bị vào/ra và hệ thống bus liên kết. Giáo trình này sẽ đi sâu vào từng thành phần, bắt đầu từ những kiến thức cơ sở về mạch logic, sau đó tiến đến các khái niệm phức tạp hơn như quản lý tiến trìnhhệ điều hành. Sự hiểu biết này không chỉ dành cho kỹ sư phần cứng mà còn vô cùng cần thiết cho các nhà phát triển phần mềm muốn tối ưu hóa ứng dụng của mình.

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

Để tiếp cận chuyên sâu, cần làm rõ ba khái niệm thường bị nhầm lẫn: kiến trúc, tổ chức và cấu trúc. Kiến trúc máy tính là tập hợp các thuộc tính hệ thống có ảnh hưởng trực tiếp đến việc thực thi logic của một chương trình. Các thuộc tính này bao gồm tập lệnh, các kiểu dữ liệu, cơ chế I/O và phương pháp định địa chỉ bộ nhớ. Ví dụ, quyết định có lệnh nhân trong phần cứng hay không là một vấn đề kiến trúc. Trong khi đó, tổ chức và cấu trúc máy tính đề cập đến cách các thành phần phần cứng được triển khai và kết nối để hiện thực hóa kiến trúc đó. Chẳng hạn, việc thực hiện lệnh nhân bằng một đơn vị phần cứng chuyên dụng hay bằng cách lặp lại nhiều phép cộng là vấn đề về cấu trúc. Một kiến trúc có thể tồn tại qua nhiều thế hệ sản phẩm, trong khi cấu trúc có thể thay đổi nhanh chóng theo công nghệ. Việc hiểu rõ sự khác biệt này giúp người học xác định đúng phạm vi nghiên cứu và ứng dụng kiến thức vào thực tế.

1.2. Các thành phần chức năng chính trong một hệ thống

Một hệ thống máy tính hiện đại, dù phức tạp đến đâu, đều được xây dựng từ các khối chức năng cơ bản. Bộ xử lý trung tâm (CPU) được xem là "bộ não", chịu trách nhiệm thực thi lệnh và xử lý dữ liệu. Bộ nhớ trung tâm (Main Memory) là nơi lưu trữ chương trình và dữ liệu. Các thiết bị vào/ra (I/O Devices) như bàn phím, màn hình, ổ đĩa, là giao diện giữa máy tính và thế giới bên ngoài. Cuối cùng, hệ thống bus đóng vai trò là kênh truyền dẫn, liên kết tất cả các thành phần trên lại với nhau. Theo tài liệu gốc, một máy tính còn bao gồm các khối chức năng quan trọng khác như bộ điều khiển ngắt (Interrupt Controller) và bộ điều khiển truy cập bộ nhớ trực tiếp (DMA), giúp tăng hiệu suất hoạt động và khả năng đáp ứng của hệ thống. Hiểu rõ chức năng và sự tương tác của từng khối là điều kiện tiên quyết để phân tích và thiết kế một hệ thống máy tính hoàn chỉnh.

II. Những thách thức chính khi học về cấu trúc máy tính cơ bản

Việc tiếp cận cấu trúc máy tính cơ bản đặt ra nhiều thách thức cho người mới bắt đầu. Một trong những khó khăn lớn nhất là sự trừu tượng hóa cao độ. Người học phải làm quen với các khái niệm từ mức thấp nhất như cổng logic, mạch lật (Flip-flop) cho đến các hệ thống phức tạp như bộ xử lý trung tâm CPUphân cấp bộ nhớ. Sự chuyển đổi liên tục giữa các tầng kiến trúc đòi hỏi một tư duy hệ thống và logic chặt chẽ. Thêm vào đó, sự khác biệt tinh vi giữa "kiến trúc" và "tổ chức" như đã đề cập cũng là một rào cản. Nhiều ebook tổ chức máy tính và tài liệu không làm rõ sự khác biệt này, dẫn đến sự nhầm lẫn trong quá trình học. Một thách thức khác là khối lượng kiến thức khổng lồ. Từ việc biểu diễn dữ liệu nhị phân, các phép toán số học, kiến trúc tập lệnh, cho đến cơ chế hoạt động của hệ điều hành, tất cả đều liên kết chặt chẽ với nhau. Việc thiếu kiến thức ở một mắt xích có thể ảnh hưởng đến sự hiểu biết toàn bộ hệ thống. Do đó, một lộ trình học tập có cấu trúc, đi từ tổng quan đến chi tiết, là yếu tố quyết định sự thành công.

2.1. Sự phức tạp trong biểu diễn và xử lý thông tin nhị phân

Mọi thông tin trong máy tính đều được biểu diễn dưới dạng nhị phân (bit 0 và 1). Việc chuyển đổi giữa hệ thập phân quen thuộc và các hệ đếm khác như nhị phân, hexa là một kỹ năng cơ bản nhưng thường gây khó khăn. Hơn nữa, việc biểu diễn số âm (bù 1, bù 2) và số thực (dấu phẩy động theo chuẩn IEEE 754) là những chủ đề phức tạp, đòi hỏi sự nắm bắt sâu sắc. Các phép toán số học trên số nhị phân, đặc biệt là các thao tác của Đơn vị Số học và Logic (ALU), cũng cần được hiểu rõ. Sự phức tạp không chỉ nằm ở quy tắc tính toán mà còn ở cách phần cứng hiện thực hóa các phép toán đó. Nếu không nắm vững nền tảng này, việc hiểu các khái niệm cao hơn như chu kỳ lệnh hay thiết kế ALU sẽ trở nên bất khả thi.

2.2. Khó khăn khi liên kết kiến thức phần cứng và phần mềm

Một thách thức lớn là việc kết nối các khái niệm phần cứng với hoạt động của phần mềm. Người học thường khó hình dung làm thế nào một dòng lệnh trong ngôn ngữ lập trình bậc cao lại được dịch thành mã máy và được CPU thực thi thông qua các tín hiệu điện. Các slide bài giảng quản lý hệ thống thường tách biệt hai mảng này, gây khó khăn trong việc xây dựng một cái nhìn tổng thể. Ví dụ, để hiểu về quản lý tiến trình của hệ điều hành, cần phải biết về cơ chế ngắt (interrupt) của phần cứng và vai trò của các thanh ghi (register). Tương tự, để tối ưu hóa hiệu suất bộ nhớ, lập trình viên cần hiểu về bộ nhớ cache và nguyên tắc cục bộ (locality). Việc liên kết được hai thế giới phần cứng và phần mềm là chìa khóa để trở thành một chuyên gia thực thụ trong lĩnh vực hệ thống máy tính.

III. Bí quyết nắm vững Kiến trúc máy tính qua mô hình Von Neumann

Để đơn giản hóa sự phức tạp của hệ thống, việc nắm vững mô hình Von Neumann là một bí quyết quan trọng. Được đề xuất bởi nhà toán học John von Neumann vào năm 1945, kiến trúc này đã đặt nền móng cho hầu hết các máy tính kỹ thuật số hiện đại. Điểm cốt lõi của mô hình này là khái niệm "chương trình được lưu trữ" (stored-program concept), nơi cả lệnh (instruction) và dữ liệu (data) đều được lưu trong cùng một bộ nhớ chung và có thể truy cập được. Điều này tạo ra sự linh hoạt to lớn, cho phép máy tính thực thi các chương trình khác nhau mà không cần thay đổi phần cứng. Một ebook tổ chức máy tính tốt luôn dành một chương riêng để phân tích sâu về mô hình này. Kiến trúc Von Neumann bao gồm ba thành phần chính: Bộ xử lý trung tâm (CPU) chứa đơn vị điều khiển (CU) và Đơn vị Số học và Logic (ALU), một bộ nhớ chính để lưu cả lệnh và dữ liệu, và các thiết bị vào/ra. Việc hiểu rõ cách các thành phần này tương tác với nhau thông qua hệ thống bus để thực hiện một chu kỳ lệnh là chìa khóa để giải mã hoạt động của mọi máy tính.

3.1. Nguyên lý lưu trữ chương trình và dữ liệu trong bộ nhớ

Nguyên lý trung tâm của mô hình Von Neumann là việc lệnh và dữ liệu cùng được lưu trữ trong một bộ nhớ đọc/ghi. Mỗi vị trí trong bộ nhớ được định vị bởi một địa chỉ duy nhất, tuần tự và không phụ thuộc vào nội dung bên trong. Điều này có nghĩa là CPU có thể truy xuất lệnh và dữ liệu từ bộ nhớ theo cùng một cơ chế. Chương trình được thực thi một cách tuần tự, lệnh này tiếp sau lệnh khác, trừ khi có lệnh rẽ nhánh. Đơn vị điều khiển (CU) sử dụng một thanh ghi đặc biệt gọi là Bộ đếm chương trình (Program Counter - PC) để theo dõi địa chỉ của lệnh tiếp theo cần thực thi. Khái niệm này đã cách mạng hóa ngành công nghiệp máy tính, biến chúng từ những cỗ máy tính toán chuyên dụng thành những thiết bị đa năng như ngày nay.

3.2. Vai trò của CPU bộ nhớ và hệ thống I O trong mô hình

Trong kiến trúc Von Neumann, các thành phần có vai trò rõ ràng. Bộ xử lý trung tâm CPU chịu trách nhiệm tìm nạp lệnh từ bộ nhớ (fetch), giải mã chúng (decode), và thực thi (execute). Bộ nhớ chính là kho lưu trữ, cung cấp lệnh và dữ liệu cho CPU và nhận kết quả trả về. Hệ thống vào/ra (I/O) làm cầu nối giữa máy tính và người dùng hoặc các thiết bị khác, cho phép nhập dữ liệu và xuất kết quả. Sự phối hợp nhịp nhàng giữa ba khối này, được điều khiển bởi các tín hiệu từ đơn vị điều khiển và đồng bộ hóa bởi xung nhịp, tạo nên một chu trình hoạt động khép kín. Việc phân tích một chu kỳ lệnh đơn giản – từ việc nạp lệnh vào thanh ghi lệnh (IR) đến việc xử lý dữ liệu trong ALU – là cách tốt nhất để hình dung sự tương tác này.

IV. Phương pháp phân tích bộ xử lý trung tâm CPU chuyên sâu

Phân tích bộ xử lý trung tâm (CPU) là trọng tâm của môn học kiến trúc máy tính. CPU là nơi thực hiện hầu hết các công việc tính toán và điều khiển. Một phương pháp hiệu quả để phân tích CPU là chia nó thành các khối chức năng chính và nghiên cứu sự tương tác giữa chúng. Hai thành phần cốt lõi bên trong CPU là Đơn vị Điều khiển (Control Unit - CU) và Đơn vị Số học và Logic (ALU). CU có nhiệm vụ tìm nạp lệnh từ bộ nhớ, giải mã lệnh và tạo ra các tín hiệu điều khiển để chỉ đạo hoạt động của toàn bộ hệ thống. Trong khi đó, ALU là nơi thực hiện các phép toán số học (cộng, trừ) và logic (AND, OR, NOT) trên dữ liệu. Ngoài ra, CPU còn chứa một tập hợp các thanh ghi (register), là các bộ nhớ tốc độ cao dùng để lưu trữ tạm thời dữ liệu, địa chỉ và trạng thái. Việc hiểu rõ chức năng của từng loại thanh ghi, chẳng hạn như thanh ghi tích lũy (Accumulator), bộ đếm chương trình (PC), thanh ghi lệnh (IR), là rất quan trọng để theo dõi luồng thực thi của một chương trình. Các slide bài giảng quản lý hệ thống thường minh họa chi tiết quá trình này.

4.1. Cấu trúc và chức năng của Đơn vị Số học và Logic ALU

Đơn vị Số học và Logic (ALU) là thành phần tính toán chính của CPU. Nó được xây dựng từ các mạch logic tổ hợp cơ bản để thực hiện các phép toán. Chức năng chính của ALU bao gồm thực hiện các phép toán số học như cộng, trừ, và các phép toán logic như AND, OR, XOR, NOT. Dữ liệu đầu vào cho ALU thường được lấy từ các thanh ghi đa năng, và kết quả sau khi xử lý cũng được lưu trở lại thanh ghi hoặc bộ nhớ. Ngoài ra, ALU còn cập nhật các bit trạng thái trong một thanh ghi đặc biệt gọi là thanh ghi cờ (Flags Register). Các cờ này ghi lại thông tin về kết quả của phép toán vừa thực hiện, ví dụ như kết quả có bằng không (Zero Flag), có số âm (Sign Flag), hoặc có xảy ra tràn số (Overflow Flag). Các cờ này rất quan trọng cho các lệnh điều khiển luồng chương trình, như các lệnh rẽ nhánh có điều kiện.

4.2. Tìm hiểu về thanh ghi register và chu kỳ lệnh cơ bản

Thanh ghi (register) là các đơn vị lưu trữ nhỏ, tốc độ cực cao nằm bên trong CPU. Chúng đóng vai trò quan trọng trong việc tăng tốc độ xử lý bằng cách giảm thiểu số lần truy cập vào bộ nhớ chính vốn chậm hơn nhiều. Có nhiều loại thanh ghi với các chức năng khác nhau: thanh ghi đa năng (lưu trữ dữ liệu), thanh ghi địa chỉ (lưu địa chỉ bộ nhớ), và các thanh ghi điều khiển/trạng thái. Quá trình CPU thực thi một lệnh được gọi là chu kỳ lệnh (instruction cycle), thường bao gồm các bước cơ bản: Tìm nạp (Fetch) lệnh từ bộ nhớ vào thanh ghi lệnh (IR), Giải mã (Decode) lệnh để xác định thao tác cần thực hiện, và Thực thi (Execute) thao tác đó, có thể liên quan đến việc đọc toán hạng từ thanh ghi, thực hiện phép toán trong ALU, và ghi kết quả trở lại. Việc lặp đi lặp lại chu kỳ này cho phép máy tính thực hiện toàn bộ một chương trình.

V. Top khái niệm về hệ thống bus và phân cấp bộ nhớ hiệu quả

Để một hệ thống máy tính hoạt động, các thành phần riêng lẻ như CPU, bộ nhớ và thiết bị I/O phải có khả năng giao tiếp với nhau. Hệ thống bus chính là cơ chế truyền thông đó. Nó là một tập hợp các đường dây điện tử dùng để truyền dữ liệu, địa chỉ và tín hiệu điều khiển giữa các khối chức năng. Một hệ thống bus điển hình bao gồm ba loại bus con: Bus dữ liệu (Data Bus) để truyền dữ liệu, Bus địa chỉ (Address Bus) để xác định vị trí nguồn hoặc đích của dữ liệu, và Bus điều khiển (Control Bus) để quản lý và đồng bộ hóa hoạt động. Một khái niệm quan trọng khác là phân cấp bộ nhớ (memory hierarchy). Do sự đánh đổi giữa tốc độ, dung lượng và chi phí, không có một loại bộ nhớ nào có thể đáp ứng mọi yêu cầu. Thay vào đó, hệ thống sử dụng một hệ thống phân cấp nhiều tầng: từ các thanh ghibộ nhớ cache tốc độ cao, dung lượng nhỏ và đắt tiền ở gần CPU, đến bộ nhớ chính (RAM) lớn hơn và chậm hơn, và cuối cùng là bộ nhớ phụ (ổ cứng, SSD) có dung lượng khổng lồ nhưng tốc độ truy cập chậm nhất. Việc quản lý hiệu quả hệ thống phân cấp này là chìa khóa để đạt được hiệu suất cao.

5.1. Chức năng của hệ thống bus trong liên kết các thành phần

Hệ thống bus hoạt động như một xương sống truyền thông, kết nối tất cả các thành phần chính của máy tính. Bus địa chỉ mang thông tin về địa chỉ ô nhớ hoặc cổng I/O mà CPU muốn truy cập. Độ rộng của bus địa chỉ quyết định không gian địa chỉ tối đa của hệ thống. Bus dữ liệu là một kênh hai chiều, dùng để truyền dữ liệu giữa CPU và các thành phần khác. Độ rộng của bus dữ liệu ảnh hưởng trực tiếp đến thông lượng, tức là lượng dữ liệu có thể truyền trong một đơn vị thời gian. Bus điều khiển mang các tín hiệu định thời và điều khiển, chẳng hạn như tín hiệu đọc/ghi bộ nhớ, yêu cầu ngắt, và tín hiệu xung nhịp. Sự phối hợp hoạt động của ba loại bus này đảm bảo rằng việc trao đổi thông tin trong toàn bộ hệ thống diễn ra một cách chính xác và đồng bộ.

5.2. Tầm quan trọng của bộ nhớ cache và quản lý truy xuất

Bộ nhớ cache là một bộ nhớ nhỏ, cực nhanh nằm giữa CPU và bộ nhớ chính (RAM). Mục đích của nó là khắc phục sự chênh lệch lớn về tốc độ giữa CPU và RAM. Cache hoạt động dựa trên nguyên tắc cục bộ tham chiếu (locality of reference), tức là chương trình có xu hướng truy cập lại các dữ liệu và lệnh đã được sử dụng gần đây. Bằng cách lưu trữ các dữ liệu và lệnh thường xuyên được sử dụng này, cache có thể cung cấp chúng cho CPU nhanh hơn nhiều so với việc phải lấy từ RAM. Điều này làm giảm đáng kể thời gian chờ của CPU và tăng hiệu suất tổng thể của hệ thống. Việc quản lý hiệu quả bộ nhớ cache, bao gồm các thuật toán thay thế và chính sách ghi, là một lĩnh vực nghiên cứu quan trọng trong tổ chức máy tính hiện đại.

04/10/2025

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

Mở đầu Máy tính được cấu thành từ các mạch điện tử tích hợp (integrated circuits – IC) rất phức tạp liên kết với nhau qua hệ thống kênh truyền dẫn được gọi là hệ thống BUS. Các khối chức năng cơ bản được xây dựng với công nghệ tích hợp mật độ lớn gồm đơn vị xử lý trung tâm (CPU – Central Proccessing Unit), khối tạo xung nhịp (Clock), bộ nhớ (Memorry) và các chip tạo các cổng (Port Chips) ghép nối thiết bị ngoại vi như minh hoạ trên Hình II.1 CPU được xây dựng từ các mạch điện tử phức tạp, có khả năng thực thi tất cả các lệnh trong tập lệnh được mô phỏng trước. Bộ nhớ được xây dựng từ các chip nhớ, có khả năng lưu giữ các lệnh của chương trình và dữ liệu. Các chip tạo cổng điều khiển việc truy xuất đến các thiết bị ngoại vi như bàn phím (Keyboard), chuột (Mouse), màn hình (Monitor), máy in (Printer), các ổ đĩa (Disk Drivers).

CPU chỉ truy xuất dữ liệu đến từ (input) và đi ra (output) thiết bị ngoại vi thông qua các chip tạo cổng. Cấu trúc chức năng của máy tính được mô phỏng trên Hình II.1, Hệ điều hành và Ngôn ngữ lập trình bậc cao điều khiển hoạt động của các mạch điện tử trong máy tính. Khi cấp nguồn, chương trình khởi tạo hệ thống sẽ nạp hệ điều hành (boot hệ thống), ngôn ngữ lập trình sẽ được tải vào bộ nhớ nhờ hệ điều hành. 11 Khoa CNTT - Trường Đại học Thái Bình Giáo trình KTMT & QLHTMT Ở mức trên cùng, máy tính có thể thực thi các chương trình ứng dụng.

Các chương trình ứng dụng được sử dụng nhiều như tạo các bảng tính, tạo văn bản, các bản vẽ, …, được viết bằng các ngôn ngữ lập trình khác nhau như C, C++, hoặc là liên kết giữa các ngôn ngữ. Người ta sử dụng ngôn ngữ lập trình trong mối liên kết với hệ điều hành để điều khiển hoạt động chức năng của phần cứng. Ngôn ngữ máy là ngôn ngữ duy nhất bao gồm các chỉ lệnh (Instruction) mà phần cứng có thể hiểu và thực thi, được tạo ra từ các tổ hợp các số biểu diễn theo hệ nhị phân. Các mã nhị phân này được gọi là mã lệnh, chúng tạo nên tập lệnh của CPU, giá trị “0” hoặc “1” làm nhiệm vụ “ngắt” hoặc “đóng” dòng điện để điều khiển hoạt động của các phần tử logic trong mạch điện.

Cần hiểu rằng, tất cả các CPU đều làm việc với mã máy. Một khi sử dụng ngôn ngữ lập trình bậc cao, sử dụng các phát biểu (Statements), các chương trình dịch (Compiler) sẽ chuyển đổi (dịch) chúng ra mã máy để CPU hiểu và thực hiện. Mặc dù vậy, vẫn có thể nói máy tính bao giờ cũng được cấu thành từ các khối chức năng chính sau: 1. Bộ nhớ trung tâm (Central Memory hoặc Main Memory).

Bộ nhớ trung tâm là nơi lưu giữ chương trình và dữ liệu trước khi chương trình được thực hiện. Đơn vị điều khiển (CU - Control Unit), điều khiển mọi hoạt động của tất cả các thành phần trong hệ thống máy tính theo chương trình mà máy tính cần thực hiện. Đơn vị số học và Logic (ALU – Arithmetic & Logic Unit), thực hiện các thao tác xử lý dữ liệu thông qua các phép toán số học và Logic theo sự điều khiển của Đơn vị điều khiển. Đơn vị điều khiển CU và đơn vị số học-logic ALU được tích hợp trong một chip IC và được gọi là Đơn vị xử lý Trung tâm (CPU-Central Proccessing Unit).

Thiết bị vào (Input Device) thực hiện nhiệm vụ thu nhận các thông tin, dữ liệu từ thế giớ bên ngoài, biến đổi thành dạng tương thích với phương thức biểu diễn trong máy tính, đưa vào CPU xử lý hoặc ghi vào bộ nhớ. Thiết bị ra (Output Device) thực hiện nhiệm vụ đưa thông tin, dữ liệu từ CPU hoặc bộ nhớ ra ngoài dưới các dạng thức được người sử dụng yêu cầu. Thiết bị vào và thiết bị ra được gọi chung là nhóm thiết bị ngoại vi (Peripherals). 12 Khoa CNTT - Trường Đại học Thái Bình Giáo trình KTMT & QLHTMT Sau đây ta sẽ tìm hiểu nguyên lý kiến trúc và hoạt động của một máy tính thông qua một máy tính đơn giản nhất.

Máy tính, ở dạng đơn giản nhất, được cấu thành từ bốn khối chức năng cơ bản sau: Khối điều khiển và xử lý dữ liệu: Khối chức năng này được tích hợp trong cùng một vi mạch gọi là Đơn vị xử lý trung tâm (CPU – Central Proccessing Unit). Khối lưu trữ dữ liệu được gọi là bộ nhớ (Memory). Khối chức năng cung cấp dữ liệu cho máy tính xử lý, hoặc phản ánh dữ liệu đã được xử lý do máy tính cung cấp, được gọi là khối các thiết bị nhập xuất (I/O devices). Các kênh truyền dẫn cung cấp sự liên lạc và trao đổi dữ liệu giữa các khối trên, được gọi là kênh liên kết hệ thống (BUS).

Trong một máy tính, mỗi khối thực hiện các chức năng nói trên có thể tồn tại nhiều đơn vị, dưới các dạng khác nhau, trong đó CPU là quan trọng nhất. Đơn vị xử lý trung tâm (CPU) có thể xử lý được các lệnh với khuôn dạng từ lệnh, giả sử với độ dài 8 bit, như sau: B7 B6 B5 B4 B3 B2 B1 B0 Phần chứa mã lệnh Phần chứa địa chỉ toán hạng Lệnh được tạo từ hai phần: Mã lệnh và địa chỉ toán hạng Mã lệnh là một giá trị nhị phân 4 bit, mỗi tổ hợp là một lệnh có chức năng khác nhau, phần chứa địa chỉ toán hạng cũng là một giá trị nhị phân 4 bit, xác định vị trí của ô nhớ trong bộ nhớ. Phần địa chỉ xác định toán hạng mà lệnh trực tiếp xử lý. Đơn vị xử lý trung tâm gồm hai thành phần chức năng: Đơn vị số học- logic ALU (Arithmetic-Logic Unit) và đơn vị điều khiển CU (Control Unit) (Hình II.

Đơn vị điều khiển CU có chức năng lấy lệnh theo tuần tự được lưu giữ từ trong bộ nhớ, giải mã lệnh và tạo các tín hiệu điều khiển hoạt động của các khối chức năng bên trong và bên ngoài CPU. Lệnh đọc từ ô nhớ được đưa vào thanh ghi lệnh IR, được giải mã tại khối giải mã lệnh ID để xác định công việc CPU cần thực hiện. 13 Khoa CNTT - Trường Đại học Thái Bình Giáo trình KTMT & QLHTMT WR Hình II. Sơ đồ cấu trúc máy tính đơn giản Đơn vị điều khiển CU gồm thanh ghi lệnh IR (Instruction Register), là nơi chứa lệnh mà CPU đọc về từ ô nhớ lệnh, bao gồm cả phần mã lệnh và phần địa chỉ toán hạng, khối giải mã lệnh ID (Instruction Decoder), mạch giải mã này giải mã lệnh để xác định nhiệm vụ mà lệnh yêu cấu CPU xử lý, tạo các tín hiệu điều khiển các tác vụ của CPU khi thực thi lệnh và thanh đếm chương trình PC (Program Counter).

Thanh đếm chương trình PC làm nhiệm vụ con trỏ lệnh (Instruction Pointer), chứa địa chỉ của ô nhớ chứa lệnh sẽ thực thi trong tuần tự thực hiện chương trình. Do vậy sau khi CPU đọc được một lệnh từ bộ nhớ chương trình, sau khi được giải mã, thông qua điều khiển của CU thì PC được tăng nội dung lên để chỉ vào ô nhớ chứa lệnh tiếp theo. Trong trường hợp gặp lệnh rẽ nhánh hay lệnh gọi chương trình con, nội dung thanh đếm PC thay đổi tuỳ theo giá trị địa chỉ mà chương trình dịch gán cho nhãn hay tên chương trình con được xác định bởi người lập trình. CPU có các thanh ghi: thanh ghi gộp (Acc – Accummulator), thanh ghi tạm thời TEMP (temporary), thanh ghi đệm địa chỉ MAR (Memory Address Register), thanh ghi đệm bộ nhớ MBR (Memory Buffer Register), và thanh ghi cờ Flags.

Thanh ghi Acc được sử dụng để chứa nội dung một toán hạng, và thông thường là nơi chứa kết quả thực hiện phép toán, thanh ghi tạm thời chứa nội dung toán hạng thứ hai trong các phép toán hai ngôi. Nội dung thanh ghi MAR là địa chỉ của ô nhớ mà CPU 14 Khoa CNTT - Trường Đại học Thái Bình Giáo trình KTMT & QLHTMT đang truy xuất, còn nội dung thanh ghi MBR là dữ liệu đọc được từ bộ nhớ hoặc sẽ được ghi vào ô nhớ. Thanh ghi cờ Flags gồm các bit biểu diễn trạng thái của kết quả thực hiện phép toán xử lý dữ liệu của CPU, Trong trường hợp đơn giản, thanh ghi cờ có 3 bit, đó là bit dấu (S – Sign) biểu diễn giá trị dữ liệu là âm hay dương, bit không (Z-Zero) biểu diễn kết quả phép toán khác 0 hay bằng 0, bit nhớ (C – Carry) biểu diễn trạng thái kết quả phép toán có bit nhớ hay không có bit nhớ. Giá trị các bit cờ trạng thái được định nghĩa như sau: Kết quả là một số âm: (S) = 1 ; dấu ngoặc thể hiện nội dung của bit Kết quả bằng 0: (Z) = 1 Kết quả có nhớ: (C) = 1 Hoạt động thực thi một lệnh trong chương trình của máy tính có thể tóm tắt như sau: Chương trình và số liệu ban đầu được lưu giữ ở bộ nhớ trung tâm, đó là bộ nhớ ROM (Read Only Memory), RAM (Random Access Memory).

Bắt đầu chương trình, lệnh đầu tiên của chương trình trong vùng nhớ chương trình được đưa vào thanh ghi lệnh IR của đơn vị điều khiển (CU). Tác vụ được gọi là tác vụ nhận lệnh (Instruction Fetch). CU tiến hành giải mã lệnh, xác định nội dung phép toán cần xử lý là phép tính nào, trên các dữ liệu nào. Đây là tác vụ giải mã lệnh (ID – Instruction Decoder).

Nếu lệnh đòi hỏi làm việc với các toán hạng (được xác định trong lệnh), CU xác định địa chỉ tương ứng của toán hạng trong vùng nhớ dữ liệu hoặc được nhập vào từ thiết bị ngoại vi. Tác vụ này được gọi là tạo địa chỉ toán hạng (GOA - Generate Operand Address). Sau khi địa chỉ toán hạng được tạo, CU phát các tín hiệu điều khiển tới các thành phần liên quan để nhận toán hạng, đặt vào các thanh ghi xác định trong CPU. Tác vụ được gọi là nhận toán hạng (Operand Fetch) 5.

CU phát các tín hiệu điều khiển tới Đơn vị Số học-Logic (ALU). ALU thực hiện phép toán được yêu cầu trong mã lệnh. Tác vụ này gọi là thực hiện (Execute). Kết quả xử lý được đặt trong thanh ghi gộp (Acc) hoặc được lưu vào bộ nhớ trong tuỳ thuộc sự xác định nơi lưu giữ thể hiện đích (destination) trong lệnh.

Tác vụ được gọi là Ghi lại kết quả (Write Back).

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