Ôn Thi Kiến Trúc Máy Tính: Cẩm Nang Kiến Thức Từ A-Z

Ôn Thi Kiến Trúc Máy Tính: Cẩm Nang Kiến Thức Từ A-Z

Ôn Thi Kiến Trúc Máy Tính: Cẩm Nang Kiến Thức Từ A-Z

Chào mừng bạn đến với cẩm nang ôn thi kiến trúc máy tính toàn diện, được biên soạn đặc biệt dành cho sinh viên và những ai đang tìm kiếm tài liệu chuyên sâu để nắm vững các khái niệm cơ bản đến nâng cao. Kiến trúc máy tính là môn học nền tảng, mở ra cánh cửa hiểu biết về cách thức hoạt động của mọi thiết bị điện tử thông minh. Bài viết này từ lavender-panther-755911.hostingersite.com không chỉ cung cấp kiến thức giá trị, mà còn đi sâu phân tích từng thành phần, nguyên lý hoạt động, giúp bạn không chỉ vượt qua kỳ thi mà còn xây dựng nền tảng vững chắc cho sự nghiệp công nghệ.

Ôn Thi Kiến Trúc Máy Tính: Cẩm Nang Kiến Thức Từ A-Z

Table of Contents

Kiến Trúc Von Neumann: Nền Tảng Của Mọi Hệ Thống Máy Tính Hiện Đại

Kiến trúc Von Neumann là một mô hình thiết kế máy tính được đề xuất bởi nhà toán học John von Neumann vào năm 1945. Đây là nền tảng cho hầu hết các máy tính hiện đại, từ máy tính cá nhân đến siêu máy tính, bởi khả năng linh hoạt và hiệu quả trong việc xử lý cả lệnh và dữ liệu. Mô hình này đã cách mạng hóa ngành điện toán bằng cách hợp nhất không gian bộ nhớ cho cả chương trình và dữ liệu, cho phép máy tính có khả năng lưu trữ và tự thay đổi chương trình.

Sơ Đồ Khối Và Các Thành Phần Cơ Bản

Mô hình Von Neumann định nghĩa một cấu trúc máy tính với bốn thành phần chính hoạt động phối hợp thông qua một hệ thống bus. Sự đơn giản nhưng mạnh mẽ của sơ đồ khối này đã chứng minh tính hiệu quả của nó qua nhiều thập kỷ phát triển công nghệ. Hiểu rõ từng khối là bước đầu tiên để ôn thi kiến trúc máy tính một cách hiệu quả.

Chức Năng Chi Tiết Của Từng Khối

Mỗi khối trong kiến trúc Von Neumann đóng một vai trò quan trọng, góp phần vào hoạt động trơn tru của toàn bộ hệ thống. Sự phối hợp nhịp nhàng giữa các khối này tạo nên khả năng xử lý thông tin phức tạp mà chúng ta thấy ở máy tính ngày nay.

Xem Thêm Bài Viết:

Bộ Nhớ Chính (Main Memory)

Bộ nhớ chính, hay RAM (Random Access Memory), là nơi lưu trữ tạm thời cả dữ liệu và các lệnh của chương trình đang chạy. Đặc điểm nổi bật của bộ nhớ này là khả năng truy cập ngẫu nhiên, cho phép CPU đọc hoặc ghi dữ liệu vào bất kỳ vị trí nào với tốc độ gần như ngang nhau. Dung lượng và tốc độ của bộ nhớ chính có ảnh hưởng lớn đến hiệu suất tổng thể của hệ thống, đặc biệt khi chạy các ứng dụng nặng hoặc xử lý đa nhiệm. Đây là một khái niệm cơ bản khi bạn ôn thi kiến trúc máy tính.

Bộ Số Học Và Logic (Arithmetic Logic Unit – ALU)

ALU là trái tim tính toán của CPU, chịu trách nhiệm thực hiện tất cả các phép toán số học (cộng, trừ, nhân, chia) và các phép toán logic (AND, OR, NOT, XOR). Mọi hoạt động xử lý dữ liệu của máy tính đều phải thông qua ALU. Hiệu năng của ALU, bao gồm tốc độ và độ chính xác, quyết định khả năng xử lý các tác vụ tính toán phức tạp của CPU. Các bộ vi xử lý hiện đại thường có nhiều ALU hoặc ALU được tối ưu hóa để thực hiện song song nhiều phép toán.

Khối Điều Khiển (Control Unit – CU)

Khối điều khiển là bộ não điều phối mọi hoạt động trong CPU và toàn bộ hệ thống máy tính. Chức năng chính của CU là giải mã các lệnh từ bộ nhớ, sau đó tạo ra các tín hiệu điều khiển phù hợp để các khối khác (như ALU, bộ nhớ, I/O) thực hiện công việc của mình. CU đảm bảo rằng các lệnh được thực thi đúng trình tự và tài nguyên được quản lý hiệu quả. Vai trò của CU là cực kỳ quan trọng trong quá trình ôn thi kiến trúc máy tính vì nó liên quan trực tiếp đến chu trình Fetch-Decode-Execute.

Hệ Thống Vào/Ra (I/O)

Hệ thống vào/ra (Input/Output) bao gồm các thiết bị và các giao diện cho phép máy tính tương tác với thế giới bên ngoài. Các thiết bị vào (bàn phím, chuột, máy quét) nhận thông tin từ người dùng hoặc môi trường, trong khi các thiết bị ra (màn hình, máy in, loa) hiển thị hoặc xuất thông tin ra. Khối I/O trong kiến trúc Von Neumann hoạt động dưới sự điều khiển của CU, đảm bảo dữ liệu được truyền tải đúng cách và hiệu quả giữa các thiết bị ngoại vi và bộ nhớ/CPU.

Ôn Thi Kiến Trúc Máy Tính: Cẩm Nang Kiến Thức Từ A-Z

Hệ Thống Bus: Xương Sống Truyền Dữ Liệu Trong Máy Tính

Hệ thống bus là một tập hợp các đường truyền dẫn điện tử được sử dụng để truyền dữ liệu, địa chỉ và tín hiệu điều khiển giữa các thành phần khác nhau của máy tính. Nó đóng vai trò như các “con đường” cao tốc, cho phép các khối như CPU, bộ nhớ và các thiết bị ngoại vi giao tiếp với nhau. Hiểu về các loại bus và cách chúng hoạt động là rất quan trọng khi ôn thi kiến trúc máy tính.

Các Loại Bus Và Chức Năng Đặc Thù

Có ba loại bus chính, mỗi loại có một chức năng riêng biệt nhưng đều cần thiết cho sự vận hành của hệ thống máy tính.

Bus Địa Chỉ (Address Bus)

Bus địa chỉ chịu trách nhiệm vận chuyển các địa chỉ nhớ hoặc địa chỉ cổng vào/ra. Khi CPU muốn đọc hoặc ghi dữ liệu vào một vị trí cụ thể trong bộ nhớ hoặc một thiết bị ngoại vi, nó sẽ đặt địa chỉ của vị trí đó lên bus địa chỉ. Số lượng đường (bit) trên bus địa chỉ quyết định không gian địa chỉ mà CPU có thể truy cập. Một bus địa chỉ rộng hơn cho phép máy tính quản lý dung lượng bộ nhớ lớn hơn. Ví dụ, nếu bus địa chỉ có N đường, máy tính có thể tham chiếu đến 2^N vị trí nhớ.

Bus Dữ Liệu (Data Bus)

Bus dữ liệu là đường truyền chính để vận chuyển dữ liệu thực tế giữa CPU, bộ nhớ và các thiết bị I/O. Nó là đường truyền hai chiều, cho phép dữ liệu di chuyển cả vào và ra khỏi CPU. Độ rộng của bus dữ liệu (ví dụ: 8-bit, 16-bit, 32-bit, 64-bit) xác định lượng dữ liệu có thể được truyền tải trong một lần. Bus dữ liệu rộng hơn có nghĩa là thông tin được truyền nhanh hơn, cải thiện hiệu suất tổng thể của hệ thống.

Bus Điều Khiển (Control Bus)

