Phân tích Kiến trúc Vi Xử Lý Intel Pentium M: Đảm Bảo Hiệu Suất Tối Ưu

MỤC LỤC

KIẾN TRÚC CỦA VI XỬ LÝ INTEL PENTIUM M

Sơ đồ khối

Ống U có thể thực hiên tất cả các lệnh số nguyên và dấu phẩy động,ống V dành cho các lệnh số nguyên đơn giản và lệnh dấu phẩy động FXCH. Data cache có một bộ đệm Translation Lookaside(TLB) dành riêng để truyền các địc chỉ tuyến tính tới các địa chỉ vật lí được data cache sử dụng.

Các thành phần chính và cách hoạt động của chúng

    • RAT : trong vi cấu trúc P6 bổ sung việc thực hiện OOO (Out-Of-Order) , giá trị của thanh ghi được đưa ra có thể được sử đổi bằng lệnh thực hiện trước khi nó là “correct” ( trong tiến trình của chương trình gốc ) , nó có thể làm cho số liệu bị tranh chấp bởi chương trình khác. • RET2: khi tất cả micro-op liên quan đến lệnh x86 trước đã được chuyển từ Reorder Buffer và tất cả micro-op liên quan tới lệnh x86 hiện tại đã được thực hiện , thì những micro-op đã được chuyển từ Reorder Buffer và những thanh ghi x86 được update (quá trình ngược làm việc lại với RAT ) .Quá trình lùi lại phải làm theo thứ tự. Bộ giải mã chỉ lệnh có thể chuyển đổi lên đến 3 chỉ lệnh x86 trên mỗi một chu kỳ clock, một bộ giải mã phức tạp Decoder 0 và hai bộ giải mã đơn giản 1 và 2, điều này làm cho chúng ta có cảm giác hàng đợi chỉ lệnh đã được giải mã (Decoded Instruction Queue) có thể lên đến 6 chỉ lệnh giải mã trên mỗi chu kỳ clock, kịch bản có thể khi Decoder 0 gửi 4 chỉ lệnh đã giải mã và hai bộ giải mã kia gửi mỗi bộ một chỉ lệnh đã được giải mã – hoặc khi MIS được sử dụng.

    Bạn cần nên lưu ý rằng Decoded Instruction Queue chỉ có thể giữ được đến 6 chỉ lệnh đã giải mã, chính vì vậy nếu có hơn 6 chỉ lệnh giải mã được sinh ra bởi bộ giải mã cộng với MIS thì một chu kỳ khác sẽ được sử dụng để gửi các chỉ lệnh hiện hành trong hàng đợi tới Register Allocation Table (RAT), làm trống hàng đợi và chấp nhận các chỉ lệnh đã giải mã mà không phù hợp với nó trước đó. Chính vì vậy, tại tầng này, bộ vi xử lý thay đổi tên và nội dung của các thanh ghi đã được sử dụng bởi chương trình thành một trong 40 thanh ghi bên trong đã có (mỗi một thanh ghi này có 80 bit rộng, như vậy việc chấp nhận cả dữ liệu nguyên và dữ liệu thay đổi), cho phép chỉ lệnh có thể chạy tại cùng một thời điểm với chỉ lệnh khác mà sử dụng cũng cùng một thanh ghi chuẩn, hoặc thậm chí out-of-order, có nghĩa là cho phép chỉ lệnh thứ hai có thể chạy trước chỉ lệnh thứ nhất dù là chúng cùng chung trên một thanh ghi. Trong khi khối này đang xử lý một chỉ lệnh rất phức tạp, mất đến vài clock để thực thi thì cổng 0 sẽ không ngừng hoạt động: nó luôn luôn gửi các chỉ lệnh đơn giản đến IEU mặc dù khi đó FPU lại đang rất bận.Chính vì vậy, mặc dù tốc độ gửi đi lớn nhất là 5 chỉ lệnh giải mã trên mỗi một chu kỳ clock, nhưng thực tế CPU có thể tăng lên đến 12 chỉ lệnh giải mã tại cùng một thời điểm.

    Sau đó tại tầng cuối (Retirement Stage), các chỉ lệnh đã giải mã có cờ “thực thi” của chúng sẽ được xóa khỏi bộ đệm Reorder Buffer theo thứ tự ban đầu của nó (nghĩa là theo thứ tự mà chúng đã được giải mã) và sau đó các thanh ghi x86 được cập nhật (ngược lại bước của tầng đặt lại tên của thanh ghi). Bộ vi xử lý và các chip hỗ trợ khác đến lượt mình cũng thường xuyên phải truyền số liệu giữa các khối, bộ phận trong và ngoài chúng với nhau.Vì có rất nhiều các bộ phận , khối riêng rẽ trong bản thân các Chip và các đường truyền số liệu rất đa dạng, nên một cách hợp lý ta không thể thực hiện các đường nối giữa các bộ phận , khối từng đôi một với nhau mà ta nối chung tất cả các lối vào/ lối ra của các khối riêng rẽ với nhau lên một hệ thống các đường dẫn chung; hệ thống này được gọi là bus.

    Hình 2: Khối tìm nạp
    Hình 2: Khối tìm nạp

    Kiến trúc tập lệnh

      • Nhóm lệnh truyền dữ liệu: (MOVD, MOVQ) sao chép dữ liệu giữa một thanh ghi số nguyên 32 bit hoặc một vùng nhớ từ và một thanh ghi MMX. • Nhóm lệnh điều khiển Cacheability, prefetch, và điều khiển thứ tự lệnh : Hiển thị chữ viết theo ngữ hệ La-tinhCác nhóm lệnh cacheability kiểm soát cung cấp kiểm soát bộ nhớ đệm lưu trữ tạm thời khi lưu trữ dữ liệu từ MMX và thanh ghi XMM vào bộ nhớ. SSE2 : Streaming SIMD Extensions 2, là một trong những SIMD Intel (lệnh đơn, dữ liệu bội) hướng dẫn xử lý bổ sung bộ đầu tiên được giới thiệu bởi Intel với phiên bản ban đầu của Pentium 4 vào năm 2001.

      SSE2 cho phép các nhà phát triển phần mềm có sự linh hoạt tối đa để thực hiện các thuật toán và cung cấp cải tiến hiệu xuất khi chạy phần mềm chẳng hạn như MPEG-2, MP3, đồ họa 3D. SSE2 là sự mở rộng khả năng tính toán của MMX hoạt động trên các thanh ghi XMM.Phần mở rộng bao gồm một bộ điều khiển bộ nhớ cache nhằm mục đích chủ yếu để giảm thiểu dư thừa dữ liệu không cần thiết lúc bộ nhớ cache khi xử lý dòng thông tin vô hạn, và bổ sung một tính toán tinh vi chuyển đổi định dạng số.SSE2 mở rộng tập lệnh MMX để hoạt động trên các thanh ghi XMM. Hai lý do chính đó là: khi truy cập SSE2 dữ liệu trong bộ nhớ không phù hợp với một nhóm 16-byte, và thông lượng của tập lệnh SSE2 trong hầu hết x86 triển khai thường nhỏ hơn so với các tập lệnh.

      Cơ chế dự đoán rẽ nhánh trong PM

        Các nhánh rẽ không lặp và lệnh nhảy,lời gọi giỏn tiếp cựng chia sẻ bộ đệm lịch sử và mụ hỡnh bảng lịch sử, nhưng rừ ràng là không cùng BTB. Một lệnh nhảy/lời gọi sẽ có một cổng vào BTB mới mỗi lần nó nhảy tới một đích mới, nó có thể có nhiều hơn 4 cổng BTB mặc dù BTB chỉ có 4 đường. 48 bit hoặc hơn thế phải được nén lại hởi một số thuật toán chia nhỏ vào một khóa có x bit để đánh số cho 2x Cổng vào của bảng lịch sử.

        Pentium M và Core 2 tạo ra nhiều dự đoán trật hơn mong đợi trong các chương trình có nhiều nhánh không lặp hoặc các lệnh nhảy/lời gọi gián tiếp ở cuối vòng lặp. Hiện tượng này không chỉ xảy ra đối với lệnh nhảy/lời gọi gián tiếp mà còn đối với điều kiện nhảy được dự đoán bởi dự đoán hai tầng. Việc cải tiến dự đoán rẽ nhánh cho các nhánh rẽ trực tiếp và cho các vòng lặp động với sự bổ sung của bộ phận dò tìm vòng lặp đã mang giúp cho hiệu suất xử lý tăng cao.

        Các đặc trưng chủ yếu của Intel Pentium M”

        • Trạng thái AutoHALT: Là trạng thái năng lượng thấp khi bộ xử lý thi hành lệnh HALT.Một bộ quản lý ngắt quãng (SMI) sẽ trả về thi hành cho trạng thái bình thường hoặc trạng thái AutoHALT. • Trạng thái HALT/ Grant Snoop: Bộ xử lý sẽ đáp ứng snoop hoặc thực hiện ngắt trên bus hệ thống khi ở trong trạng thái Stop – grant hoặc Auto HALT, trong khi xử lý một snoop hoặc lệnh ngắt, bộ xử lý đi vào trạng tháu HALT/Grant Snoop, bộ xử lý sẽ duy trì tinhd trạng đó cho tới khi snoop trên bus hệ thống đã được đáp ứng hoặc lệnh ngắt đã bị khóa, sau đó nó trở về trạng thái Stop Grant hoặc AutoHALT tương ứng. Pentium M được trang bị công nghệ speed step nâng cao, cho phép vi xử lý chuyển giữa nhiều tần số và điện áp, việc này cho phép tối ưu hóa việc tiết kiệm năng lượng, việc chuyển đổi giữa các trạng thái được phần mềm điều khiển, không giống các thế hệ trước.

        Khi cảm biến nhiệt chỉ ra rằng nhiệt độ đã tăng quá cao, bộ xử lý có thể tự động chuyển sang tần số/ điện áp thấp hơn được chỉ định bởi một phần mềm lập trình được MSR. Bạn cần phải chú ý một điều rằng khi không cần tốn nhiều năng lương đối với laptop thì không những chỉ giảm tốc độ clock mà còn giảm cả điện áp, việc giảm điện áp sẽ giúp giảm tiêu tốn rất nhiều pin máy. Công nghệ Enhanced SpeedStep làm việc bằng cách kiểm tra các thanh ghi model cụ thể MSR (Model Specific Registers) của CPU, thành phần này được gọi là Performance Counter.