Đặc điểm chung của pentium

Một phần của tài liệu Cấu trúc-Nguyên lý hoạt động máy tính (Trang 27)

Pentium được đưa vào thị trường năm 1993 (0,6 µm, 4 lớp dây dẫn, kỹ thuật chế tạo Meta BICMOS). Năm 1995 xuất hiện thế hệ Pentium Pro dùng kỹ thuật siêu tỷ lệ ba đường (three - way

superscalar). Khái niệm "siêu tỷ lệ ba đường" có nghĩa là bộ vi xử lý có khả năng giải mã, gửi đi và tiến hành song song ba lệnh trong một chu kỳ đồng hồ. Để làm được việc này, Pentium Pro dùng một siêu đường ống (super pipeline) với 12 giai đoạn (stage). Hình 4.1 cho thấy sơ đồ khối của bộ vi xử lý với đường ống được chia ra làm bốn đơn vị, đơn vị lấy và giải mã, đơn vị lui về, và bộ góp lệnh. Mã lệnh và dữ liệu được đưa tới những đơn vị trên qua đơn vị giao diện bus. Để nạp liên tục mã lệnh và dữ liệu lên đơn vị thực hiện, bộ vi xử lý có hai bộ nhớ đệm :

• Bộ nhớ đệm cache mức 1 gồm 16 Kbyte cho mã lệnh và 16

Kbyte cho dữ liệu (Pentium Pro, Pentium II. Pentium III) được nối trực tiếp với đường ống.

• Bộ nhớ đệm cache mức 2 gồm 256 Kbyte (Pentium Pro) hay 512 Kbyte (Pentium III) SRAM được nối với bộ vi xử lý qua bus 64 bit với vận tốc của bộ vi xử lý.

Đặc điểm nổi bật của bộ vi xử lý Pentium Pro là phương thức "thực hiện lệnh động ngoại lệ" (out - of - order dynamic execution). Thực hiện lệnh động dùng 3 phương pháp.

• Phỏng đóan nhánh sâu (deep branch prediction)

• Phân tích dòng dữ liệu động (dynamic data flow analysis).

• Thực hiện tiên đoán (speenlative execution).

Chương II: Vi xử lý 32 BIT

Bus hệ thống

Bus cache

Lấy mã Lấy Nạp

Hình 2.1. Sơ đồ khối lượng của bộ vi xử lý Pentium Pro và hệ thống giao diện với tiểu hệ bộ nhớ (cache)

Phỏng đóan nhanh (branch prediction) là phương pháp thường thấy trong máy lớn (mainframe) và các bộ vi xử lý cao tốc. Phương pháp này cho phép bộ vi xử lý giải mã cả ở phía sau các nhánh rẽ (lệnh nhảy chẳng hạn) khiến đường ống lệnh luôn luôn đầy. Trong bộ vi xử lý Pentium Pro, đơn vị lấy và giải mã (feteh/decode unit) có thuật toát tối ưu hóa việc đóan nhanh để đóan trước hướng đi của dòng lệnh qua nhiều tầng lớp rẽ nhánh, gọi hàm và quay trở lại.

Phân tích dòng dữ liệu động (dynamic data flow analysis) cho phép bộ vi xử lý phân tích dòng chuyển động dữ liệu trong thời gian thực để xác định thanh ghi tương ứng để thực hiện lệnh ngoại lệ. Đơn

L2 Cahce

Đơn vị giao diện bus

Cache L1

cho mã lệnh Cache L1 cho dữ liệu

Đơn vị lấy và giải mã

Đơn vị gửi và tiến hành

Đơn vi lui vê Các thanh ghi của cấu trúc

Intel

một lúc và thực hiện chúng theo một thứ tự để tối ưu hóa đơn vị thực hiện đa phần. Phương pháp thực hiện ngoại lệ khiến đơn vị thực hiện phảo làm việc liên tục.

