• Thứ Sáu, 03/06/2005 23:09 (GMT+7)

    Căn bản - Cấp tốc: Bên trong bộ xử lý

    Định nghĩa: bộ vi xử lý là trái tim của máy tính hiện đại; đây là một loại chip được tạo thành từ hàng triệu transistor và những thành phần khác được tổ chức thành những khối chức năng chuyên biệt, bao gồm đơn vị xử lý số học, khối quản lý bộ nhớ và bộ nhớ đệm, khối luân chuyển dữ liệu và phép toán luận lý suy đoán.
    Bộ xử lý của máy tính hiện nay đã phát triển cực mạnh về khả năng, tốc độ và tính phức tạp so với thập niên trước đây. Tốc độ cao, kích thước nhỏ, số lượng transistor khổng lồ. Nếu bộ xử lý năm 1983 chỉ có 30.000 transistor thì hiện nay với một số bộ xử lý con số này là trên 40 triệu.
    Bất kỳ chương trình máy tính nào cũng bao gồm rất nhiều lệnh để thao tác với dữ liệu. Bộ xử lý sẽ thực hiện chương trình qua bốn giai đoạn xử lý: nạp, giải mã, thực thi và hoàn tất. Giai đoạn nạp (lấy lệnh và dữ liệu) đọc các lệnh của chương trình và dữ liệu cần thiết vào bộ xử lý. Giai đoạn giải mã xác định mục đích của lệnh và chuyển nó đến phần cứng tương ứng.Giai đoạn thực thi là lúc có sự tham gia của phần cứng, với lệnh và dữ liệu đã được nạp sẵn, các lệnh sẽ được thực hiện. Quá trình này có thể gồm các tác vụ như cộng, chuyển bít hay nhân thập phân động. Giai đoạn hoàn tất sẽ lấy kết quả của giai đoạn thực thi và đưa vào thanh ghi của bộ xử lý hay bộ nhớ chính.
    Một bộ phận quan trọng của bộ vi xử lý là đồng hồ xung nhịp được thiết kế sẵn, xác định tốc độ làm việc tối đa của những bộ phận khác và giúp đồng bộ hoá những hoạt động liên quan. Hiện nay tốc độ nhanh nhất của bộ xử lý có trên thị trường là trên 2GHz hay hơn hai tỷ xung nhịp mỗi giây. Một số người thích sử dụng thủ thuật “ép” xung để chạy ở tốc độ cao hơn, nhưng nên nhớ là khi đó nhiệt độ làm việc của chip sẽ cao hơn và có thể gây trục trặc.

     

    Các bộ phận của CPU

    Mạch của bộ xử lý được thiết kế thành những phần luận lý riêng biệt – khoảng hơn một chục bộ phận – được gọi là những đơn vị thực thi. Chúng có nhiệm vụ thực hiện bốn giai đoạn trên và có khả năng xử lý gối đầu. Dưới đây là một số đơn vị thực thi phổ biến nhất.

    Bộ luận lý số học: Xử lý tất cả những phép toán số học. Đôi lúc đơn vị này được chia thành những phân hệ, một chuyên xử lý các lệnh cộng và trừ số nguyên, phân hệ khác chuyên tính toán các phép nhân và chia số phức.
    Bộ xử lý dấu chấm động (FPU): Thực hiện tất cả các lệnh liên quan đến dấu chấm động (không phải là số nguyên). Ban đầu, FPU là bộ đồng xử lý gắn ngoài nhưng hiện nay nó được tích hợp ngay trên bộ xử lý để tăng tốc độ xử lý.

    Bộ phận nạp/lưu: Quản lý tất cả lệnh đọc hay ghi bộ nhớ.

    Bộ phận quản lý bộ nhớ (MMU): Chuyển đổi địa chỉ của ứng dụng thành địa chỉ bộ nhớ vật lý. Điều này cho phép hệ điều hành ánh xạ mã và dữ liệu của ứng dụng vào những khoảng địa chỉ ảo để MMU có thể thực hiện các dịch vụ theo chế độ bảo vệ bộ nhớ.

    Bộ phận xử lý rẽ nhánh (BPU): Dự đoán hướng đi của lệnh rẽ nhánh nhằm giảm sự ngắt quãng của dòng chuyển dữ liệu và lệnh vào bộ xử lý khi có một luồng xử lý nhảy đến một địa chỉ bộ nhớ mới, thường gặp trong các phép toán so sánh hay kết thúc vòng lặp.
    Bộ phận xử lý vector (VPU): Xử lý các lệnh đơn, đa dữ liệu (single instruction multiple data-SIMD) để tăng tốc các tác vụ đồ hoạ. Những lệnh theo kiểu vector này gồm các tập lệnh mở rộng cho multimedia của Intel, 3DNow của AMD, AltiVec của Motorola. Trong một vài trường hợp không có bộ phận VPU riêng, chẳng hạn Intel và AMD tích hợp những tính năng này vào trong FPU của Pentium 4 và Athlon.

    Không phải tất cả các bộ phận này đều thực thi lệnh. Người ta đã có những nỗ lực to lớn để bảo đảm cho bộ xử lý lấy lệnh và dữ liệu ở tốc độ nhanh nhất. Tác vụ nạp truy cập bộ nhớ chính (không nằm ngay trên CPU) sẽ chiếm nhiều chu kỳ xung nhịp, trong khi đó CPU lại không làm gì cả. Tuy nhiên, BPU sẽ phải làm việc rất nhiều để lấy sẵn dữ liệu và lệnh.

    Một cách giảm thiểu tình trạng không hoạt động của CPU là trữ sẵn mã và dữ liệu thường được truy cập trong bộ nhớ ngay trên chip (xem bài “Cache memory”, PC World Việt Nam, số tháng 10/2000, tr.80), như vậy CPU có thể truy cập mã và dữ liệu trên bộ nhớ đệm chỉ trong một chu kỳ xung nhịp. Bộ nhớ đệm chính ngay trên CPU (còn gọi là Level1 hay L1) thường chỉ có dung lượng khoảng 32KB và chỉ có thể lưu được một phần chương trình hay dữ liệu. Thủ thuật để thiết  kế bộ nhớ đệm là tìm giải thuật để lấy thông tin quan trọng vào L1 khi cần đến. Điều này có ý nghĩa hết sức quan trọng đối với tốc độ nên hơn một nửa số lượng transistor của bộ xử lý có thể dành cho bộ nhớ đệm.

    Tuy nhiên, hệ điều hành đa nhiệm và một loạt các ứng dụng chạy đồng thời có thể làm quá tải ngay cả với bộ nhớ đệm L1 được thiết kế tốt nhất. Để giải quyết vấn đề này, cách đây nhiều năm, các nhà sản xuất đã bổ sung đường truyền tốc độ cao để bộ xử lý có thể giao tiếp với bộ nhớ đệm thứ cấp (Level2, L2) với tốc độ khoảng ½  hay 1/3 tốc độ của bộ xử lý. Hiện nay trong những bộ xử lý mới nhất như Pentium 4 hay PowerPC 7450 còn tiến xa hơn khi đưa bộ nhớ đệm L2 vào ngay trong CPU và hỗ trợ giao tiếp tốc độ cao với bộ nhớ đệm ngoài L3. Trong tương lai, các nhà sản xuất thậm chí còn tích hợp bộ điều khiển bộ nhớ ngay trên CPU để tăng tốc độ lên cao hơn nữa.

    Computerworld 08/10/2001

    ID: A0204_65