Tìm hiểu về FPU máy tính – Code kiểm tra bằng Assembly

Floating Point Unit (FPU) chính là một yếu tố quyết định đến sức mạnh xử lý của một máy tính. Sau đây, hãy cùng TTnguyen tìm hiểu về Floating Point Unit là gì? chương trình kiểm tra FPU bằng ngôn ngữ lập trình assembly nhé.

Xem thêm:

Floating Point Unit (FPU) là gì?

Floating Point Unit (FPU) nghĩa là bộ xử lý số dấu chấm động, là một thành phần của vi xử lý (CPU). Nó chuyên trách tính toán các phép toán với số thực dẩu chấm động (số thập phân). FPU hỗ trợ các phép toán cơ bản như cộng, trừ, nhân, chia và cả các phép toán phức tạp hơn như căn bậc hai, luỹ thừa, nghịch đảo.

Cấu tạo của Floating Point Unit (FPU)

FPU thường được cấu tạo từ ba thành phần chính:

  • Bộ thực hiện các phép toán (execution unit): là nơi diễn ra tất cả các phép tính của FPU. Bao gồm cả việc chuyển đổi từ mã hóa số thập phân sang nhị phân và ngược lại.
  • Bộ đệm (buffer): chứa dữ liệu khi bộ xử lý đang thực hiện các phép toán. Đảm bảo không có bất kỳ độ trễ nào xảy ra trong quá trình xử lý.
  • Bộ nạp dữ liệu (load/store unit): lấy dữ liệu từ RAM hoặc các thiết bị ngoại vi khác. Chẳng hạn như ổ cứng hoặc mạng và đưa chúng vào FPU.

Ứng dụng của Floating Point Unit

FPU chính là tâm điểm của các ứng dụng cần khả năng tính toán mạnh mẽ: đồ họa máy tính, machine learning,…

  • Trong lĩnh vực đồ họa máy tính: FPU giúp thực hiện những phép toán đồ họa phức tạp mà các CPU thông thường không thể thực hiện được. Nhờ FPU, các hệ thống máy tính giờ đây có thể tạo ra hình ảnh 3D rất chân thực, tạo nên những trò chơi điện tử, phim hoạt hình, các ứng dụng thực tế ảo với chất lượng đồ họa ngày càng tốt hơn.
  • Trong lĩnh vực machine learning: một phần lớn các thuật toán đều sử dụng số thực và cần thực hiện hàng tỉ phép toán trên mỗi giây. Nếu không có FPU, việc xử lý số lượng dữ liệu lớn này sẽ trở nên bất khả thi.

Chương trình kiểm tra liệu máy tính có FPU không?

Thuật toán: Các byte địa chỉ 0:410h của vùng dữ liệu ROM BIOS có chứa các thông tin liên quan đến FPU:

x

byte thứ 2 chính và ô địa chỉ chứa thông tin về FPU.

Code Assembly:

INCLUDE lib1.asm
.MODEL small
.STACK 100h
.DATA
m1 db 13,10,'LIEU MAY TINH CO FPU'
   db 13,10,'     --------   '
   db 13,10,'May tinh co FPU khong: $'
m2 db 'Khong$'
m3 db 'Co$'
m4 db 13,10,'Nhan phim bat ky de thoat!$'
.CODE
PS:
        mov ax, @data
        mov ds, ax
        clrscr         ; xoa man hinh
        HienString m1  ; hien thong tin m1
        int 11h        ; 0:410h -> AL va 0:411h -> AH
        shr ah, 2      ; Dua trang thai bit thu 6 -> CF
        jc L1          ; CF=1 (co FPU) thi nhay den L1,
        HienString m2  ; con CF=0 thi thong bao m2 ('Khong')
        jmp Exit
     L1:
        HienString m3
   Exit:
        HienString m4
        mov ah, 1                                                                                                                     
        int 21h                   
        mov ah, 4ch
        int 21h
END PS

Kết quả chạy chương trình:

Kết quả chạy chương trình kiểm tra liệu máy tính có FPU hay không?

Tổng kết lại, FPU là một thành phần không thể thiếu của mọi hệ thống máy tính. Nó giúp máy tính có khả năng xử lý các phép toán với số thực một cách hiệu quả. Hy vọng bài viết sẽ giúp bạn có thêm kiến thức về máy tính. Cảm ơn bạn đã tham khảo bài viết.

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em