Thực hiện tiên đoán (speculative execution) là khả năng của bộ vi xử lý có thể thực hiện lệnh trước cả con trỏ lệnh nhưng vẫn giữ được kết quả như theo thứ tự lệnh ban đầu. Để có thể tiến hành tiên đóan được, bộ vi xử lý Pentium Pro tách riêng việc gửi và thực hiện lệnh khỏi kết quả. Đơn vị gửi và thực hiện lệnh phân tích dòng dữ liệu để thực hiện mọi lệnh có mặt trong bộ góp lệnh và lưu giữ kết quả trong các thanh ghi tạm. Sau đó đơn vị lui về (retirement unit) tìm trong bộ góp lệnh những lệnh đầy đủ mà không phụ thuộc vào dữ liệu hay nhánh chưa kết thúc. Nếu những lệnh đầy đủ được tìm thấy, đơn vị lui về đưa kết quả của những lệnh này vào bộ nhớ hay thanh ghi (8 thanh ghi của bộ vi xử lý và 8 thanh ghi của đơn vị dấu chấm động) theo thứ tự mà chúng phải có cất những lệnh này từ bộ góp lệnh.

Bằng ba phương pháp : phỏng đóan nhanh sâu, phân tích dòng dữ liệu động và thực hiện tiên đóan, phương thức thực hiện động ngoại tệ đã xóa bỏ được dòng lệnh tuyến tính giữa giai đọan lấy lệnh và giai đọan thực hiện lệnh truyền thống. Phương thức thực hiện động ngoại tệ cho phép giải mã sâu đến từng nhánh chương trình để giữa đường ống lệnh luôn đầy. Phương thức này cho phép cả sáu đơn vị thực hiện đều hoạt động với công suất tối đa. Cuối cùng nó đưa kết quả theo thứ tự ban đầu để đảm bảo sự thông suốt trong chương trình.

2.1.2. Cấu trúc Pentium

Hình 4.2. cho thấy cấu trúc khối của bộ vi xử lý Pentium

Tiểu hệ bộ nhớ : bus hệ thống, bộ đệm cache 1.2, đơn vị giao diện bus, bộ đệm mã lệnh cache L1, bộ đệm dữ liệu cache L1, đơn vị giao diện bộ nhớ và bộ đệm tái đặc bộ nhớ.

Đơn vị lấy và giải mã lệnh : đơn vị lấy lệnh, bộ đệm đích rẽ, bộ giải mã lệnh, bộ vi mã lệnh (microcode sequencer), và bảng thanh ghi giả. (adsbygoogle = window.adsbygoogle || []).push({});

Bộ góp lệnh hay bộ xếp thứ tự.

Đơn vị gửi và thực hiện lệnh : trạm dự trữ, hai đơn vị số nguyên, hai đơn vị dấu chấm động, hai đơn vị tạo địa chỉ.

Đơn vị lui về : đơn vị lui về và các thanh ghi lui về.

Tiểu hệ bộ nhớ (memory subsystem) gồm bộ nhớ chính, bộ nhớ đệm cache mức 1 (cache L1) và bộ nhớ đệm mức 2 (cache L2). Đơn vị giao diện bus truy nhập bộ nhớ chính qua hệ thống bus bên ngòai. Hệ thống bus 64 bit này định hướng theo loại truyền, có nghĩa là truy nhập bus được xử lý theo hai chế độ riêng rẽ : yêu cầu và trả lời. Đơn vị giaodiện bus truy nhập bộ nhớ đệm mức 2 (1.2cache) qua bus cache 64 bit. Bus này cũng định hướng theo loại truyền và chạy với tốc độ của đồng hồ hệ thống trong. Truy nhập bộ nhớ đệm mức 1 (L1 cache) cũng qua bus bên trong với tốc độ của đồng hồ hệ thống. Bộ nhớ đệm có thể nạp và lấy trong một chu kỳ. Sự kết hợp giữa bộ nhớ chính và bộ nhớ đệm được đảm bảo qua biên bản MESI (modified, exclusive, shared, invalid).

Yêu cầu truy nhập bộ nhớ của đơn vị thực hiện được chuyển qua đơn vị giao diện bộ nhớ đã tái đặt bộ nhớ (memory reorder buffer). Nhưng đơn vị này được thiết kế để truy nhập bộ nhớ được trôi chảy qua các loại bộ nhớ. Nếu bộ nhớ bị tắc, bộ nhớ đệm dữ liệu mức 1 (L1 data cache) tự động báo lỗi đến bọ đệm mức 2 (L2 cache). Và sau đó, nếu cần thiết, đơn vị giao diện bus báo lỗi cho bộ nhớ chính. Yêu cầu truy nhập bộ nhớ đến bộ nhớ đệm mức đi qua bộ đệm tái đặt bộ nhó, Bộ đệm tái đặt bộ nhớ làm việc như một trạm sắp xếp và gửi dữ liệu. Đơn vị này theo dõi mọi yêu cầu của bộ nhớ và có khả năng tái đặt một yêu cầu bộ nhớ để tránh tắc nghẽn.

