Khái quát về khối Xử Lý Trung Tâm CPU - Môn Kiến Trúc Máy Tính - Đại Học

Thảo luận trong 'Học Online' bắt đầu bởi Tranhuynh, 1 Tháng năm 2024.

  1. Tranhuynh

    Bài viết:
    1,488

    Mở đầu: Nhắc lại sơ khai về khối xử lý trung tâm, CPU (Central Processing Unit - Bộ vi xử lý trung tâm) là thành phần quan trọng nhất, bộ não của máy tính. Nó có chức năng cơ bản:

    Nhận lệnh, dữ liệu

    Giải mã lệnh, xử lý và ghi dữ liệu

    Thực hiện "Ngắt" trong chương trình.

    [​IMG]

    1. System Bus

    Đường truyền của CPU với những bộ phận riêng lẻ có chức năng quan trọng, chúng ta không thể thiếu "System Bus", được gọi là đường truyền dữ liệu chung giữa các thành phần chính của máy tính, giúp đồng bộ hoá hoạt động của các thành phần, đảm bảo rằng dữ liệu có thể được trao đổi một cách nhanh chóng và hiệu quả, bao gồm:

    + Data Buss (Đường truyền dữ liệu)

    ·Đặc Điểm: Bus dữ liệu có độ rộng được đo bằng số lượng bit mà nó có thể truyền tải một lần, có thể truyền tải nhiều loại dữ liệu khác nhau, bao gồm số nguyên, số thực, ký tự và hướng dẫn, có thể sử dụng nhiều giao thức truyền khác nhau, phổ biến nhất là giao thức song song và nối tiếp.Tốc độ truyền dữ liệu của bus được đo bằng đơn vị megabit mỗi giây (Mbps) hoặc gigabyte mỗi giây (Gbps).

    Ví dụ: Một bus dữ liệu 32 bit có thể truyền tải 32 bit dữ liệu trong mỗi chu kỳ.

    + Address bus(Đường truyền địa chỉ)

    Đặc Điểm: Bus địa chỉ có độ rộng quyết định khoảng cách tối đa của bộ nhớ mà hệ thống có thể truy cập, sử dụng một hệ thống mã hóa để biểu thị các địa chỉ bộ nhớ vật lý. Một số hệ thống sử dụng kỹ thuật phân đoạn địa chỉ để chia bộ nhớ thành các phần nhỏ hơn, dễ quản lý hơn. Một số hệ thống sử dụng bus địa chỉ ảo để tách biệt lập trình viên khỏi cấu trúc bộ nhớ vật lý.

    Ví dụ: Một bus địa chỉ 32 bit có thể xác định 2^32 ô nhớ khác nhau.

    + Control Bus(Kiểm soát cung cấp tín hiệu cho các thành phần khác nhau của hệ thống)

    Đặc Điểm: Bus kiểm soát cung cấp các tín hiệu quan trọng để điều khiển các thành phần khác nhau của hệ thống, bao gồm nhiều loại tín hiệu khác nhau, chẳng hạn như tín hiệu đọc/ghi, tín hiệu chọn thiết bị và tín hiệu đồng hồ, sử dụng nhiều giao thức điều khiển khác nhau, phổ biến nhất là giao thức tập trung và phân tán, phải tương thích với các thành phần khác nhau của hệ thống để đảm bảo hoạt động chính xác.

    [​IMG]

    2. Front Side Bus - FSB

    Bên cạnh đó, mở rộng từ khóa Bus, chúng ta có thể nói đến một đường truyền 2 chiều, cho phép CPU gửi và nhận dữ liệu đến thành phần khác của máy tính như bộ nhớ, bồ điều khiển đồ họa và các thiết bị ngoại vi, được gọi là Front Side Bus - FSB hay còn gọi là bus hệ thống kết nối CPU với chipset phía bắc của bo mạch chủ. Dữ liệu này có thể bao gồm hướng dẫn, dữ liệu và kết quả xử lý. Xác định hiệu suất tổng thể của hệ thống.

    Đặc tính chính:

    + Tốc độ FSB là số lần CPU có thể gửi hoặc nhận dữ liệu trên FSB trong 1 giây. Đo bằng MHZ, GHZ.

    + Băng thông FSB là khả năng chứa dữ liệu của FSB. Đo bằng đơn vị Bit hoặc Byte. Băng thông FSB càng cao, càng nhiều dữ liệu có thể được truyền giữa CPU và chipset phía bắc trong một giây. Độ rộng của FSB được đo bằng bit. Độ rộng FSB càng cao, càng nhiều bit dữ liệu có thể được truyền cùng một lúc.

    + Đồng bộ hóa: FSB cũng cung cấp đồng hồ cho các thành phần khác của hệ thống. Điều này rất quan trọng để đảm bảo rằng tất cả các thành phần hoạt động cùng tốc độ và không xảy ra lỗi.

    [​IMG]

    4. Back Side Bus - BSB

    Kế tiếp, ta đến với một loại Bus từng rất được đề cao trong lịch sử máy tính, là một đường truyền nội bộ kết nối với trung tâm xử lý CPU với bộ nhớ cache cấp 2 và cấp 3 có tên gọi là Back Side Bus (BSB)

    Trước khi có BSB, máy tính sử dụng hệ thống Bus đơn, chậm, thường gặp sự cố về kỹ thuật. BSB ra đời nhằm giải quyết vấn đề này bằng cách cung cấp một kênh truyền dẫn riêng biệt cho CPU truy cập bộ nhớ cache, giúp tăng tốc độ truy cập dữ liệu đáng kể. Nhìn chung nó giảm số tín hiệu chung và loại bỏ những quy tình dư thừa. Ngày nay BSB ít được sử dụng do bộ nhớ Cache cấp 2, 3 đã được tích hợp luôn về bộ nhớ cùng giao diện bộ nhớ trưc tiếp (DMI) cung cấp một kết nối tốc độ cao giữa CPU và bộ nhớ chính.

    [​IMG]

    5. External Data Bus - EDB

    Nói ngắn gọn, đây là một đường truyền dẫn dữ liệu nằm ngoài Chip vi xử lý chính, cho phép truyền dữ liệu giữa các thành phần khác nhau của hệ thống. hoạt động song song với bus dữ liệu bên trong (Internal data bus) của CPU, giúp tăng tốc độ truyền dữ liệu. EDB được sử dụng trong nhiều hệ thống điện tử, bao gồm máy tính cá nhân, máy chủ và thiết bị ngoại vi.

    [​IMG]

    Đặc điểm:

    + Truyền dữ liệu giữa các thành phần như bộ nhớ, bộ điều khiển, và các thiết bị nhập xuất. Có thể truyền tải nhiều loại dữ liệu khác nhau, bao gồm dữ liệu bộ nhớ, dữ liệu I/O và dữ liệu điều khiển.

    + Tốc độ truyền(bit/s or byte/s) thường có tốc độ truyền dữ liệu cao hơn bus dữ liệu bên trong của CPU. Gồm các đường dữ liệu, có chiều rộng tương ứng với số bit mà nó có thể truyền cùng một lúc; có băng thông rộng hơn, cho phép truyền nhiều dữ liệu hơn cùng một lúc.

    + Hoạt động đồng bộ hoặc bất đồng bộ và hỗ trợ nhiều định dạng dữ liệu. EDB có thể được mở rộng để hỗ trợ thêm các thiết bị ngoại vi.

    Ngoài ra, ta còn có một vài từ khóa nhỏ về Bus như:

    + Bus Mastering: Đây là khả năng của một thiết bị ngoại vi để kiểm soát bus dữ liệu ngoại vi mà không cần can thiệp của CPU. Giảm thiểu gánh nặng cho CPU.

    + Bus Arbitration: Trong một hệ thống có nhiều bus master, bus arbitration là quy trình xác định thiết bị nào sẽ kiểm soát bus tại một thời điểm nhất định. Ngăn ngừa xung đột truy cập bus và đảm bảo truyền dữ liệu trơn tru.

    [​IMG]

    + Độ trễ Bus: Đây là thời gian chờ từ khi một yêu cầu được gửi trên bus cho đến khi nó được nhận. Độ trễ bus có thể ảnh hưởng đến hiệu suất hệ thống.

    = Chiều dài bus: Bus dài hơn dẫn đến độ trễ lớn hơn.

    = Số lượng thiết bị: Nhiều thiết bị được kết nối dẫn đến độ trễ lớn hơn.

    = Tốc độ bus: Tốc độ bus thấp hơn dẫn đến độ trễ lớn hơn.

    + Bus Topology: Đây là cấu trúc vật lý của bus. Có nhiều loại topology bus khác nhau, bao gồm bus song song (parallel bus) và bus nối tiếp (serial bus).

    [​IMG]

    6. ALU

    Trong quá trình tính toán và thực hiện lệnh lên chương trình máy tính, chúng ta không thể không nhắc đến bộ vi xử lý ALU với chức năng lưu trữ, truyền, kiếm soát, tạo ra chuỗi chức năng tín hiệu cần thiết thực hiện lệnh. Là bộ vi xử lý, thực hiện các phép toán số học và logic trên các bit, các số nguyên, (Cộng, trừ, nhân, chia, AND, OR, NOT), so sánh hai giá trị.

    Đặc điểm:

    + Các nút lưu trữ ALU: Là đơn vị lưu trữ tạm thời cho các bit và kết quả của các phép toán. Duy trì sự toàn vẹn của các toán hạng và kết quả. Phân thành 2 loại chính:

    = Thanh ghi: Nơi lưu trữ dữ liệu và kết quả của các phép toán.

    = Bộ đệm: Nơi lưu trữ dữ liệu tạm thời để tăng tốc độ truy cập dữ liệu

    Ví dụ: Khi bạn thực hiện phép cộng hai số trên máy tính, CPU sẽ sử dụng các nút lưu trữ ALU để lưu trữ hai số cần cộng, thực hiện phép cộng và lưu trữ kết quả.

    + Các nút kiểm soát ALU: Là các đơn vị kiểm soát và giải mã tín hiệu, điều khiển các mạch logic để thực hiện các hoạt động cần thiết.

    Ví dụ: Xác định phép toán cần thực hiện (cộng, trừ, nhân, chia, v.v.) và các toán hạng cần sử dụng.

    + Nút truyền ALU: Đây là các đường dẫn dữ liệu (bus) và các thiết bị điều khiển dữ liệu (multiplexers và van) giữa các khối của ALU

    Ví dụ: Di chuyển dữ liệu từ thanh ghi A sang bộ đệm nhân, kết quả sau khi nhân sẽ được di chuyển từ bộ đệm nhân sang thanh ghi kết quả.

    + Bộ điều khiển vi xử lý: Tạo ra chuỗi chức năng của tín hiệu cần thiết để thực hiện một lệnh nhất định.

    [​IMG]

    7. Operand, Binary

    Đặc biệt là qua các phép toán chúng ta thường gặp, như hai từ khóa Operand và Binary

    + Operand có thể là số, biến hoặc biểu thức. Ví dụ:

    = Trong phép toán cộng 2 + 3, 2 và 3 là các operand.

    = Trong phương trình x + y = 10, x và y là các operand.

    + Binary là hệ thống sử dụng ký hiệu 0, 1 để biểu diễn thông tin. Áp dụng phép toán nhị phân với các lệnh tính toán như AND, OR, XOR, nó sẽ được thực hiện lên từng bit trên các toán hạng nhị phân tương ứng. Ví dụ:

    = Số binary 101 = Số thập phân 5.

    = Với phép And: Nếu hai bit tương ứng đều là 1, thì kết quả là 1. Nếu ít nhất 1 trong 2 bit là 0, kết quả là 0

    [​IMG]

    8. Thanh ghi - Registers

    Bản chất của thanh ghi trong CPU giống như "Bảng ghi nhớ tạm thời" để lưu trữ và thao tác dữ liệu ngắn hạn. Điểm qua những thanh ghi đã được nhắc đến như thanh ghi đa năng, thanh ghi con trỏ và chỉ số, cờ Flad, Dữ liệu, Con trỏ lệnh IP hay các thanh ghi đoạn. Thì vẫn còn một số thanh ghi khác, đóng một vai trò nhất định trong CPU.

    [​IMG]

    A. Thanh ghi tích lũy A

    Trước hết, chúng ta đều học qua thanh ghi tích lũy A, được dùng cho nhiều tính toán học logic, dịch bit, xoay bit và lưu trữ giá trị hằng số như 0,1, pi; hay lưu trữ các giá trị định hướng như vectoc, một đối tượng; hoặc kể cả lưu trữ địa chỉ biến như một hàm, biến,... Bên cạnh đó, có một thanh ghi đặc biệt khác được thiết kết để chứa kết quả của các phép toán, tối ưu hóa hiệu suất CPU; được gọi là ACC mang tên tiếng anh đầy đủ là Accumulator - Thanh ghi kết quả phép toán.

    B. Thanh ghi kết quả phép toán - ACC

    Trong mô hình Von NeUMann, ACC có chức năng lưu trữ dữ liệu tạm thời và kết quả của các phép toán trung tâm.

    Ví dụ: Khi thực hiện phép cộng hai số, số đầu tiên được tải vào thanh ghi A, số thứ hai được tải vào thanh ghi khác. CPU cộng hai số trong thanh ghi A và thanh ghi khác. Sau đó kết quả của phép cộng được lưu trữ vào ACC.

    Vì vậy, kết quả của các phép toán này thường được lưu lại trong ACC hoặc có thể được chuyển đến các thanh ghi khác để lưu trữ dữ liệu tạm thời.

    C. Mô hình Von Neumann

    Nói thêm về mô hình xử lý Von Neumann, bản chất nó là sự kết hợp giữa bộ nhớ lưu trữ chương trình và dữ liệu. Trong cùng một không gian, cùng với khả năng thực hiện các lệnh một cách tuần tự. Nó là một kiểu kiến trúc phần cứng máy tính.

    [​IMG]

    Đặc điểm chính:


    = Bộ nhớ thống nhất:
    Chứa cả chương trình và dữ liệu.

    = CPU: Thực hiện các lệnh trong chương trình.

    = Thiết bị vào/ra: Cho phép máy tính tương tác với thế giới bên ngoài.

    = Bus: Kết nối các thành phần của máy tính với nhau.

    = Bộ điều khiển: Điều phối hoạt động của các thành phần khác.

    [​IMG]

    D. Các Thanh Ghi Đoạn

    Các Thanh Ghi Đoạn: Là những thanh ghi đặc biệt trong CPU được sử dụng để lưu trữ địa chỉ bắt đầu của các đoạn bộ nhớ. Các đoạn bộ nhớ là những khối dữ liệu hoặc chương trình riêng biệt trong bộ nhớ máy tính. Sử dụng các thanh ghi đoạn giúp tổ chức bộ nhớ hiệu quả hơn và đơn giản hóa việc truy cập dữ liệu và chương trình.

    Các loại thanh ghi đoạn:

    + DS (Data Segment) lưu trữ địa chỉ bắt đầu của đoạn dữ liệu

    + ES (Extra Segment) chứa địa chỉ bắt đầu của đoạn dữ liệu mở rộng.

    + CS (Code Segment) chứa địa chỉ bắt đầu của đoạn chương trình hiện tại

    + SS (Stack Segment) chứa địa chỉ bắt đầu của đoạn ngăn xếp

    Công thức tính địa chỉ vật lý của 1 byte trong không gian nhớ:

    Địa chỉ vật lý = (Segment) x 10H + (Offset)

    = Segment: Số đoạn trong không gian nhớ

    = Offset: Khoảng cách từ byte cụ thể đế đầu đoạn

    [​IMG]

    E. Thanh ghi cờ Flag

    Thanh ghi cờ Flag: Là một bộ bit được sử dụng để lưu trữ trạng thái của CPU sau mỗi phép toán. Các cờ trong thanh ghi cờ cung cấp thông tin về kết quả của phép toán trước đó, giúp CPU điều khiển luồng chương trình và thực hiện các phép toán tiếp theo một cách hiệu quả. Bao gồm cờ trạng thái và điều khiển.

    Các cờ trạng thái gồm 6 cờ:

    - Cờ nhớ CF (carry flag) được lập nếu một thao tác xảy ra hiện tượng carry hoặc borrow đối với toán hạng đích. CF có thể lập bởi lệnh STC và xoá bởi lệnh CLC. Báo hiệu có xảy ra nhớ hay mượn trong phép toán số học hay không.

    - Cờ chẵn lẻ PF (parity flag) được lập nếu kết quả của một phép xử lý có số bit bằng "1" là số chẳn. Báo hiệu có xảy ra nhớ hay mượn trong phép toán số học hay không.

    - Cờ mang phụ AF (auxiliary flag) được dùng cho xử lý các mã BCD và được lập nếu thao tác xử lý gây hiện tượng carry hoặc borrow cho 4 bits thấp của toán hạng.

    - Cờ zero ZL (zero flag) được lập nếu kết quả xử lý số liệu có kết quả bằng 0

    - Cờ dấu SF (sign flag) dấu tương ứng với MSB của kết quả phép toán, được lập với kết quả dương và xoá với kết quả âm.

    Cờ tràn OF (overflow flag) nếu kết quả phép toán là quá lớn cho toán hạng

    [​IMG]
    3 cờ điều khiển:

    - Cờ hướng DF (direction flag) xác định hướng của phép toán xử lý xâu, chuỗi ký tự, nếu được lập, xâu, chuỗi sẽ được xử lý từ địa chỉ cao tới đӏa chỉ thấp và ngược lại. Cơ được lập bởi lệnh STD và xoá bằng lệnh CLD.

    - Cờ ngắt IF (interrupt enable flag) nếu được lập CPU sẽ chấp nhận yêu caauf ngắt cứng và phục vụ ngắt. Được lập bởi lệnh STI và xoá bằng lệnh CLI

    - Cờ bẫy TF (Trap flag) Dùng trong gỡ rối chương trình (Debuger) Không thể lập hay xoá trực tiếp bởi lệnh của máy

    F. Thanh ghi con trỏ lệnh IP

    Lượt qua các từ khóa quen thuộc thêm nữa. Bên cạnh thanh ghi con trỏ lệnh IP có chức năng là lưu trữ địa chỉ của lệnh đang thực hiện, chứa 16 bit, là một thành phần quan trọng trong quá tình thực thi lệnh nào cần được thực hiện tiếp theo. Ta sẽ biết đến một thanh ghi được gọi là CIR hay tên đầy đủ Current Instruction Register, có nhiệm vụ là giữ địa chỉ của lệnh đang thực hiện.

    G. CIR - La bàn định hướng giúp CPU xác định vị trí lệnh cần thực hiện tiếp theo trong bộ nhớ

    Với cách thức hoạt động là lệnh được nạp từ bộ nhớ để thực hiện, địa chỉ của lệnh sẽ được lưu vào CIR. Sau khi lệnh được thực hiện xong, CPU sẽ sử dụng địa chỉ trong CIR để xác định lệnh tiếp theo cần thực hiện.

    Một chu kỳ thực hiện lệnh tiêu biểu có thể mô tả như sau:

    + Lấy lệnh từ bộ nhớ (Fetch): CPU truy cập bộ nhớ tại địa chỉ được lưu trữ trong PC (Program Counter - Thanh ghi Chỉ thị Chương trình) và nạp lệnh vào CIR.

    + Giải mã lệnh (Decode): CPU phân tích lệnh được lưu trữ trong CIR để xác định loại lệnh, toán hạng và các thao tác cần thực hiện.

    + Thực thi lệnh (Execute): CPU thực hiện các thao tác được xác định bởi lệnh, sử dụng các nguồn dữ liệu và thanh ghi khác trong CPU.

    + Cập nhật PC: Sau khi thực hiện lệnh, CPU cập nhật giá trị của PC để trỏ đến địa chỉ của lệnh tiếp theo cần thực hiện.

    H. Các thanh ghi dữ liệu

    Thanh ghi dữ liệu là nơi lưu trữ tạm thời cho các phép tính toán nhanh chóng trong quá trình xử lý. Chứa kích thước nhỏ, thường 8 bit, 16 bit hoặc 32 bit, và có thể truy cập trực tiếp bởi các lệnh CPU. Đóng vai trò tăng tốc độ thực hiện và truy cập dữ liệu

    Thanh ghi được chia thành 2 loại:

    + Thanh ghi đa năng (General-purpose register): Có thể lưu trữ nhiều loại dữ liệu khác nhau như số nguyên, số thực, ký tự và địa chỉ bộ nhớ.

    [​IMG]

    + Thanh ghi chuyên dụng (Special-purpose register): Được thiết kế cho các nhiệm vụ cụ thể như đếm vòng lặp, lưu trữ trạng thái CPU hoặc truy cập các thiết bị ngoại vi.

    Các thanh ghi dữ liệu phổ biến

    + Thanh ghi tích luỹ AX: Lưu giữ các kết quả xử lý

    + Thanh ghi cơ sở BX: Địa chỉ cơ sở vùng nhớ

    + Thanh ghi đếm CX: Khai báo số lần một thao tác trong các vòng lặp, phép dịch, phép quay,..
    .
    + Thanh ghi số liệu DX: Lưu giữ số liệu làm thông số chuyển giao cho một chương trình

    [​IMG]

    I. Thanh ghi con trỏ và chỉ số

    Có 2 thanh ghi con trỏ và 2 thanh ghi chỉ số:

    + Thanh ghi con trỏ ngăn xếp SP (Stack Pointer) chứa địa chỉ đỉnh ngăn xếp (vùng nhớ đặc biệt, hoạt động theo nguyên tắc LIFO – Last In First Out – vào sau ra trước) sử dụng cho việc lưu giữ tạm thời các dữ liệu hay địa chỉ khi gọi chương trình con, khi phục vụ ngắt v.v...giá trị nội dung của SP luôn luôn là phần offset của địa chỉ ngăn xếp kế tiếp. SP được sử dụng để theo dõi vị trí của dữ liệu mới nhất được thêm vào ngăn xếp.

    + Thanh ghi con trỏ cơ sở BP (Base Pointer) có chức năng chứa giá trị offset tính từ địa chỉ SS nhưng còn được sử dụng để truy cập dữ liệu bên trong ngăn xếp. Giúp đơn giản hóa việc truy cập dữ liệu trong các cấu trúc dữ liệu dạng mảng và danh sách.

    + Các thanh ghi chỉ số nguồn DI thanh ghi chỉ số đích SI (Destination Index và Source Index) được dùng để lưu giữ các thành phần offset đối với những vùng dữ liệu được cất trong đoạn dữ liệu. Hai nội dung của hai thanh ghi này liên kết với nội dung thanh ghi đoạn DS để tạo ra địa chỉ nguồn và địa chỉ đích của vùng nhớ. Xác định địa chỉ đích chính xác khi lưu trữ dữ liệu.

    [​IMG]

    J. Một vài từ khóa khác

    + Đơn vị tạo địa chỉ (AGU): Là đơn vị xử lý trung tâm, xử lý các phép tính như cộng, trừ, dịch bit, và các phép toán logic để tạo ra địa chỉ mong muốn.

    + Opcode: Phần bộ nhớ chứa mã máy của CPU, định rõ chức năng của mỗi lệnh và cách CPU phải xử lý dữ liệu.

    + Kiến trúc Intel: 64-bit tính toán với toán tử và thanh ghi mở rộng, số lượng thanh ghi đa dụng từ 8 lên 16 thanh ghi đáp ứng không gian rộng kiến trúc 80386 trở đi.

    + Clock speed: Là tần số xung nhịp, một yếu tố quan trọng đánh giá hiệu suất của một khối xử lý trung tâm (CPU), đo lường số lượng xung nhịp đơn vị là Hz. Mặc dù tần số xung nhịp là một chỉ số quan trọng, nhưng nó không phản ánh toàn bộ hiệu suất của một CPU. Trong một số trường hợp, có thể có các CPU với tần số thấp nhưng hiệu suất cao hơn do những cải tiến khác về kiến trúc và khả năng xử lý.

    [​IMG]

    Qua phần tiếp theo là một trong những bộ phận không thể thiếu, đóng vai trò điều khiển bộ não máy tính và quản lý luồng dữ liệu trong hệ thống được gọi là Control Unit (CU)

    7. Control Unit - CU

    Thông qua Bus điều khiển, CU là khối dịch lệnh của CPU. Lấy lệnh từ bộ nhớ, giải mã lệnh, điều khiển các thành phần khác của CPU để thực hiện lệnh, và quản lý luồng dữ liệu trong hệ thống.

    Tín hiệu định thời

    + Đang ở chế độ đọc dữ liệu vào (Input mode)

    + Đang đưa dữ liệu ra (Output mode)

    + Đang bắt đầu một hoạt động khác (Beginning another operation).

    [​IMG]

    Tín hiệu điều hành hoạt động của CPU

    + Đọc dữ liệu từ bộ nhớ (Memory Read): Yêu cầu bộ nhớ cung cấp dữ liệu cho CPU.

    + Ghi dữ liệu vào bộ nhớ (Memory Write): Yêu cầu bộ nhớ lưu trữ dữ liệu từ CPU.

    + Nạp lệnh (Instruction Fetch): Yêu cầu bộ nhớ cung cấp lệnh tiếp theo cho CPU.

    + Đọc dữ liệu từ I/O (I/O Read): Yêu cầu thiết bị đầu vào/ra (I/O) cung cấp dữ liệu cho CPU.

    + Đưa dữ liệu ra I/O (I/O Write): Yêu cầu CPU gửi dữ liệu đến thiết bị I/O.

    8. ISA - Lệnh máy được mã hóa và thực hiện bởi bộ xử lý

    Bên cạnh đó, chúng ta sẽ biết thêm một khái niệm được gọi là Instruction Set Architecture (ISA) - Là một tập hợp các hướng dẫn (instruction set) mà một vi xử lý hoặc một hệ thống tính toán có thể thực hiện. Quy định các lệnh máy và cách chúng tương tác với bộ xử lý, bao gồm cả cách dữ liệu được di chuyển và xử lý.

    Nó đóng vai trò quan trọng trong việc xác định khả năng thực hiện của một hệ thống máy tính và cách lập trình cho nó.

    Có hai loại ISA:

    + RISC - Reduced Instruction Set Computing: Tập trung vào một bộ lệnh đơn giản

    + CISC - Complex Instruction Set Computing: Có một bộ lệnh phức tạp hơn với nhiều chức năng. Cho phép viết mã ngắn gọn hơn, tiết kiệm thời gian và công sức cho lập trình viên.

    [​IMG]

    9. Kiến trúc tập lệnh - Là tập hợp các lệnh mà CPU có thể hiểu và thực thi.

    Mỗi lệnh trong ISA có cấu trúc riêng bao gồm các thành phần sau:

    + Lệnh Gốc (Command): Chỉ dẫn cho CPU về công việc cụ thể cần làm như phép toán logic số học, di chuyển dữ liệu,...

    + Tham Số (Arguments): Các giá trị hoặc thông tin mà lệnh cần để hoạt động chính xác

    + Tùy Chọn (Options): Định cấu hình hoặc cách thức thực hiện của lệnh

    + Các chế độ địa chỉ: ĐC tức thời, ĐC trực tiếp, ĐC gián tiếp, ĐC thanh ghi, ĐC gián tiếp thanh ghi, ĐC thay thế, Địa chỉ ngăn xếp

    [​IMG]

    + Định dạng lệnh:

    = Chiều dài lệnh: Số lượng bit cần thiết để mã hóa lệnh.

    = Phân bổ bit: Cách thức sắp xếp các bit trong lệnh để xác định các thành phần khác nhau.

    = Lệnh có độ dài thay đổi: Một số kiến trúc ISA cho phép các lệnh có độ dài khác nhau.

    10. Pipeline

    [​IMG]

    Như mọi người đã biết, Pipeline là một ống dẫn thực hiện nhiều bước khác nhau của nhiều lệnh trong cùng 1 chu kỳ xung nhịp, với các khả năng tương thích, kiểm soát độ trễ, điều khiển luồng dữ liệu. Tiện là vậy. Tuy nhiên, nó vẫn có những lỗ hỏng cực kỳ đe dọa đến ống dẫn. Được gọi là Pipeline Hazard - Nguy hiểm về đường ống

    11. Pipeline Hazard - Nguy hiểm về đường ống

    Bản chất của pipeline hazard là do các lệnh liên tiếp cần thực hiện có thể ảnh hưởng lẫn nhau và gây ra sự chậm trễ.

    3 nguyên do cơ bản xảy ra lỗi trong đường ống Pipeline:

    + Vấn đề nạp dữ liệu bị giới hạn diện tích của chip.

    + Vấn đề nghẽn cổ chai do dung lượng nạp ấn định cho một phân đoạn thời gian Pipeline bị gán quá nhiều công việc để hoàn tất một thao tác tại phân đoạn.

    + Vấn đề issuing do một lệnh sẵn sàng nhưng không thể thực hiện.

    [​IMG]

    Phân loại Pipeline Hazard:

    + Structural Hazard - Cấu trúc :Nguồn yêu cầu không sẵn sàng thực hiện lệnh, nhiều lệnh cùng yêu cầu cùng một tài nguyên vật lý cùng một lúc

    + Data Hazard - Dữ liệu : Xung đột lệnh trước đó

    + Control Hazard - Điều khiển : Lệnh rẽ nhánh gây thay đổi trong luồng chương trình

    12. Floating Point Unit (FPU) - IU (Instruction Unit) - SFU ( Scarlar Floating- Point Unit)

    FPU (Floating Point Unit) là một bộ xử lý toán học tích hợp bên trong CPU, chuyên thực hiện các phép tính với số thực (số có dấu phẩy động). FPU sử dụng một định dạng đặc biệt để biểu diễn số thực, thường là dấu phẩy động (floating point). Định dạng này cho phép biểu diễn một dãy số thực rộng hơn với độ chính xác cao. FPU có các mạch logic và thuật toán riêng để thực hiện các phép tính số học với độ chính xác theo định dạng này.

    [​IMG]

    IU (Instruction Unit) - Được sử dụng để thực hiện các thao tác tính toán như cộng, trừ, nhân, chia, so sánh, lưu trữ và truy cập dữ liệu.

    SFU ( Scarlar Floating- Point Unit) - Tương tự như FPU nhưng được thiết kế cho các tính toán dấu phẩy động dựa trên kiến trúc phụ thuộc vào loại máy hoặc nhà sản xuất

    13. SIMD

    [​IMG]

    Nếu ta đã học qua SIMD (Single Instruction, Multiple Data) là một bộ lệnh thực hiện 1 lệnh duy nhất trên nhiều dữ liệu đồng thời. Thì đa luồng sẽ là một kỹ thuật phân chia đơn vị xử lý CPU thực hiện nhiều công việc đồng thời.

    Bản chất của đa luồng là kỹ thuật phân chia đơn vị xử lý CPU thực hiện nhiều công việc đồng thời Nếu CPU có 4 đơn vị xử lý (Được gọi là nhân vật lý) -> Việc đa luồng có thể mở 8 luồng xử lý song song.

    [​IMG]

    Đây là một hình ảnh thể hiện rõ nhất của cách hoạt động đa luồng, bạn sẽ thấy ở hình thứ nhất, các luồng dữ liệu phải xếp hàng để chờ được thực hiện. Trong khi hình thứ hai, ta sẽ thấy luồng dữ liệu sẽ dược thực hiện song song.

    14. Cổng Logic

    3 cổng logic cơ bản:

    + Cổng AND (và): Cho kết quả là true (1) nếu cả hai đầu vào đều là true (1), ngược lại là false (0).

    Ví dụ: Bóng đèn chỉ sáng khi cả 2 công tắc A và B đều bật. Trong thực tế, người ta có thể áp dụng với hệ thống báo trộm, cảnh báo chỉ kích hoạt khi cả hai cảm biến cửa A và B đều bị mở (1) Còn bị đóng là (0)

    + Cổng OR (hoặc): Cho kết quả là true (1) nếu ít nhất một trong hai đầu vào là true (1).

    Ví dụ: Cả 2 bóng sáng khi chỉ ít nhất một trong 2 công tắc A hoặc B được bật. Nó được áp dụng với cả đèn giao thông, đèn xanh bật khi hoặc đèn đỏ A hoặc đèn vàng B tắt (0).

    + Cổng NOT (phủ định): Đảo ngược giá trị của đầu vào, true (1) thành false (0) và ngược lại.

    Ví dụ: Nếu cả 2 bóng đèn đều tắt hoặc đều bật thì cả 2 bóng đèn A và B đều sáng. Áp dụng thực tế đối với chuông báo động không kêu khi cảm biến cửa A có giá trị 0 (cửa đóng). Xác định sự vắng mặt của một tín hiệu cụ thể.

    3 cổng logic kết hợp:

    + Cổng EXOR : 2 ngõ vào và 1 ngõ ra.

    Ví dụ: Robot di chuyển sang trái khi chỉ cảm biến bên trái A phát hiện chướng ngại vật (1) và cảm biến bên phải không phát hiện (0).

    + Cổng NAND:đảo với ngõ ra cổng AND

    Ví dụ: Hãy tưởng tượng một công tắc điều khiển một bóng đèn. Khi cả hai công tắc A và B đều bật (1), bóng đèn tắt (0).

    + Cổng NOR: đảo với ngõ ra cổng OR

    Ví dụ: Đảm bảo máy tính chỉ khởi động khi tất cả các điều kiện cần thiết A và B đều được đáp ứng (0).

    15. Đơn vị điều khiển - MCU

    Đơn vị điều khiển vi chương trình (Microprogrammed Control Unit) gồm có 2 đơn vị:

    + Vi lệnh mã hoá hoàn thành lệnh cần thực hiện, tốc độ chậm.được giải mã bởi bộ giải mã vi lệnh (microinstruction decoder) để tạo ra các tín hiệu điều khiển cho các bộ phận khác của CPU.

    + Đơn vị điều khiển phần cứng (Hardwired Control Unit): Sử dụng mạch logic cứng (hardwired logic) được thiết kế riêng cho từng bộ lệnh. Các tín hiệu điều khiển được tạo ra trực tiếp từ mạch logic mà không cần giải mã vi lệnh.

    [​IMG]

    Ta đã biết qua về đơn vị điều khiển phần cứng (Harwired Control Unit), vi chương trình gồm mã hóa, giã mã, tạo tín hiệu điều khiển lệnh, tốc độ nhanh. Thì khái niệm cuối cùng sau đây là đơn vị quản lý bộ nhớ - MUU

    16. Đơn vị quản lý bộ nhớ - MUU

    MUU là phần cứng chứa tham chiếu bộ nhớ đi qua, ánh xạ từ địa chỉ bộ nhớ ảo ra địa chỉ bộ nhớ vật lý. MMU chống lại các phần mềm độc hại bằng cách không cho các phần mềm này sử dụng các vùng nhớ mà đáng lý ra nó không được đụng tới.

    MMU bao gồm các thành phần chính sau:

    + Bảng trang: Lưu trữ thông tin về vị trí của mỗi trang trong bộ nhớ vật lý

    + Bộ ghi dịch địa chỉ: Chuyển đổi địa chỉ ảo sang địa chỉ vật lý bằng cách sử dụng bảng trang.

    + Bộ đệm bộ nhớ: Lưu trữ tạm thời dữ liệu được truy cập gần đây để tăng tốc độ truy cập.

    + Cơ chế bảo vệ: Ngăn chặn truy cập trái phép vào bộ nhớ.

    [​IMG]

    Vai trò:

    + Ánh xạ địa chỉ ảo sang địa chỉ bộ nhớ vật lý: Khi CPU truy cập dữ liệu từ bộ nhớ, nó sử dụng địa chỉ ảo, một địa chỉ logic được chương trình tạo ra. MMU sẽ chuyển đổi địa chỉ ảo này sang địa chỉ bộ nhớ vật lý, địa chỉ thực tế của dữ liệu trong bộ nhớ vật lý.

    + Quản lý bộ nhớ ảo: MMU hỗ trợ bộ nhớ ảo, cho phép CPU truy cập nhiều bộ nhớ hơn dung lượng bộ nhớ vật lý thực tế. MMU chia bộ nhớ vật lý thành các trang và sử dụng bảng trang để theo dõi vị trí của mỗi trang trong bộ nhớ vật lý.

    + Bảo vệ bộ nhớ: MMU có thể ngăn chặn các chương trình truy cập các vùng nhớ không được phép, giúp bảo vệ hệ thống khỏi phần mềm độc hại và lỗi lập trình.

    + Cải thiện hiệu suất: MMU có thể sử dụng các kỹ thuật như bộ đệm bộ nhớ và phân trang để tăng tốc độ truy cập dữ liệu, giúp CPU hoạt động hiệu quả hơn.

    [​IMG]

    Mô phỏng dễ hiểu về MUU:

    Giả sử bạn đang sử dụng trình duyệt web để truy cập một trang web. Khi bạn nhấp vào một liên kết, trình duyệt web sẽ gửi yêu cầu đến máy chủ web. Máy chủ web sẽ gửi lại trang web dưới dạng dữ liệu. Dữ liệu này được lưu trữ trong bộ nhớ vật lý của máy tính của bạn.

    Khi CPU cần truy cập dữ liệu của trang web, nó sẽ sử dụng địa chỉ ảo để xác định vị trí của dữ liệu trong bộ nhớ. MMU sau đó sẽ chuyển đổi địa chỉ ảo này sang địa chỉ bộ nhớ vật lý, cho phép CPU truy cập dữ liệu một cách chính xác.
     
  2. Đăng ký Binance
Trả lời qua Facebook
Đang tải...