Bus điều khiển mang các tín hiệu điều khiển và đồng bộ hóa từ CPU đến các thành phần khác, và ngược lại. Các tín hiệu này bao gồm các lệnh đọc/ghi bộ nhớ (MEMR#, MEMW#), đọc/ghi I/O (IOR#, IOW#), yêu cầu ngắt (IRQ), tín hiệu đồng bộ hóa (Clock), và các tín hiệu trạng thái khác. Bus điều khiển đảm bảo rằng tất cả các hoạt động được thực hiện theo đúng trình tự và không xảy ra xung đột.

Tính Toán Không Gian Bộ Nhớ Tham Chiếu

Như đã đề cập, số lượng đường trên bus địa chỉ quyết định dung lượng bộ nhớ tối đa mà một hệ thống có thể truy cập. Nếu một bus địa chỉ có N đường, nó có thể tạo ra 2^N địa chỉ khác nhau. Mỗi địa chỉ thường trỏ đến một byte (8 bit) dữ liệu.

Ví dụ: Nếu bus địa chỉ có N = 40 đường.
Số lượng địa chỉ có thể tham chiếu = 2^N = 2^40.
Để chuyển đổi sang các đơn vị bộ nhớ quen thuộc:

  • 2^10 = 1 KB (Kilobyte)
  • 2^20 = 1 MB (Megabyte)
  • 2^30 = 1 GB (Gigabyte)
  • 2^40 = 1 TB (Terabyte)

Vậy, nếu bus địa chỉ có N = 40 đường, không gian bộ nhớ có thể tham chiếu được là 2^40 byte, tương đương 1 Terabyte (TB). Đây là một con số rất lớn, cho phép truy cập lượng dữ liệu khổng lồ.

Các Hệ Thống Số: Nền Tảng Biểu Diễn Thông Tin Trong Kiến Trúc Máy Tính

Trong kiến trúc máy tính, tất cả dữ liệu và lệnh đều được biểu diễn dưới dạng các số nhị phân (binary). Tuy nhiên, để dễ dàng làm việc và hiểu được, chúng ta thường chuyển đổi giữa các hệ cơ số khác nhau như thập phân (decimal), nhị phân (binary), bát phân (octal) và thập lục phân (hexadecimal). Nắm vững các nguyên tắc chuyển đổi là kiến thức cốt lõi khi ôn thi kiến trúc máy tính.

Nguyên Tắc Chuyển Đổi Số Thập Phân Sang Nhị Phân, Bát Phân, Thập Lục Phân

Phương pháp chung để chuyển đổi một số thập phân sang một hệ cơ số khác là sử dụng phép chia liên tiếp và lấy phần dư.

Chuyển Đổi Thập Phân Sang Nhị Phân (Cơ số 10 -> Cơ số 2)

Để chuyển một số thập phân sang nhị phân, ta thực hiện phép chia liên tiếp số đó cho 2, ghi lại phần dư sau mỗi lần chia. Quá trình này tiếp tục cho đến khi thương số bằng 0. Dãy số nhị phân thu được bằng cách đọc các phần dư từ dưới lên trên.

Ví dụ: Chuyển đổi số 25 (hệ thập phân) sang nhị phân.

  • 25 ÷ 2 = 12 dư 1
  • 12 ÷ 2 = 6 dư 0
  • 6 ÷ 2 = 3 dư 0
  • 3 ÷ 2 = 1 dư 1
  • 1 ÷ 2 = 0 dư 1
    Đọc các số dư từ dưới lên: 11001.
    Vậy, 25 (hệ thập phân) = 11001 (hệ nhị phân).

Chuyển Đổi Thập Phân Sang Bát Phân (Cơ số 10 -> Cơ số 8)

Tương tự, để chuyển một số thập phân sang bát phân, ta chia liên tiếp số đó cho 8 và ghi lại phần dư. Đọc các phần dư từ dưới lên trên.

Ví dụ: Chuyển đổi số 179 (hệ thập phân) sang bát phân.

  • 179 ÷ 8 = 22 dư 3
  • 22 ÷ 8 = 2 dư 6
  • 2 ÷ 8 = 0 dư 2
    Đọc các số dư từ dưới lên: 263.
    Vậy, 179 (hệ thập phân) = 263 (hệ bát phân).

Chuyển Đổi Thập Phân Sang Thập Lục Phân (Cơ số 10 -> Cơ số 16)

Để chuyển một số thập phân sang thập lục phân, ta chia liên tiếp số đó cho 16 và ghi lại phần dư. Lưu ý, trong hệ thập lục phân, các số từ 10 đến 15 được biểu diễn bằng các chữ cái A đến F (10=A, 11=B, 12=C, 13=D, 14=E, 15=F).

Ví dụ: Chuyển đổi số 255 (hệ thập phân) sang thập lục phân.

  • 255 ÷ 16 = 15 dư 15 (F)
  • 15 ÷ 16 = 0 dư 15 (F)
    Đọc các số dư từ dưới lên: FF.
    Vậy, 255 (hệ thập phân) = FF (hệ thập lục phân).

Chuyển Đổi Ngược Lại Từ Nhị Phân, Bát Phân, Thập Lục Phân Sang Thập Phân

Để chuyển đổi từ một hệ cơ số bất kỳ (binary, octal, hexadecimal) sang hệ thập phân, ta nhân từng chữ số của số đó với lũy thừa của cơ số tương ứng với vị trí của chữ số, sau đó cộng tất cả các kết quả lại. Vị trí được đếm từ phải sang trái, bắt đầu từ 0.

Chuyển Đổi Nhị Phân Sang Thập Phân (Cơ số 2 -> Cơ số 10)

Mỗi chữ số nhị phân (bit) được nhân với 2 mũ vị trí của nó.

Ví dụ: Chuyển đổi 11001 (hệ nhị phân) sang thập phân.

  • 1 2^4 + 1 2^3 + 0 2^2 + 0 2^1 + 1 2^0
  • = 1 16 + 1 8 + 0 4 + 0 2 + 1 1
  • = 16 + 8 + 0 + 0 + 1 = 25.
    Vậy, 11001 (hệ nhị phân) = 25 (hệ thập phân).

Chuyển Đổi Bát Phân Sang Thập Phân (Cơ số 8 -> Cơ số 10)

Mỗi chữ số bát phân được nhân với 8 mũ vị trí của nó.

Ví dụ: Chuyển đổi 263 (hệ bát phân) sang thập phân.

  • 2 8^2 + 6 8^1 + 3 8^0
  • = 2 64 + 6 8 + 3 1
  • = 128 + 48 + 3 = 179.
    Vậy, 263 (hệ bát phân) = 179 (hệ thập phân).

Chuyển Đổi Thập Lục Phân Sang Thập Phân (Cơ số 16 -> Cơ số 10)

Mỗi chữ số thập lục phân được chuyển đổi về giá trị thập phân tương ứng (A=10, B=11,… F=15), sau đó nhân với 16 mũ vị trí của nó.

Ví dụ: Chuyển đổi FF (hệ thập lục phân) sang thập phân.

  • F 16^1 + F 16^0
  • = 15 16 + 15 1
  • = 240 + 15 = 255.
    Vậy, FF (hệ thập lục phân) = 255 (hệ thập phân).

Phương Pháp Vào/Ra (I/O) Trong Máy Tính: Giao Tiếp Hiệu Quả Với Thế Giới Bên Ngoài

Hệ thống vào/ra (I/O) là cầu nối quan trọng cho phép máy tính tương tác với người dùng và các thiết bị ngoại vi. Các phương pháp I/O khác nhau được phát triển để tối ưu hóa hiệu suất, giảm tải cho CPU và tăng cường khả năng phản hồi của hệ thống. Hiểu rõ các phương pháp này là một phần không thể thiếu khi ôn thi kiến trúc máy tính.

Địa Chỉ Hóa Cổng Vào/Ra (I/O-Mapped I/O / Isolated I/O)

Phương pháp địa chỉ hóa cổng vào/ra, còn gọi là I/O-Mapped I/O hoặc Isolated I/O, sử dụng một không gian địa chỉ riêng biệt cho các cổng I/O, tách rời khỏi không gian địa chỉ bộ nhớ. Điều này có nghĩa là CPU sử dụng các lệnh chuyên dụng (như IN và OUT trong kiến trúc x86) để giao tiếp với các thiết bị I/O.

Ưu điểm của phương pháp này là sự phân tách rõ ràng giữa bộ nhớ và I/O, giúp giảm thiểu rủi ro xung đột địa chỉ và đơn giản hóa việc quản lý bộ nhớ. Tuy nhiên, nhược điểm là CPU cần có thêm các tập lệnh I/O đặc biệt, và tốc độ truy cập I/O có thể chậm hơn so với truy cập bộ nhớ. Phương pháp này phổ biến trong các kiến trúc cũ hơn và một số hệ thống nhúng.

Vào/Ra Theo Ánh Xạ Bộ Nhớ (Memory-Mapped I/O)

Trong phương pháp Memory-Mapped I/O, các cổng của thiết bị I/O được ánh xạ vào một phần của không gian địa chỉ bộ nhớ chính. Điều này có nghĩa là CPU coi các thanh ghi điều khiển và dữ liệu của thiết bị I/O như những vị trí bộ nhớ thông thường. CPU có thể sử dụng cùng các lệnh đọc/ghi bộ nhớ (như MOV trong x86) để giao tiếp với các thiết bị I/O, mà không cần các lệnh I/O chuyên dụng.

Ưu điểm chính của Memory-Mapped I/O là sự đơn giản trong thiết kế phần cứng và lập trình, vì CPU không cần tập lệnh I/O riêng. Nó cũng có thể tận dụng các chế độ địa chỉ hóa phức tạp của bộ nhớ. Nhược điểm là một phần không gian địa chỉ bộ nhớ bị chiếm dụng bởi I/O, và tốc độ truy cập có thể bị giới hạn bởi tốc độ của bus bộ nhớ. Tuy nhiên, với tốc độ bus hiện đại, đây thường không còn là vấn đề lớn. Memory-Mapped I/O được sử dụng rộng rãi trong hầu hết các kiến trúc máy tính hiện đại, bao gồm ARM và PowerPC.

Các Cơ Chế Điều Khiển Vào/Ra

Để quản lý việc truyền dữ liệu giữa CPU và các thiết bị I/O, có ba cơ chế điều khiển chính, mỗi cơ chế có ưu nhược điểm riêng và được sử dụng trong các tình huống khác nhau. Đây là một phần quan trọng để hiểu sâu hơn khi ôn thi kiến trúc máy tính.

Vào/Ra Bằng Chương Trình (Programmed I/O – Polling)

Trong Programmed I/O (PIO), CPU trực tiếp điều khiển các hoạt động I/O bằng cách liên tục kiểm tra trạng thái của thiết bị ngoại vi (gọi là “polling”). CPU gửi lệnh I/O và sau đó liên tục đọc một thanh ghi trạng thái của thiết bị để xem liệu thiết bị đã sẵn sàng gửi hoặc nhận dữ liệu hay chưa, hoặc liệu thao tác đã hoàn tất.

  • Ưu điểm: Đơn giản trong thiết kế và triển khai phần cứng lẫn phần mềm.
  • Nhược điểm: CPU phải dành phần lớn thời gian để chờ đợi thiết bị I/O, dẫn đến lãng phí tài nguyên CPU và giảm hiệu suất hệ thống đáng kể, đặc biệt với các thiết bị chậm. Tốc độ truyền dữ liệu bị hạn chế.

Vào/Ra Bằng Ngắt (Interrupt-Driven I/O)

Để khắc phục nhược điểm của PIO, cơ chế vào/ra bằng ngắt (Interrupt-Driven I/O) được phát triển. Thay vì CPU liên tục thăm dò trạng thái thiết bị, thiết bị ngoại vi sẽ gửi một tín hiệu ngắt (interrupt) đến CPU khi nó đã sẵn sàng hoặc khi một thao tác I/O hoàn tất.

Khi nhận được ngắt, CPU tạm dừng công việc hiện tại, lưu lại trạng thái, và nhảy đến một chương trình con xử lý ngắt (Interrupt Service Routine – ISR) tương ứng. Sau khi ISR hoàn thành, CPU phục hồi trạng thái và tiếp tục công việc bị gián đoạn.

  • Ưu điểm: Giảm đáng kể tải cho CPU, cho phép CPU thực hiện các công việc khác trong khi chờ đợi I/O. Cải thiện hiệu suất hệ thống.
  • Nhược điểm: Vẫn yêu cầu CPU tham gia vào mỗi lần truyền dữ liệu, và việc xử lý ngắt cũng tốn một lượng thời gian nhất định (overhead).

Truy Cập Bộ Nhớ Trực Tiếp (DMA – Direct Memory Access)

Truy cập bộ nhớ trực tiếp (DMA) là cơ chế tiên tiến nhất để truyền dữ liệu giữa thiết bị ngoại vi và bộ nhớ chính mà không cần sự can thiệp của CPU cho mỗi byte dữ liệu. DMA sử dụng một bộ điều khiển DMA (DMAC – DMA Controller) chuyên dụng.

Khi CPU muốn truyền một khối dữ liệu lớn, nó sẽ thiết lập DMAC với các thông tin như địa chỉ bắt đầu trong bộ nhớ, địa chỉ thiết bị I/O, và số lượng byte cần truyền. Sau đó, CPU kích hoạt DMAC và tiếp tục thực hiện các tác vụ khác. DMAC sẽ tự mình quản lý việc truyền dữ liệu trực tiếp giữa thiết bị I/O và bộ nhớ, chỉ gửi một tín hiệu ngắt đến CPU khi toàn bộ khối dữ liệu đã được truyền xong.

  • Ưu điểm: Giảm tải tối đa cho CPU, cho phép CPU tự do thực hiện các công việc khác. Tăng tốc độ truyền dữ liệu đáng kể cho các khối lượng lớn.
  • Nhược điểm: Phức tạp hơn trong thiết kế phần cứng và lập trình. DMAC có thể cần truy cập bus hệ thống, đôi khi gây ra “cycle stealing” từ CPU.

Bộ Nhớ Trong Máy Tính: Các Cấp Độ Và Vai Trò Quyết Định Hiệu Năng

Bộ nhớ là một thành phần thiết yếu trong kiến trúc máy tính, chịu trách nhiệm lưu trữ dữ liệu và các chương trình để CPU có thể truy cập và xử lý. Hệ thống bộ nhớ được tổ chức theo một cấu trúc phân cấp, nơi mỗi cấp độ có đặc điểm riêng về tốc độ, dung lượng và chi phí, tối ưu hóa sự cân bằng giữa hiệu suất và giá thành. Nắm vững cấu trúc này rất quan trọng để ôn thi kiến trúc máy tính.

Chức Năng Và Đặc Điểm Tổng Quát Của Bộ Nhớ Trong

Bộ nhớ trong của máy tính đề cập đến các loại bộ nhớ mà CPU có thể truy cập trực tiếp và nhanh chóng. Chức năng chính của nó là cung cấp dữ liệu và lệnh cho CPU một cách kịp thời để đảm bảo hiệu suất hoạt động cao nhất.

Các đặc điểm chung của bộ nhớ trong bao gồm:

  • Tốc độ: Rất nhanh, giúp CPU không phải chờ đợi.
  • Dung lượng: Thường nhỏ hơn bộ nhớ ngoài (như ổ cứng) do chi phí cao.
  • Tính bất biến (Volatility): Hầu hết bộ nhớ trong là RAM, sẽ mất dữ liệu khi mất điện. Một số ít là ROM, không mất dữ liệu.
  • Công nghệ: Chủ yếu sử dụng bán dẫn.

Bộ Nhớ Chính (Main Memory)

Bộ nhớ chính, thường là RAM (Random Access Memory), là nơi lưu trữ tạm thời các chương trình đang chạy và dữ liệu mà CPU cần truy cập ngay lập tức. Nó được tổ chức thành các ngăn nhớ, mỗi ngăn có một địa chỉ vật lý duy nhất. Dung lượng của bộ nhớ chính được tính bằng byte hoặc megabyte/gigabyte.

Điểm đặc trưng của bộ nhớ chính là khả năng truy cập ngẫu nhiên (random access), nghĩa là CPU có thể truy cập bất kỳ byte nào trong bộ nhớ với thời gian gần như bằng nhau. Nội dung của các ngăn nhớ có thể thay đổi (đọc/ghi), nhưng địa chỉ vật lý của chúng là cố định. Điều này đảm bảo CPU luôn biết cách tìm đến dữ liệu đã lưu. Bộ nhớ chính đóng vai trò cốt lõi trong hoạt động đa nhiệm và tốc độ phản hồi của hệ thống.

Bộ Nhớ Cache (Bộ Nhớ Đệm)

Bộ nhớ cache là một loại bộ nhớ rất nhanh, dung lượng nhỏ, được đặt giữa CPU và bộ nhớ chính. Mục đích chính của cache là giảm thiểu “khoảng cách tốc độ” giữa CPU siêu nhanh và bộ nhớ chính chậm hơn nhiều. Cache lưu trữ các bản sao của dữ liệu và lệnh mà CPU có khả năng sẽ sử dụng lại trong tương lai gần (dựa trên nguyên tắc tính cục bộ của dữ liệu – locality of reference).

Các đặc điểm nổi bật của bộ nhớ cache:

  • Tốc độ siêu nhanh: Thường được làm bằng công nghệ SRAM (Static RAM), nhanh hơn DRAM của bộ nhớ chính hàng chục đến hàng trăm lần.
  • Dung lượng nhỏ: Do chi phí sản xuất cao, cache có dung lượng giới hạn, thường chỉ vài KB đến vài MB.
  • Phân cấp: Thường có nhiều cấp độ (L1, L2, L3 cache), với L1 là nhanh nhất và gần CPU nhất, L3 là lớn nhất và chậm nhất trong các cấp cache.
  • Tích hợp CPU: Các cấp cache L1 và L2 thường được tích hợp trực tiếp vào chip vi xử lý để đạt tốc độ truy cập tối đa. Một số CPU còn tích hợp L3 cache.
  • Tính trong suốt: CPU thường không cần biết về sự tồn tại của cache, việc quản lý cache được thực hiện tự động bởi phần cứng.

Việc sử dụng cache hiệu quả giúp tăng đáng kể tốc độ xử lý của CPU bằng cách giảm số lần CPU phải chờ đợi dữ liệu từ bộ nhớ chính. Đây là một tối ưu hóa hiệu suất quan trọng mà bạn sẽ cần tìm hiểu khi ôn thi kiến trúc máy tính.

Các Loại RAM: DRAM và SRAM Trong Kiến Trúc Máy Tính

RAM (Random Access Memory) là bộ nhớ truy cập ngẫu nhiên, đóng vai trò quan trọng như bộ nhớ chính của máy tính. Có hai loại RAM chính mà bạn cần biết khi ôn thi kiến trúc máy tính: SRAM (Static RAM) và DRAM (Dynamic RAM), chúng khác nhau về công nghệ, đặc điểm và ứng dụng.

SRAM (Static RAM) – RAM Tĩnh

SRAM là loại RAM tốc độ cao và giữ dữ liệu ổn định miễn là có điện.

  • Cấu tạo: Mỗi bit dữ liệu trong SRAM được lưu trữ bằng một mạch flip-flop, thường gồm 4-6 transistor. Mạch flip-flop có khả năng giữ trạng thái (0 hoặc 1) mà không cần làm mới định kỳ.
  • Đặc điểm:
    • Không cần làm mới (refresh): Dữ liệu được giữ ổn định miễn là nguồn điện được cung cấp.
    • Tốc độ rất nhanh: Do cấu trúc phức tạp và không cần chu trình refresh.
    • Chi phí cao: Mỗi cell nhớ cần nhiều transistor, làm tăng chi phí sản xuất và giảm mật độ chip.
    • Dung lượng thấp: So với DRAM trên cùng một diện tích chip, SRAM có dung lượng thấp hơn.
  • Ứng dụng: Do tốc độ và chi phí, SRAM được sử dụng chủ yếu làm bộ nhớ cache (L1, L2, L3 cache) bên trong CPU hoặc trong các ứng dụng yêu cầu tốc độ truy cập cực nhanh.

DRAM (Dynamic RAM) – RAM Động

DRAM là loại RAM phổ biến nhất được sử dụng làm bộ nhớ chính của máy tính. Nó có chi phí thấp hơn và dung lượng cao hơn SRAM.

  • Cấu tạo: Mỗi bit dữ liệu trong DRAM được lưu trữ bằng một tụ điện và một transistor. Tụ điện có xu hướng mất điện tích theo thời gian, do đó dữ liệu cần được “làm tươi” (refresh) định kỳ để không bị mất.
  • Đặc điểm:
    • Cần làm mới (refresh): Mạch điều khiển bộ nhớ phải liên tục đọc và ghi lại dữ liệu (làm mới) hàng ngàn lần mỗi giây để duy trì thông tin.
    • Tốc độ chậm hơn: So với SRAM do cần chu trình làm mới và cấu trúc tụ điện.
    • Chi phí thấp: Mỗi cell nhớ chỉ cần một tụ điện và một transistor, làm giảm chi phí sản xuất và tăng mật độ chip.
    • Dung lượng lớn: Có thể đạt dung lượng rất cao trên một chip.
  • Ứng dụng: DRAM được sử dụng rộng rãi làm bộ nhớ chính (RAM hệ thống) trong máy tính cá nhân, máy chủ, và các thiết bị điện tử khác, nơi yêu cầu dung lượng lớn với chi phí hợp lý. Các loại DRAM phổ biến hiện nay bao gồm DDR4, DDR5.

Biểu Diễn Số Nguyên Trong Kiến Trúc Máy Tính

Trong kiến trúc máy tính, số nguyên được biểu diễn bằng một chuỗi các bit (0 và 1). Tùy thuộc vào việc số nguyên là không dấu hay có dấu, và cách xử lý dấu, có nhiều phương pháp biểu diễn khác nhau. Hiểu rõ các phương pháp này là kiến thức cơ bản để ôn thi kiến trúc máy tính.

Biểu Diễn Số Nguyên Không Dấu

Số nguyên không dấu (unsigned integers) chỉ biểu diễn các giá trị không âm. Với một số bit nhất định, phạm vi giá trị có thể biểu diễn được từ 0 đến 2^N – 1, trong đó N là số bit.

Ví dụ: Với 8 bit, số nguyên không dấu có thể biểu diễn từ 0 (00000000) đến 255 (11111111).

  • 00000000 = 0
  • 00000001 = 1
  • 11111111 = 2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255.

Biểu Diễn Số Nguyên Có Dấu

Biểu diễn số nguyên có dấu phức tạp hơn vì cần phải thể hiện cả giá trị dương và âm. Có ba phương pháp chính: dạng dấu lượng, dạng bù 1 và dạng bù 2.

Dạng Dấu Lượng (Sign-Magnitude)

Trong dạng dấu lượng, bit ngoài cùng bên trái (Most Significant Bit – MSB) được dùng để biểu thị dấu: 0 cho số dương và 1 cho số âm. Các bit còn lại biểu diễn giá trị tuyệt đối của số.

Ví dụ: Với 8 bit:

  • +5 = 00000101 (bit dấu là 0, giá trị là 5)
  • -5 = 10000101 (bit dấu là 1, giá trị là 5)

Ưu điểm: Dễ hiểu và dễ chuyển đổi sang số thập phân.
Nhược điểm:

  • Có hai cách biểu diễn cho số 0 (+0 = 00000000, -0 = 10000000), gây phức tạp trong phép toán.
  • Các phép toán cộng/trừ phức tạp hơn vì phải kiểm tra dấu trước khi thực hiện.

Dạng Bù 1 (One’s Complement)

Để biểu diễn số âm bằng dạng bù 1, ta lấy số dương tương ứng và đảo tất cả các bit (0 thành 1, 1 thành 0). Bit MSB vẫn được dùng để chỉ dấu (0 cho dương, 1 cho âm).

Ví dụ: Với 8 bit:

  • +5 = 00000101
  • -5 (dạng bù 1): đảo bit của +5 -> 11111010

Ưu điểm: Phép trừ có thể được thực hiện bằng phép cộng (cộng với bù 1 của số trừ).
Nhược điểm: Tương tự dạng dấu lượng, có hai cách biểu diễn cho số 0 (+0 = 00000000, -0 = 11111111), gây rắc rối trong thiết kế mạch logic.

Dạng Bù 2 (Two’s Complement)

Dạng bù 2 là phương pháp phổ biến nhất để biểu diễn số nguyên có dấu trong các hệ thống máy tính hiện đại do tính hiệu quả trong các phép toán số học. Để biểu diễn số âm bằng dạng bù 2, ta lấy số dương tương ứng, đảo tất cả các bit (để có dạng bù 1), rồi cộng thêm 1 vào kết quả. Bit MSB vẫn là bit dấu.

Ví dụ: Với 8 bit:

  • +5 = 00000101
  • Để tìm -5 dạng bù 2:
    1. Bù 1 của +5: 11111010
    2. Cộng 1: 11111010 + 1 = 11111011
      Vậy, -5 = 11111011 (dạng bù 2).

Ưu điểm:

  • Chỉ có một cách biểu diễn duy nhất cho số 0 (00000000).
  • Các phép toán cộng và trừ được thực hiện một cách nhất quán và đơn giản bằng mạch cộng, không cần mạch trừ riêng biệt hay kiểm tra dấu phức tạp. Đây là lý do chính khiến bù 2 được sử dụng rộng rãi.
  • Phạm vi số âm có thể biểu diễn lớn hơn số dương 1 đơn vị. Với N bit, phạm vi là từ -(2^(N-1)) đến (2^(N-1) – 1). Ví dụ, với 8 bit, từ -128 đến +127.

Các Loại Thanh Ghi Trong CPU: Tối Ưu Hóa Tốc Độ Xử Lý

Các thanh ghi (registers) là các bộ nhớ rất nhỏ, cực nhanh, nằm ngay trong CPU. Chúng được sử dụng để lưu trữ tạm thời dữ liệu, lệnh, địa chỉ và trạng thái trong quá trình xử lý. Do nằm gần CPU nhất, việc truy cập thanh ghi diễn ra với tốc độ nhanh nhất, góp phần tối ưu hóa hiệu suất của bộ vi xử lý. Hiểu các loại thanh ghi là cốt lõi để ôn thi kiến trúc máy tính.

Thanh Ghi Chức Năng Chính

Một số thanh ghi có vai trò đặc biệt và không thể thiếu trong chu trình thực thi lệnh của CPU.

Bộ Đếm Chương Trình (Program Counter – PC / Instruction Pointer – IP)

Bộ đếm chương trình (PC, còn gọi là IP trong một số kiến trúc như x86) là một thanh ghi quan trọng lưu trữ địa chỉ của lệnh kế tiếp sẽ được nạp từ bộ nhớ. Sau khi CPU nạp (fetch) một lệnh, nội dung của PC sẽ tự động được tăng lên để trỏ đến lệnh tiếp theo trong chuỗi thực thi chương trình. Trong trường hợp có các lệnh nhảy (jump) hoặc gọi hàm (call), PC sẽ được cập nhật với địa chỉ mới của lệnh đích.

Con Trỏ Dữ Liệu (Data Pointer – DP)

Con trỏ dữ liệu (DP) là một thanh ghi được sử dụng để lưu trữ địa chỉ của các ngăn nhớ dữ liệu mà CPU muốn truy nhập. DP rất hữu ích khi làm việc với các khối dữ liệu lớn hoặc truy cập dữ liệu trong các cấu trúc phức tạp. Trong một số kiến trúc, có thể có nhiều thanh ghi con trỏ dữ liệu để tăng tính linh hoạt.

Con Trỏ Ngăn Xếp (Stack Pointer – SP)

Con trỏ ngăn xếp (SP) là thanh ghi quản lý ngăn xếp (stack) – một vùng bộ nhớ được sử dụng để lưu trữ tạm thời địa chỉ trả về của các hàm con, các tham số hàm, và các biến cục bộ. Ngăn xếp hoạt động theo nguyên tắc LIFO (Last-In, First-Out – vào sau ra trước).

  • Khi cất thông tin vào ngăn xếp (PUSH): SP giảm (hoặc tăng, tùy kiến trúc) và thông tin được ghi vào địa chỉ mà SP đang trỏ đến.
  • Khi lấy thông tin ra khỏi ngăn xếp (POP): Thông tin được đọc từ địa chỉ mà SP đang trỏ đến, sau đó SP tăng (hoặc giảm).
  • Khi ngăn xếp rỗng, SP thường trỏ về đáy ngăn xếp.

Thanh Ghi Địa Chỉ Và Dữ Liệu

Ngoài các thanh ghi chức năng chính, CPU còn có các thanh ghi để quản lý địa chỉ và dữ liệu chung.

Thanh Ghi Cơ Sở (Base Register) và Thanh Ghi Chỉ Số (Index Register)

  • Thanh ghi cơ sở (Base Register): Chứa địa chỉ bắt đầu (địa chỉ cơ sở) của một khối dữ liệu hoặc một vùng bộ nhớ.
  • Thanh ghi chỉ số (Index Register): Chứa một giá trị độ lệch (offset) hoặc chỉ số từ địa chỉ cơ sở.
  • Địa chỉ của ngăn nhớ cần truy nhập = Địa chỉ cơ sở + Chỉ số.
    Cơ chế này cho phép truy cập hiệu quả đến các phần tử trong mảng hoặc cấu trúc dữ liệu mà không cần phải thay đổi địa chỉ cơ sở liên tục, rất hữu ích cho các vòng lặp xử lý dữ liệu.

Các Thanh Ghi Dữ Liệu (Data Registers)

Các thanh ghi dữ liệu là các thanh ghi đa năng được sử dụng để lưu trữ tạm thời các toán hạng cho các phép toán của ALU, các kết quả trung gian, hoặc dữ liệu được nạp/lưu từ bộ nhớ. CPU thường có nhiều thanh ghi dữ liệu để tăng cường khả năng xử lý song song và giảm số lần truy cập bộ nhớ chậm hơn.

Thanh Ghi Trạng Thái (Flag Register)

Thanh ghi trạng thái, hay còn gọi là thanh ghi cờ (Flag Register), là một tập hợp các bit riêng lẻ, mỗi bit đại diện cho một “cờ” báo hiệu một trạng thái cụ thể của CPU hoặc kết quả của một phép toán.

  • Các cờ phép toán: Báo hiệu trạng thái của kết quả từ các phép toán số học hoặc logic. Ví dụ:
    • Zero Flag (Z): Đặt thành 1 nếu kết quả là 0.
    • Carry Flag (C): Đặt thành 1 nếu có bit nhớ (carry) từ bit có trọng số cao nhất trong phép cộng hoặc bit mượn (borrow) trong phép trừ.
    • Parity Flag (P): Đặt thành 1 nếu số lượng bit 1 trong kết quả là chẵn.
    • Sign Flag (S): Đặt thành 1 nếu kết quả là số âm (bit MSB là 1).
    • Overflow Flag (O): Đặt thành 1 nếu xảy ra tràn số trong phép toán số học có dấu.
  • Các cờ điều khiển: Biểu thị trạng thái điều khiển của CPU, có thể được lập trình để thay đổi hành vi của CPU. Ví dụ:
    • Interrupt Enable Flag (I): Cho phép hoặc vô hiệu hóa các ngắt phần cứng.
    • Trap Flag (T): Kích hoạt chế độ gỡ lỗi (single-step mode).

Các cờ này rất quan trọng cho các lệnh rẽ nhánh có điều kiện (conditional jump) và kiểm soát luồng chương trình.

Thiết Bị Ngoại Vi: Cầu Nối Giữa Máy Tính Và Người Dùng

Thiết bị ngoại vi (peripheral devices) là các thành phần phần cứng được kết nối với máy tính nhưng không phải là bộ phận cốt lõi của CPU hoặc bộ nhớ chính. Chúng cho phép máy tính thu thập thông tin từ môi trường, xuất kết quả, lưu trữ dữ liệu lâu dài và giao tiếp với các hệ thống khác. Hiểu về các thiết bị này là một phần quan trọng để ôn thi kiến trúc máy tính.

Chức Năng Tổng Quát Của Các Thiết Bị Ngoại Vi

Các thiết bị ngoại vi không chỉ đơn thuần là các thiết bị đầu cuối mà còn chứa các mạch điều khiển phức tạp để giao tiếp với hệ thống chính. Các chức năng cơ bản của chúng bao gồm:

  • Chuyển đổi dữ liệu: Các thiết bị ngoại vi thường hoạt động với dữ liệu ở định dạng khác với định dạng mà CPU hiểu. Do đó, chúng có bộ chuyển đổi tín hiệu để chuyển đổi dữ liệu giữa định dạng bên ngoài (analog, vật lý) và định dạng số (nhị phân) bên trong máy tính.
  • Bộ đệm dữ liệu: Trong quá trình truyền dữ liệu giữa thiết bị ngoại vi (thường chậm) và CPU/bộ nhớ (nhanh), bộ đệm (buffer) được sử dụng để lưu trữ tạm thời dữ liệu. Điều này giúp cân bằng tốc độ, tránh làm chậm CPU trong khi chờ thiết bị ngoại vi sẵn sàng.
  • Khối logic điều khiển: Mỗi thiết bị ngoại vi có một khối logic điều khiển riêng để quản lý hoạt động của nó, bao gồm nhận lệnh từ CPU, kiểm soát việc truyền dữ liệu, và báo cáo trạng thái.

Phân Loại Thiết Bị Ngoại Vi

Các thiết bị ngoại vi có thể được phân loại theo chức năng chính của chúng:

Thiết Bị Vào (Input Devices)

Thiết bị vào cho phép người dùng hoặc môi trường cung cấp dữ liệu cho máy tính.

  • Bàn phím: Nhập văn bản, lệnh.
  • Chuột: Điều khiển con trỏ, chọn đối tượng.
  • Máy quét (Scanner): Số hóa hình ảnh, tài liệu.
  • Microphone: Nhận tín hiệu âm thanh.
  • Webcam: Ghi hình ảnh, video.

Thiết Bị Ra (Output Devices)

Thiết bị ra hiển thị hoặc xuất thông tin từ máy tính ra bên ngoài.

  • Màn hình (Monitor): Hiển thị hình ảnh, văn bản.
  • Máy in (Printer): In tài liệu ra giấy.
  • Loa (Speaker): Phát âm thanh.
  • Máy chiếu (Projector): Chiếu hình ảnh lên màn lớn.

Thiết Bị Lưu Trữ (Storage Devices)

Thiết bị lưu trữ dùng để lưu giữ dữ liệu lâu dài, ngay cả khi máy tính tắt nguồn.

  • Ổ đĩa cứng (Hard Disk Drive – HDD): Lưu trữ dữ liệu trên đĩa từ.
  • Ổ đĩa thể rắn (Solid State Drive – SSD): Lưu trữ dữ liệu trên bộ nhớ flash, tốc độ cao hơn HDD.
  • Ổ đĩa quang (Optical Drive): Đọc/ghi CD, DVD, Blu-ray.
  • Ổ đĩa USB (Flash Drive): Lưu trữ di động.

Thiết Bị Truyền Thông (Communication Devices)

Thiết bị truyền thông cho phép máy tính kết nối với các mạng khác và trao đổi dữ liệu.

  • Modem (Modulator-Demodulator): Chuyển đổi tín hiệu số thành analog để truyền qua đường dây điện thoại/cáp, và ngược lại.
  • Card Mạng (Network Interface Card – NIC): Cho phép máy tính kết nối với mạng cục bộ (LAN) hoặc Internet thông qua cáp Ethernet hoặc Wi-Fi.

Phân Loại Khác Theo Giao Tiếp

  • Thiết bị ngoại vi giao tiếp người-máy: Bàn phím, Màn hình, Chuột, Máy in, Loa, Microphone.
  • Thiết bị ngoại vi giao tiếp máy-máy: Các thiết bị giám sát, điều khiển trong công nghiệp, hoặc các module truyền nhận dữ liệu giữa các máy tính khác nhau.
  • Thiết bị ngoại vi truyền thông: Modem, NIC, Bluetooth adapter.

Biểu Diễn Số Thực: Chuẩn Hóa Thông Tin Với Dấu Chấm Động

Trong kiến trúc máy tính, việc biểu diễn số thực (số có phần thập phân) phức tạp hơn số nguyên. Có hai phương pháp chính: biểu diễn dấu chấm cố định (fixed-point) và biểu diễn dấu chấm động (floating-point). Việc hiểu cách máy tính xử lý các số này là cần thiết khi ôn thi kiến trúc máy tính.

Biểu Diễn Dấu Chấm Cố Định (Fixed-Point Representation)

Trong biểu diễn dấu chấm cố định, vị trí của dấu thập phân (hay dấu nhị phân) được đặt cố định. Số bit được chia thành hai phần: một phần cho phần nguyên và một phần cho phần thập phân.

Ví dụ: Với 8 bit, giả sử ta dành 4 bit cho phần nguyên và 4 bit cho phần thập phân.
Số 5.75 thập phân có thể biểu diễn như sau:

  • Phần nguyên 5 = 0101 (nhị phân)
  • Phần thập phân 0.75 = 0.5 + 0.25 = 2^-1 + 2^-2 = 1100 (nhị phân)
    Kết hợp lại: 0101.1100

Ưu điểm: Đơn giản để thực hiện các phép toán số học (giống như số nguyên).
Nhược điểm:

  • Phạm vi biểu diễn số bị giới hạn và độ chính xác cố định. Không linh hoạt cho các số rất lớn hoặc rất nhỏ.
  • Nếu cần độ chính xác cao cho phần thập phân, sẽ mất bit cho phần nguyên và ngược lại.

Biểu Diễn Dấu Chấm Động (Floating-Point Representation)

Biểu diễn dấu chấm động là phương pháp phổ biến nhất để xử lý số thực trong máy tính hiện đại, cung cấp phạm vi biểu diễn rộng và độ chính xác linh hoạt hơn. Nó dựa trên dạng chuẩn hóa khoa học (scientific notation), ví dụ: 1.23 x 10^4.

Một số dấu chấm động được biểu diễn bằng ba thành phần:

  1. Bit dấu (Sign bit – S): 1 bit, 0 cho số dương, 1 cho số âm.
  2. Phần định trị (Mantissa / Significand – M): Biểu diễn các chữ số có nghĩa của số. Thường được chuẩn hóa để có dạng 1.xxxxx… (trong hệ nhị phân).
  3. Phần mũ (Exponent – E): Biểu diễn lũy thừa của cơ số (thường là 2). Phần mũ thường được lưu dưới dạng “biased exponent” để dễ dàng so sánh và xử lý các số âm.

Chuẩn IEEE 754

Chuẩn IEEE 754 là tiêu chuẩn quốc tế cho việc biểu diễn và tính toán số dấu chấm động, đảm bảo tính nhất quán trên các hệ thống máy tính khác nhau. Hai định dạng phổ biến nhất là:

  • Độ chính xác đơn (Single-precision – 32 bit): 1 bit dấu, 8 bit mũ, 23 bit định trị (tương đương khoảng 7 chữ số thập phân).
  • Độ chính xác kép (Double-precision – 64 bit): 1 bit dấu, 11 bit mũ, 52 bit định trị (tương đương khoảng 15-17 chữ số thập phân).

Ví dụ: Biểu diễn số 0.15625 (thập phân) theo chuẩn IEEE 754 single-precision.

  1. Bit dấu: Số dương, S = 0.
  2. Chuyển 0.15625 sang nhị phân:
    0.15625 2 = 0.3125 (0)
    0.3125
    2 = 0.625 (0)
    0.625 2 = 1.25 (1)
    0.25
    2 = 0.5 (0)
    0.5 2 = 1.0 (1)
    => 0.00101 (nhị phân).
  3. Chuẩn hóa: 0.00101 = 1.01 2^-3 (dịch dấu nhị phân sang phải 3 vị trí).
    • Phần định trị M = 01 (sau khi bỏ số 1 ngầm định). 23 bit sẽ là 01000000000000000000000.
    • Phần mũ E = -3. Trong IEEE 754 single-precision, bias là 127. Vậy biased exponent = -3 + 127 = 124.
  4. Chuyển 124 sang nhị phân 8 bit: 01111100.
    Kết quả cuối cùng (S E M): 0 01111100 01000000000000000000000.

Ưu điểm: Phạm vi biểu diễn rất rộng, có thể xử lý cả số rất lớn và rất nhỏ với độ chính xác tương đối.
Nhược điểm: Phức tạp hơn trong thiết kế mạch và thực hiện phép toán, có thể gây ra lỗi làm tròn (rounding errors) do độ chính xác hữu hạn.

Quy Trình Gọi Chương Trình Con: Đảm Bảo Tính Liên Tục Và Hiệu Quả

Trong lập trình, việc sử dụng chương trình con (subroutine, function, procedure) là một kỹ thuật cơ bản để tái sử dụng mã, tổ chức chương trình và quản lý độ phức tạp. Khi một chương trình chính gọi một chương trình con, hệ thống máy tính phải thực hiện một loạt các thao tác để đảm bảo rằng chương trình con có thể thực thi độc lập và sau đó trở về đúng vị trí trong chương trình chính. Quá trình này, đặc biệt là việc sử dụng ngăn xếp, là trọng tâm khi bạn ôn thi kiến trúc máy tính.

Nguyên Lý Hoạt Động Của Ngăn Xếp Trong Gọi Hàm

Ngăn xếp (stack) đóng vai trò trung tâm trong cơ chế gọi chương trình con. Nó là một vùng bộ nhớ đặc biệt hoạt động theo nguyên tắc LIFO (Last-In, First-Out – vào sau ra trước), được quản lý bởi con trỏ ngăn xếp (Stack Pointer – SP).

Khi một chương trình con được gọi, các thông tin quan trọng sau sẽ được lưu (PUSH) vào ngăn xếp:

  1. Địa chỉ trả về (Return Address): Đây là địa chỉ của lệnh tiếp theo trong chương trình chính sau khi chương trình con hoàn thành. CPU cần địa chỉ này để biết nơi tiếp tục thực thi sau khi hàm con kết thúc.
  2. Trạng thái các thanh ghi (Register State): Chương trình con có thể sử dụng các thanh ghi chung với chương trình chính. Để tránh làm thay đổi dữ liệu của chương trình chính, giá trị hiện tại của các thanh ghi quan trọng (như các thanh ghi dữ liệu, thanh ghi cơ sở) thường được lưu vào ngăn xếp.
  3. Các tham số (Parameters): Dữ liệu được truyền từ chương trình chính sang chương trình con đôi khi cũng được đặt trên ngăn xếp.
  4. Biến cục bộ (Local Variables): Chương trình con có thể cấp phát không gian trên ngăn xếp cho các biến cục bộ của riêng nó.

Khi chương trình con kết thúc, các thông tin này sẽ được phục hồi (POP) khỏi ngăn xếp theo thứ tự ngược lại: biến cục bộ, tham số, trạng thái thanh ghi và cuối cùng là địa chỉ trả về.

Minh Họa Quy Trình

Để dễ hình dung hơn, hãy xem xét một kịch bản đơn giản:

  1. Chương trình chính đang chạy: CPU thực thi các lệnh của chương trình chính.
  2. Lệnh gọi chương trình con (CALL/JSR): CPU gặp một lệnh gọi chương trình con.
    • Lưu địa chỉ trả về: Địa chỉ của lệnh ngay sau lệnh CALL trong chương trình chính (giá trị hiện tại của PC) được PUSH vào ngăn xếp.
    • Lưu trạng thái thanh ghi (nếu cần): Các thanh ghi quan trọng mà chương trình con sẽ sử dụng được PUSH vào ngăn xếp.
    • Cập nhật PC: PC được cập nhật với địa chỉ bắt đầu của chương trình con.
  3. Chương trình con thực thi: CPU bắt đầu thực thi các lệnh của chương trình con. Trong quá trình này, chương trình con có thể sử dụng ngăn xếp để lưu biến cục bộ hoặc gọi các chương trình con khác (tạo thành các khung ngăn xếp lồng nhau).
  4. Chương trình con kết thúc (RETURN/RET): CPU gặp một lệnh trả về từ chương trình con.
    • Phục hồi trạng thái thanh ghi: Các giá trị thanh ghi đã lưu trước đó được POP khỏi ngăn xếp và nạp lại vào các thanh ghi tương ứng.
    • Phục hồi PC: Địa chỉ trả về đã lưu được POP khỏi ngăn xếp và nạp lại vào PC.
    • Dọn dẹp ngăn xếp: Các biến cục bộ và tham số của chương trình con cũng được dọn khỏi ngăn xếp.
  5. Chương trình chính tiếp tục: CPU tiếp tục thực thi chương trình chính từ địa chỉ đã được phục hồi vào PC.

Quy trình này đảm bảo rằng các chương trình con có thể được gọi và trả về một cách linh hoạt, tạo nên cấu trúc mô-đun và hiệu quả cho phần mềm.

Thông Số Cơ Bản Của CPU Và Cách Tính Chu Kỳ Xung Nhịp

Bộ vi xử lý (CPU – Central Processing Unit) là bộ não của máy tính, thực hiện mọi phép tính và điều khiển hoạt động của hệ thống. Hiểu các thông số kỹ thuật cơ bản của CPU là rất quan trọng để đánh giá hiệu suất và chọn lựa linh kiện phù hợp, đặc biệt khi bạn ôn thi kiến trúc máy tính.

Các Thông Số Quan Trọng Của CPU

Khi đánh giá một CPU, có một số thông số chính cần được xem xét:

  • Xung nhịp (Clock Speed / Frequency): Đo bằng Gigahertz (GHz), biểu thị số chu kỳ mà CPU thực hiện được trong một giây. Xung nhịp càng cao, CPU càng có khả năng thực hiện nhiều phép toán hơn trong cùng một khoảng thời gian. Ví dụ, 2.5 GHz nghĩa là CPU thực hiện 2.5 tỷ chu kỳ/giây.
  • Số lõi (Cores) và luồng (Threads):
    • Lõi (Core): Là một đơn vị xử lý độc lập hoàn chỉnh trong CPU. CPU đa lõi (multi-core) có thể thực hiện nhiều tác vụ song song, cải thiện hiệu suất đa nhiệm.
    • Luồng (Thread): Là một chuỗi các lệnh mà CPU có thể thực thi. Công nghệ Hyper-Threading (Intel) hoặc SMT (Simultaneous Multithreading – AMD) cho phép mỗi lõi vật lý xử lý nhiều luồng logic cùng lúc, giúp tăng hiệu quả sử dụng tài nguyên của lõi.
  • Bộ nhớ đệm (Cache): Các cấp độ L1, L2, L3 cache ảnh hưởng lớn đến hiệu suất. Cache lớn hơn và nhanh hơn giúp CPU truy cập dữ liệu thường xuyên nhanh chóng, giảm thời gian chờ đợi bộ nhớ chính.
  • Tập lệnh (Instruction Set): Là bộ sưu tập các lệnh mà CPU có thể hiểu và thực thi (ví dụ: x86, ARM). Tập lệnh hiện đại thường bao gồm các phần mở rộng (như AVX, SSE) để tăng tốc các tác vụ cụ thể như xử lý đa phương tiện.
  • TDP (Thermal Design Power): Đại lượng đo lượng nhiệt tối đa mà hệ thống làm mát của máy tính cần tản ra từ CPU khi hoạt động dưới tải nặng. TDP cao hơn thường đồng nghĩa với hiệu năng cao hơn nhưng cũng yêu cầu giải pháp tản nhiệt mạnh mẽ hơn.

Tính Chu Kỳ Xung Nhịp

Chu kỳ xung nhịp (clock cycle) là khoảng thời gian cần thiết để CPU hoàn thành một chu kỳ hoạt động cơ bản. Nó là nghịch đảo của tần số xung nhịp.

Công thức:
Chu kỳ xung nhịp (T) = 1 / Tần số xung nhịp (f)

Trong đó:

  • Tần số (f) được đo bằng Hertz (Hz), Kilohertz (kHz), Megahertz (MHz) hoặc Gigahertz (GHz).
  • Chu kỳ (T) được đo bằng giây (s), mili giây (ms), micro giây (µs), nano giây (ns), pico giây (ps).

Ví dụ: Tính chu kỳ xung nhịp khi biết máy tính đó dùng bộ vi xử lý (VXL) 2.5 GHz.

  • Tần số f = 2.5 GHz = 2.5 10^9 Hz.
  • Chu kỳ T = 1 / (2.5 10^9 Hz)
  • T = 0.4 10^-9 giây
  • T = 0.4 nano giây (ns)

Điều này có nghĩa là mỗi chu kỳ hoạt động cơ bản của CPU chỉ mất 0.4 nano giây để hoàn thành. Tốc độ này là cực kỳ nhanh, cho phép máy tính thực hiện hàng tỷ phép tính mỗi giây.

Các Thế Hệ Máy Tính: Lịch Sử Và Sự Phát Triển Vượt Bậc

Lịch sử phát triển của máy tính được chia thành nhiều thế hệ, mỗi thế hệ đánh dấu một bước tiến vượt bậc về công nghệ, hiệu suất, kích thước và khả năng ứng dụng. Việc nghiên cứu các thế hệ máy tính giúp bạn có cái nhìn toàn diện khi ôn thi kiến trúc máy tính.

Tiêu Chí Phân Chia Thế Hệ

Các thế hệ máy tính được phân chia dựa trên một số tiêu chí chính, phản ánh những thay đổi mang tính cách mạng trong công nghệ và thiết kế:

  • Công nghệ linh kiện chủ yếu: Đây là tiêu chí quan trọng nhất, xác định công nghệ vật lý được sử dụng để xây dựng CPU, bộ nhớ, v.v.
  • Tốc độ xử lý: Khả năng thực hiện phép toán trong một đơn vị thời gian.
  • Kích thước và độ tin cậy: Máy tính trở nên nhỏ gọn hơn, đáng tin cậy hơn và ít tốn năng lượng hơn.
  • Ngôn ngữ lập trình: Sự phát triển từ ngôn ngữ máy sang các ngôn ngữ cấp cao.
  • Ứng dụng: Phạm vi và loại hình các tác vụ mà máy tính có thể giải quyết.

Các Thế Hệ Máy Tính Chi Tiết

Sự tiến hóa của máy tính đã trải qua nhiều giai đoạn quan trọng:

Thế Hệ Thứ Nhất (khoảng 1940 – 1957)

  • Công nghệ: Sử dụng đèn chân không (vacuum tubes) làm linh kiện điện tử chính. Máy tính khổng lồ, tiêu thụ nhiều điện, tỏa nhiệt lớn, kém tin cậy.
  • Tốc độ: Vài nghìn đến vài trăm nghìn phép tính/giây.
  • Phần mềm: Lập trình trực tiếp bằng ngôn ngữ máy (mã nhị phân).
  • Ứng dụng: Chủ yếu cho mục đích quân sự và nghiên cứu khoa học cơ bản (ví dụ: ENIAC, UNIVAC I).

Thế Hệ Thứ Hai (khoảng 1958 – 1964)

  • Công nghệ: Transistor thay thế đèn chân không. Nhỏ gọn hơn, nhanh hơn, tin cậy hơn, ít tốn điện và ít tỏa nhiệt hơn. Bộ nhớ lõi từ được sử dụng rộng rãi.
  • Tốc độ: Đạt hàng triệu phép tính/giây.
  • Phần mềm: Xuất hiện các ngôn ngữ lập trình cấp cao đầu tiên như FORTRAN, COBOL, ALGOL. Bắt đầu phát triển hệ điều hành đơn giản.
  • Ứng dụng: Dùng trong kinh doanh, khoa học, kỹ thuật.

Thế Hệ Thứ Ba (khoảng 1965 – 1971)

  • Công nghệ: Sử dụng vi mạch tích hợp (Integrated Circuits – IC) với hàng trăm transistor trên một chip silicon. Máy tính nhỏ hơn, nhanh hơn, hiệu quả hơn. Các thiết bị ngoại vi được cải tiến đáng kể (ổ đĩa từ, màn hình).
  • Tốc độ: Đạt vài triệu phép tính/giây, dung lượng bộ nhớ lên tới vài MB.
  • Phần mềm: Phát triển mạnh mẽ các hệ điều hành đa nhiệm, đa người dùng. Kỹ thuật xử lý song song bắt đầu được nghiên cứu. Ngôn ngữ lập trình cấp cao tiếp tục phát triển.
  • Ứng dụng: Phát triển hệ thống thông tin quản lý, ứng dụng trong nhiều lĩnh vực xã hội.

Thế Hệ Thứ Tư (khoảng 1972 – Hiện tại)

  • Công nghệ: Sử dụng vi mạch tích hợp mật độ rất cao (VLSI – Very Large Scale Integration) với hàng nghìn, hàng triệu transistor trên một chip. Dẫn đến sự ra đời của bộ vi xử lý (microprocessor), máy tính cá nhân (PC). Phát triển kiến trúc đa xử lý, mạng máy tính.
  • Tốc độ: Đạt hàng chục triệu, hàng tỷ phép tính/giây.
  • Phần mềm: Phát triển hệ điều hành đồ họa (GUI), mạng Internet, ứng dụng đa phương tiện, trí tuệ nhân tạo.
  • Ứng dụng: Máy tính cá nhân trở nên phổ biến, ứng dụng rộng rãi trong mọi mặt đời sống, công nghiệp, khoa học.

Thế Hệ Thứ Năm (Hiện tại và Tương lai)

  • Công nghệ: Tập trung vào xử lý song song khổng lồ, mạng nơ-ron, điện toán đám mây, điện toán lượng tử. Phát triển trí tuệ nhân tạo (AI), học máy (Machine Learning), xử lý ngôn ngữ tự nhiên.
  • Phần mềm: Các hệ thống AI thông minh, khả năng học hỏi và đưa ra quyết định.
  • Ứng dụng: Robot thông minh, xe tự lái, chẩn đoán y tế, dịch thuật tự động.

Thế Hệ Máy Tính Hiện Đại

Ngày nay, những máy tính chúng ta đang sử dụng, bao gồm cả laptop, máy tính để bàn, điện thoại thông minh, đều thuộc thế hệ thứ tư về mặt công nghệ phần cứng cốt lõi (sử dụng vi xử lý VLSI). Tuy nhiên, với sự phát triển mạnh mẽ của AI, học máy và điện toán đám mây, chúng ta đang chứng kiến sự chuyển mình và hội nhập dần vào những khái niệm và mục tiêu của thế hệ thứ năm, nơi trí tuệ nhân tạo và xử lý thông minh đóng vai trò trung tâm.

Tổ Chức Đĩa Cứng (HDD): Cấu Trúc Và Nguyên Lý Hoạt Động

Ổ đĩa cứng (Hard Disk Drive – HDD) là thiết bị lưu trữ dữ liệu không thay đổi (non-volatile) chính trong hầu hết các máy tính cho đến khi SSD trở nên phổ biến. Hiểu về cấu trúc và nguyên lý hoạt động của HDD là cần thiết khi ôn thi kiến trúc máy tính, vì nó đại diện cho một loại bộ nhớ ngoài quan trọng.

Cấu Trúc Vật Lý Của Ổ Đĩa Cứng

Một ổ đĩa cứng bao gồm nhiều thành phần cơ khí và điện tử phức tạp:

  • Đĩa từ (Platters): Là các đĩa tròn làm bằng kim loại hoặc thủy tinh, được phủ một lớp vật liệu từ tính. Dữ liệu được ghi và đọc trên bề mặt của các đĩa này. Mỗi ổ đĩa cứng thường có nhiều đĩa, xếp chồng lên nhau với một khoảng cách nhỏ.
  • Trục quay (Spindle): Các đĩa từ được gắn chặt vào một trục quay trung tâm. Trục này được điều khiển bởi một động cơ (spindle motor) quay với tốc độ rất cao (thường từ 3.600 đến 15.000 vòng/phút – RPM). Tốc độ quay càng cao, thời gian truy cập dữ liệu càng nhanh.
  • Đầu đọc/ghi (Heads): Mỗi bề mặt của đĩa từ có một đầu đọc/ghi riêng biệt. Các đầu này không chạm trực tiếp vào bề mặt đĩa mà bay lơ lửng trên một lớp đệm không khí cực mỏng khi đĩa quay. Đầu đọc/ghi chuyển đổi các tín hiệu điện thành từ trường để ghi dữ liệu, và ngược lại để đọc dữ liệu.
  • Tay đòn điều khiển (Actuator Arm): Các đầu đọc/ghi được gắn vào một tay đòn chung. Tay đòn này được điều khiển bởi một động cơ bước hoặc cuộn dây âm thanh (voice coil motor) để di chuyển các đầu đọc/ghi một cách chính xác trên bề mặt đĩa.
  • Bảng mạch điều khiển (Controller Board): Nằm ở bên ngoài vỏ ổ đĩa, chứa các mạch điện tử điều khiển động cơ, tay đòn, và giao tiếp với hệ thống máy tính.

Tổ Chức Dữ Liệu Logic

Dữ liệu trên đĩa cứng được tổ chức theo một cấu trúc logic để CPU có thể truy cập hiệu quả:

  • Rãnh (Tracks): Mỗi bề mặt đĩa được chia thành các vòng tròn đồng tâm gọi là rãnh. Dữ liệu được ghi liên tục dọc theo các rãnh.
  • Cung (Sectors): Mỗi rãnh lại được chia thành các phần nhỏ hơn gọi là cung (sector). Cung là đơn vị lưu trữ dữ liệu nhỏ nhất mà ổ đĩa có thể đọc hoặc ghi. Một cung thường có kích thước 512 byte (hoặc 4KB trong các ổ đĩa hiện đại).
  • Trụ (Cylinders): Một trụ là tập hợp các rãnh có cùng bán kính trên tất cả các bề mặt đĩa. Khi đầu đọc/ghi cần truy cập dữ liệu trên một trụ cụ thể, tất cả các đầu đọc/ghi sẽ di chuyển đồng thời đến vị trí rãnh tương ứng trên các đĩa.
  • Zone Bit Recording (ZBR): Các ổ đĩa hiện đại sử dụng ZBR, nghĩa là các rãnh bên ngoài (lớn hơn) có nhiều cung hơn các rãnh bên trong. Điều này giúp tối ưu hóa việc sử dụng không gian và tăng mật độ ghi.

Các Yếu Tố Ảnh Hưởng Đến Dung Lượng Đĩa Cứng

Dung lượng của một ổ đĩa cứng phụ thuộc vào nhiều yếu tố:

  • Số lượng đĩa (Platters): Càng nhiều đĩa, dung lượng lưu trữ càng lớn.
  • Mật độ ghi trên mỗi đĩa (Recording Density): Đây là yếu tố quan trọng nhất. Công nghệ ghi tiên tiến cho phép ghi nhiều dữ liệu hơn trên cùng một diện tích bề mặt đĩa. Điều này bao gồm mật độ rãnh (tracks per inch – TPI) và mật độ bit (bits per inch – BPI).
  • Số lượng sectors trên mỗi track: Với ZBR, các rãnh ngoài có nhiều sectors hơn, tăng tổng dung lượng.
  • Công nghệ ghi: Các công nghệ như Perpendicular Magnetic Recording (PMR) và Shingled Magnetic Recording (SMR) cho phép đạt được mật độ ghi cao hơn nữa.

Tất cả các yếu tố này phối hợp để xác định tổng dung lượng lưu trữ của ổ đĩa cứng, một đặc điểm cơ bản trong kiến trúc máy tính và quản lý dữ liệu.

Kết thúc hành trình khám phá các khái niệm quan trọng trong ôn thi kiến trúc máy tính, chúng ta đã đi qua những nền tảng cốt lõi từ cấu trúc Von Neumann, hệ thống bus, các hệ thống số, đến cơ chế I/O, phân cấp bộ nhớ và lịch sử phát triển máy tính. Việc nắm vững những kiến thức này không chỉ giúp bạn tự tin vượt qua các kỳ thi mà còn xây dựng nền tảng vững chắc để hiểu sâu hơn về thế giới công nghệ. Hãy tiếp tục thực hành, tìm tòi và áp dụng những gì đã học. Để khám phá thêm các tài nguyên học tập và sản phẩm công nghệ chất lượng, hãy ghé thăm lavender-panther-755911.hostingersite.com ngay hôm nay để bổ sung kiến thức và thiết bị cần thiết cho hành trình học tập và làm việc của bạn!