Đơn vị lấy và giải mã lệnh

Đơn vị lấy và giải mã lệnh (fetch/decode unit) đọc một loạt mã lệnh từ bộ nhớ đệm mã lệnh L1 và giải mã chúng thành một dãy vi lệnh (micro - operation hay "micro - ops). Dãy microp-op (luôn theo thứ tự của dãy mã lệnh) được gửi đến bộ góp lệnh (instruction pool). Đơn vị lấy lệnh quét một dòng dài 32 bytle trong một nhịp đồng hồ từ bộ đệm mã lệnh. Đơn vị này đánh dấu phần đầu và cuối của mã lệnh và đưa 16 byte đã được chỉnh đốn đến bộ giải mã lệnh. Đơn vị lấy lệnh tính con trỏ của lệnh theo giá trị đưa đến từ bộ đệm đích của rẽ nhánh (branch target buffer), theo giá trị trạng thái ngắt, ngoại lệ (exception/interrupt status) và theo chỉ số đóan rẽ nhánh sai (branch - misprediction indication) từ đơn vị số nguyên.

Phần quan trọng nhất của quá trình trên là dự đóan rẽ nhánh (branch prediction) do bộ đệm đích rẽ nhánh thực hiện. Theo thuật

của bộ lùi lại. Trong giới hạn này, những phép nhảy rẽ nhánh, phép gọi tiểu trình và phép quay lại (return) phải được dự đóan chính xác để đơn vị gửi thực hiện (dispatch/execute) hoạt động đúng quy cách.

Hình 2.2. Sơ đồ khối của cấu trúc bộ vi xử lý Intel Pentium Pro Bộ giải mã gồm ba bộ giải mã con làm việc song song, hai bộ giải mã lệnh đơn giản và một bộ giải mã lệnh phức tạp. Mỗi bộ giải mã

nguồn lôgic và một đích lôgic). Vi lệnh là những lệnh sơ đẳng được 6 bộ thực hiện của bộ vi xử lý thực hiện song song.

Nhiều mã lệnh được chuyển trực tiếp thành một vi lệnh duy nhất qua bộ giải mã lệnh đơn giản. Một số mã lệnh khác được chuyển thành một hay bốn vi lệnh .Bộ giải mã cũng giữ trách nhiệm giải mã phần đầu lệnh (intruction prefix) và lệnh quay vòng (looping).Bộ giải mã lệnh có thể tạo ra đến 6 vi lệnh trong một chu kỳ đồng hồ (2 từ bộ giải mã lệnh đơn giản và 4 từ bộ giải mã lệnh phức tạp).

Những thanh ghi của cấu trúc vi xử lý Intel có thể gây tắc nghẽn vì đặc tính phụ thuộc vào thanh ghi của nhiều lệnh .Để giải quyết vấn đề này phụ thuộc ,bộ vi xử lý có 40 thanh ghi nội bộ đa chức năng .Những thanh ghi này có thể xử lý được cả số nguyên lẫn dấu chấm động .Để xác định một thanh ghi nội bộ ,vi lệnh được gửi từ đơn vị giải mã lệnh đến thanh ghi giả (register alias table unit).Bảng này quy chiếu thanh ghi logic của vi xử lý sang những thanh ghi vật lý nội bộ (thanh ghi giả).Trong giai đoạn cuối cùng của quá trình giải mã ,bộ xếp đặt (allocator)trong đơn vị bảng thanh ghi giả cộng thêm các bit trạng thái và cờ vào vi lệnh để chuẩn bị chúng cho tiến hành ngoại lệ .Sau đó những vi lệnh này .Sau đó những vi lệnh này được đưa vào bộ góp lệnh (intruction pool).

Bộ góp lệnh (bộ đệm xếp thứ tự)

Trước khi đi vào bộ góp lệnh (còn gọi là bộ đệm xépp thứ tự ),vi lệnh đi theo thứ tự như thứ tự lệnh được truyền đến bộ giải mã .Bộ đệm xếp thứ tự là một ma trận nhớ định vị ,xắp xếp thành 40 thanh ghi vi lệnh .Bộ đệm này chứa vi lệnh đợi dược xử lý và cả vi lệnh đã được thực hiện nhưng vẫn chưa nhận trạng thái máy (machine state).Đơn vị gửi thực hiện có thể thực hiện lệnh từ bộ góp lệnh theo một thứ tự bất kỳ .

Đơn vị gửi và thực hiện lệnh là một đơn vị xử lý lệnh ngoại lệ .Đơn vị này có thể xếp đặt và xử lý vi lệnh tùy theo sự phụ thuộc vào dữ liệu và tài nguyên cho phép .,sau đó nó lưu giữ kết quả tạm thời của phép xử lý suy đoán trên.

Trạm dự trữ xếp đặt và lấy vi lệnh từ bộ góp lệnh .Trạm này liên tục quét bộ góp lệnh để tìm vi lệnh và đã sẵn sàng xử lý ,sau đó nó gửi chúng đến đơn vị thực hiện lệnh.Kết quả của vi lệnh được đưa về bộ góp lệnh và được lưu trữ cùng với vi lệnh khi nó được phép lui về.Quá trình xếp đặt và gửi lệnh này theo phương pháp vi lệnh được gửi đến đơn vị thi hành tuân thủ nghiêm ngặt dòng dữ liệu và tài nguyên còn trống mà không theo thứ tự của lệnh.Nếu có nhiều hơn hai lệnh đến cùng lúc ,chúng được thực hiện theo thứ tự FIFO(first in first out)vào trước ra trước.

Hai đơn vị số nguyên,hai đơn vị dấu chấm động và một đơn vị giao diện bộ nhớ xử lý việc thực hiện lệnh.Năm đơn vị này cho phép xếp đặt 5 vi lệnh trong một nhịp đồng hồ duy nhất .Hai đơn vị số nguyên làm việc song song .Một đơn vị số nguyên dành riêng để xử lý vi lệnh rẽ nhánh .Đơn vị này có khả năng phát hiện việc suy đoán rẽ nhánh sai và phát tín hiệu đến bộ đệm đích rẽ nhánh để khởi động lại đường ống .Quá trình này được xử lý như sau:

• Bộ giải mã lệnh đánh dấu từng vi lệnh riêng rẽ nhánh với cả hai địa chỉ rẽ nhánh đích (Đích suy đoán và đích đi qua).

• Khi đơn vị số nguyên thực hiện vi lệnh rẽ nhánh ,nó nhận biét được đích nào được sử dụng.Nếu đích suy đoán được sử dụng thì đích này dùng dùng được và quá trình thực hiện tiến hành theo như suy đoán.

• Nếu đích suy đoán không được sử dụng,một bộ xử lý nhảy trong đơn vị số nguyên thay đổi trạng thái các vi lệnh đi theo hướng rẽ nhánh để xóa chúng khỏi bộ góp lệnh.Bộ góp lệnh sau đó lại đưa lại đích rẽ nhánh đến bộ đệm đích rẽ nhánh .Bộ đệm đích rẽ nhánh khởi động lại đường ống từ địa chỉ đích mới.

Đơn vị giao diện bộ nhớ đảm nhiệm việc và lưu trữ vi lệnh.Truy nhập nạp chỉ cần xác định địa chỉ bộ nhớ địa chỉ này có thể mã hóa vào một vi lệnh.Truy nhập dữ liệu cần cả địa chỉ dữ liệu cần lưu ,vì thế nó phải mã hóa vào 2 vi lệnh.Phần lưu trữ lưu trữ của đơn vị giao diện bộ nhớ có 2 cổng làm việc song song :một cho địa chỉ một cho dữ liệu

thể xử lý nạp và lưu trữ .Đơn vị giao diện bộ nhớ có thể xử lý nạp và lưu trữ cùng trong một nhịp đồng hồ .

Đơn vị lui về (retirement unit) có trách nhiệm trao trạng thái máy (machine state) cho kết quả của vi lệnh và xóa chúng khỏi bộ góp lệnh.Đơn vị lui về liên tục kiểm tra trạng thái vi lệnh trong bộ góp lệnh để tìm ra các vi lệnh đã thực hiện và không còn phụ thuộc các vi lệnh khác trong bộ góp lệnh.Nếu tìm ra nó cho toàn bộ các vi lệnh lui về theo thứ tự ban đầu.

Đơn vi jlui về có thể xử lý 3 vi lệnh trong một chu kỳ đồng hồ .Khi lui vi lệnh về,nó ghi kết quả lên tệp thanh ghi lui về (retirement register file) hay ghi vào bộ nhớ.Tệp thanh ghi lui về chứa các thanh ghi cơ sở của họ vi xử lý Intel (8 thanh ghi đa chức năng ,8 thanh ghi dấu chấm động ).Sau khi kết quả được nhận thành trạng thái máy,vi lệnh được xóa khỏi bộ góp lệnh.

2.2Cấu trúc hệ thống vi xử lý Pentium 2.2.1Tài nguyên hệ thống :

Bảng mô tả toàn cục và mô tả hệ thống:

Khi bộ vi xử lý làm việc ,truy nhập bộ nhớ cần đi qua bảng mô tả toàn cục GDT(Global descriptor table),hoặc bảng mô tả cục bộ LDT (local descriptor table).Những bảng này có các bộ mô tả đoạn.Một bộ mô tả đoạn cung cấp địa chỉ cơ sở đoạn ,quyền truy nhập và dạng đoạn.Mỗi bộ mô tả đoạn đều có một bộ chọn đoạn trỏ về nó.Bộ chọn chứa địa chỉ đoạn ,1 bit cờ xác định đoạn toàn cục hay cục bộ và 2 bit mức ưu tiên(quyền truy nhập).

Để truy nhập một byte trong đoạn ,bộ xử lý cần xác định bộ chọn đoạn và đị chỉ lệch của byte trong đoạn cần truy nhập.Đường truy nhập một đoạn bao giờ cũng qua GDT hoặc LDT.Địa chỉ tuyến tính của GDT ,LDT được lưu giữ trong các thanh ghi GDTR,LDTR. (adsbygoogle = window.adsbygoogle || []).push({});

Đoạn hệ thống bộ mô tả đoạn và cổng:

Ngoài đoạn mã dữ liệu và ngăn xếp được dùng để tiến hành một chương trình .Bộ vi xử lý còn có hai đoạn hệ thống:đoạn trạng thái nhiệm vụ TSS(task state segment)và bảng mô tả cục bộ LDT,bảng mô tả toàn cục GDT không được coi là đoạn vì nó không được truy nhập bởi bộ chọn đoạn và bộ mô tả đoạn.Mỗi đoạn hệ thống trên đều có bộ mo tả đoạn tương ứng .Ngoài ra bộ xử lý còn có những bộ mô tả đặc biệt gọi là cổng .Các cổng cho phép chương trình được chuyển mức

ưu tiên. Ví dụ một chương trình ở mức thấp muốn gọi một tiểu trình mức ưu tiên cao hơn ,nó cần trao cho bộ xử lý bộ chọn cổng .Bộ xử lý kiểm tra quyền truy nhập của cổng và tiểu trình cần gọi .Khi được phép truy nhập ,bộ xử lý lấy bộ chọn đoạn và địa chỉ lệch của tiểu trình cần gọi từ cổng .Nếu chương trình cần đổi mức ưu tiên bộ xử lý cũng chuyển ngăn xếp cho mức ưu tiên mới .Cổng cũng cho phép chuyển đoạn mã 16 và 32 bit.

Đoạn trạng thái nhiệm vụ và cổng nhiệm vụ:

Đoạn trạng thái nhiệm vụ TSS (task state segment)ghi lại trang thái của môi trường tiến hành nhiệm vụ.TSS bao gồm trạng thái các thanh ghi đa chức năng ,các thanh ghi đoạn,thanh ghi cờ EFLAGS,thanh ghi con trỏ lệnh EIP,các bộ chọn đoạn,các con trỏ ngăn xếp và bao đoạn ngăn xếp .TSS cũng chứa cả bộ chọn đoạn của LDT liên quan đến nhiệm vụ đang chạy và địa chỉ cơ sở của bảng trang.

Mỗi chương trình chạy trong chế độ bảo vệ được gọi là nhiệm vụ

Một phần của tài liệu Cấu trúc-Nguyên lý hoạt động máy tính (Trang 27)