liển quan đển việc phá vỡ chu kỳ lệnh với giai đoạn riểng biệt xay ra theo thứ tự, chắng hạn toán hạng, lấy toán hạng, thực hiện lệnh, và được làm việc trển một lệnh khác nhau cùng một l
Trang 1CẤU TRÚC & CHỨC NĂNG CUA VI XỬ LÝ
I Tổ chức bộ xử lý
II Tổ chức thanh ghi
Người sư dụng – các thanh ghi có thể nhìn thấy
III Chu kỳ lệnh
Chu kỳ gián tiểp
IV Cấu trúc đửờng ổng lệnh
Chiển lược Pipelining
Hiệu suất Pipelining
VII Tài liệu tham khao
VIII Tóm tắt, các yêu cấ2 u và cấu hoi ổn tập
Trang 2NỘI DUNG CHÍNH
có thể nhìn thấy có thể có mục đích sư dụng chung hoặc có một mục đích sư dụng đặc biệt, chắng hạn như điểm cổ định hoặc sổ dấu phấy động, địa chỉ, chỉ mục và con tro phấn đoạn
Một ví dụ rõ ràng là bộ đểm chương trình Một
ví dụ quan trọng khác là chương trình từ trạng
phép toán sổ học, bit cho phép ngắt, và chỉ sổ
sát hoặc chể độ người dùng
liển quan đển việc phá vỡ chu kỳ lệnh với giai đoạn riểng biệt xay ra theo thứ tự, chắng hạn
toán hạng, lấy toán hạng, thực hiện lệnh, và
được làm việc trển một lệnh khác nhau cùng một lúc Sự xuất hiện cua các chi nhánh và phụ
Trang 3thuộc giữa các hướng dấbn phức tạp thiểt kể và
I TỔ CHỨC BỘ XỬ LÝ
Để hiểu rõ tổ chức cua bộ xư lý, chúng ta hãy xem
O
hoạt động hợp lý trển dữ liệu
đòi hoi ghi dữ liệu vào bộ nhớ hoặc một module
I / O
trí cua lệnh mới nhất để nó có thể biểt được nơi để có
dữ liệu tạm thời trong khi một lệnh đang được thực thi
1 là một cái nhìn đơn gian cua một bộ xư lý, chỉ kểt
Trang 4Control bus Data bus Address bus System
ALU
Registers
Control unit
•
•
•
Control unit
Registers
Arithmetic and Boolean logic
Control paths
cua bộ vi xư lý là một đơn vị sổ học và logic (ALU) và
xư lý và kiểm soát hoạt động cua ALU
Ngoài ra, hình vẽ cho thấy một bộ
trong đó có một yểu tổ nhãn
bus vi xư lý nội bộ
chuyển dữ liệu giữa các thanh ghi
khác nhau và vì ALU trển thực tể Hình 2
chỉ hoạt động trển dữ liệu trong bộ
Trang 5nhớ xư lý nội bộ Con sổ này cũng cho thấy các yểu tổ
cơ ban đặc trưng cua ALU
Lưu ý sự giổng nhau giữa cấu trúc bển trong cua máy tính nói chung và các cấu
trúc bển trong cua bộ vi xư lý Trong ca hai trường hợp, có một bộ sưu tập nho
cua yểu tổ chu yểu (máy tính: bộ vi xư lý, I / O, bộ
nhau bằng đường dữ liệu
II TỔ CHỨC THANH GHI
Ở mức cao hơn cua hệ thổng phấn cấp, bộ nhớ nhanh
có một tập các thanh ghi có chức nắng như một cấp
độ cua bộ nhớ trển bộ nhớ chính và bộ nhớ cache trong hệ thổng phấn cấp Các thanh ghi trong bộ vi
xư lý thực hiện hai vai trò:
các lập trình viển máy hoặc ngổn ngữ lắp ráp đểgiam thiểu tham chiểu bộ nhớ chính bằng cách tổi ưu việc sư dụng thanh ghi
hành để kiểm soát việc thực hiện các chương trình
Thanh ghi người sư dụng nhìn thấ y:
Thanh ghi người dùng có thể nhìn thấy là một trong đó
có thể được tham chiểu bằng phương tiện cua ngổn ngữ máy mà bộ vi xư lý thực hiện
Trang 6Chúng ta có thể mổ ta các trong các loại sau:
• Đa nắng
• Dữ liệu
• Địa chỉ
bơi người lập trình Đổi khi họ sư dụng trong phạm vi các tập lệnh là trực giao với các hoạt động Có nghĩa
là, bất kỳ thanh ghi đa nắng có thể chứa các toán hạng cho bất kỳ mã máy Này cung cấp đúng đa nắng việc sư dụng thanh ghi Thường thì tuy nhiển, có những hạn chể
Ví dụ, thanh ghi có thể được dành riểng cho dấu chấm động và thao tác ngắn xểp
Trong một sổ trường hợp, thanh ghi đa nắng có thể được
sư dụng để giai quyểt các chức nắng (ví dụ, thanh ghi gián tiểp, chuyển) Trong trường hợp khác, có một tách
địa chỉ Thanh ghi dữ liệu có thể được sư dụng để chứa
dữ liệu và khổng thể được sư dụng trong tính toán một địa chỉ toán hạng Thanh ghi địa chỉ ban thấn có thể làthanh ghi đa nắng, hoặc họ có thể dành cho một chể độ giai quyểt cụ thể Ví dụ như sau:
• Con tro đoạn: Trong một máy tính với phấn đoạn giai quyểt, một đoạn thanh ghi giữ địa chỉ cua các cơ sơ cua
Trang 7• Thanh ghi chỉ sổ: Chúng được sư dụng cho việc giai quyểt được lập chỉ mục và có thể được tự động lập chỉ mục.
• Con tro ngắn xểp: Nểu có người dùng có thể nhìn thấy
khổng nhất thiểt có một ngắn xểp toán hạng rõ ràng
nắng hoặc sư dụng chuyển biệt Với việc sư dụng thanh ghi chuyển biệt, nó thường ấn trong mã máy Bộ ghi rõ toán hạng chỉ phai xác định một trong một bộ các thanh ghi chuyển biệt chứ khổng phai là một trong sổ tất ca
giới hạn sự linh hoạt cua lập trình viển
hoặc dữ liệu cộng thểm địa chỉ, để được cung cấp Một
Tuy nhiển, một cách tiểp cận mới, tìm thấy lợi thể
trong việc sư dụng hàng trắm thanh ghi, được đưa ra trong một sổ hệ thổng RISC
phai giữ địa chỉ rõ ràng tổi thiểu phai đu dài để giữ địa chỉ lớn nhất Thanh ghi dữ liệu có thể giữ giá trị
Trang 8thanh ghi liển tiểp được sư dụng như một giá trị để giữđổi độ dài
gọi là cờ)
lý là kểt qua cua hoạt động Ví dụ, một phép toán sổ học có thể tạo ra một kểt qua tích cực, khổng tích cực,
lập trình viển khổng thể thay đổi chúng
xác định một so sánh được thực hiện và hoạt động trển
điể+u kiện
Bang 1, dựa trển [DERO87], liệt kể những lợi thể quan
Trong một sổ máy tính, một cuộc gọi chương trình con sẽ
Trang 9lại Điể+u này cho phép mổbi chương trình con để sư dụng các thanh ghi người dùng có thể nhìn thấy một cách độc lập Trển các máy khác, đó là trách nhiệm cua các lập trình để lưu nội dung cua người sư dụng thanh ghi có
thể nhìn thấy liển quan trước khi gọi chương trình con,
chúng thường không là một phần của đường dẫn dữ liệu chính, vìvậy chúng yêu cầu kết nối thêm phần cứng
phải thêm lệnh không điều
Trang 10kiện-3. Mã điều kiện thuận
pipelined, mã điều kiện yêu cầuđồng bộ hóa đặc biệt để tránh xung đột
Bảng 1
Thanh ghi điều khiển và thanh ghi trạng thái:
Có rất nhiều thanh ghi xử lý được sử dụng để kiểm soát hoạt động của bộ xử lý Hầu hết trong số này, trên hầu hết các máy móc, không cho người dùng nhìn thấy được
Một số chúng có thể được hiển thị cho lệnh máy thực
nhiên, các máy khác nhau sẽ có các tổ chức thanh ghi
khác nhau và sử dụng thuật ngữ khác nhau Chúng ta liệt
kê ở đây một danh sách hợp lý đầy đủ các loại thanh
ghi, với một mô tả ngắn gọn
Bốn thanh ghi cần thiết cho thực hiện lệnh:
• Chương trình truy cập (PC): Có chứa địa chỉ của một hướng dẫn để được lấy
• Thanh ghi chỉ thị (IR): Chứa các lệnh gần đây nhất
Trang 11Không phải tất cả bộ vi xử lý có thanh ghi nội bộ chỉ định là MAR và MBR, nhưng một số cơ chế đệm tương đương
là cần thiết nơi bởi các bit được chuyển giao cho bus
hệ thống được tổ chức và các bit được đọc từ bus dữ
cập nhật các máy tính sau mỗi lệnh lấy để máy tính luônluôn trỏ vào lệnh tiếp theo sẽ được thực hiện Rẽ nhánhhoặc bỏ qua lệnh cũng sẽ thay đổi nội dung máy tính Chỉ thị lấy được nạp vào một IR, nơi mà các mã máy và toán hạng đặc tả được phân tích Dữ liệu được trao đổi với bộ nhớ bằng cách sử dụng MAR và MBR Trong một hệ thống bus tổ chức, MAR kết nối trực tiếp đến bus địa chỉ, và MBR kết nối trực tiếp đến bus dữ liệu Thanh ghi người sử dụng nhìn thấy lần lượt trao đổi dữ liệu với MBR
Bốn thanh ghi vừa đề cập được sử dụng cho sự di chuyển của dữ liệu giữa bộ xử lý và bộ nhớ Trong bộ vi xử lý,
dữ liệu phải được trao đổi với ALU để xử lý ALU có thểtruy cập trực tiếp vào MBR và thanh ghi người dùng có thể nhìn thấy Ngoài ra, có thể có thanh ghi đệm thêm tại ranh giới tới ALU, các thanh ghi phục vụ như là đầuvào và đầu ra thanh ghi cho ALU và trao đổi dữ liệu với
thiết kế bộ vi xử lý bao gồm một thanh ghi hoặc tập cácthanh ghi, thường được gọi là từ trạng thái chương trình (PSW), có chứa thông tin trạng thái PSW thường chứa mã điều kiện cộng thêm thông tin trạng thái khác Các trường phổ biến hoặc cờ bao gồm:
• Đăng ký: Chứa các bit dấu hiệu của kết quả của các phép toán số học cuối cùng
• Zero: Thiết lập khi kết quả là 0
Trang 12• Carry: Thiết lập nếu một hoạt động dẫn đến carry (thêm) vào hoặc vay (trừ) ra
khỏi một chút bậc cao Sử dụng cho các hoạt động nhiều từ số học
• Equal: Thiết lập nếu một logic so sánh kết quả là bằng nhau
Một số thanh ghi liên quan đến trạng thái và điều khiển
có thể được tìm thấy trong một thiết kế bộ vi xử lý cụ thể Có thể có một con trỏ đến một khối bộ nhớ có chứa thông tin trạng thái khác (ví dụ, khối điều khiển tiến
đoạn thanh ghi vector có thể cung cấp Nếu một ngăn xếpđược sử dụng để thực hiện các chức năng nhất định (ví
dụ, gọi chương trình con), khi một con trỏ ngăn xếp hệ thống là cần thiết Một con trỏ được sử dụng với một hệthống bộ nhớ ảo Cuối cùng, thanh ghi có thể được sử dụng trong việc kiểm soát các hoạt động I / O
Một số yếu tố đi vào thiết kế của điều khiển và tổ chứcthanh ghi trạng thái Một vấn đề quan trọng là hoạt động hỗ trợ hệ thống Một số loại thông tin điều khiển được các tiện ích cụ thể cho các hệ điều hành Nếu người thiết kế bộ vi xử lý có một sự hiểu biết chức
Trang 13bổ các thông tin điều khiển giữa thanh ghi và bộ nhớ
Nó được phổ biến để dành lần đầu tiên (thấp nhất) vài trăm ngàn hoặc từ bộ nhớ cho các mục đích điều khiển Các nhà thiết kế phải chọn bao nhiêu thông tin điều khiển phải có trong các thanh ghi và bao nhiêu trong bộnhớ Thông thường cân bằng của giá so với các tốc độ phát triển
III CHU KỲ LỆNH
Để nhớ lại, một chu kỳ lệnh bao gồm các giai đoạn sau:
• Lấy lệnh: Đọc lệnh kế tiếp từ bộ nhớ vào bộ xử lý
• Thực hiện lệnh: Giải thích các opcode và thực hiện các hoạt động ghi
• Ngắt: Nếu ngắt được kích hoạt và một gián đoạn đã xảy
ra, lưu trạng thái hiện tại và tiến trình phục vụ ngắt
Chu kỳ gián tiếp
Trang 14Hình 4
Chúng ta có thể nghĩ đến những khi nạp địa chỉ gián tiếp là một đoạn lệnh thêm Kết quả được thể hiện tronghình 4 Dòng chính của hoạt động bao gồm xen kẽ lệnh lấy và các hoạt động thực hiện lệnh Sau khi lệnh đang lấy lệnh, nó được kiểm tra để xác định xem có địa chỉ gián tiếp đang tham gia Nếu vậy, các toán hạng cần được lấy bằng cách sử dụng địa chỉ gián tiếp Tiếp theothực hiện, một ngắt có thể được xử lý trước khi lệnh kếtiếp lấy Một cách khác để xem quá trình này được thể hiện trong hình 5 Điều này cho thấy một cách chính xácthêm tính chất của chu kỳ lệnh Sau khi hướng dẫn một
là lấy lệnh, đặc tả toán hạng của nó phải được xác định Mỗi toán hạng đầu vào trong bộ nhớ sau đó lấy lệnh, và quá trình này có thể yêu cầu địa chỉ gián tiếp Toán hạng thanh ghi trên không cần được lấy Một khi các mã được thực thi, một quá trình tương tự có thểcần thiết để lưu trữ kết quả trong bộ nhớ chính
Trang 15Hình 5
Luồng dữ liệu
Trình tự chính xác của các sự kiện trong một chu kỳ
lệnh phụ thuộc vào việc thiết kế các bộ vi xử lý Chúng
ta có thể, tuy nhiên, chỉ ra một cách chung chung những
gì phải xảy ra Chúng ta hãy giả định rằng một bộ vi xử
lý sử dụng một địa chỉ bộ nhớ thanh ghi (MAR), đăng ký một bộ nhớ đệm (MBR), một chương trình truy cập (PC),
và thanh ghi lệnh (IR) Trong chu kỳ lấy, một lệnh đượcđọc từ bộ nhớ
Hình 6 cho thấy dòng chảy của dữ liệu trong chu kỳ này
PC chứa địa chỉ của lệnh tiếp theo cần lấy về Địa chỉ này được chuyển đến MAR và được đặt trên bus địa chỉ
Instruction
address
calculation
Instruction operation decoding
Operand address calculation
Data operation
Operand address calculation
Instruction
fetch
Instruction complete, fetcth next instruction
Multiple operands
Return for string
or vector data
No interrupt
Operand fetch
Indirection
Operand store
Interrupt check Interrupt
Multiple results
Indirection
Trang 16Hình 6
Bộ điều khiển yêu cầu đọc bộ nhớ, và kết quả được đặt trên bus dữ liệu và sao chép vào MBR và sau đó chuyển đến IR Trong khi đó, các máy tính đang tăng thêm 1, chuẩn bị cho việc kế tiếp lấy lệnh Khi chu kỳ lấy lệnhkết thúc, các đơn vị kiểm soát kiểm tra nội dung IR để xác định xem nó có chứa một đặc tả toán hạng bằng cách
sử dụng địa chỉ gián tiếp Nếu như vậy, một chu kỳ giántiếp được thực hiện Như thể hiện trong hình 7, đây là một chu trình đơn Các bit N bên phải của MBR, có chứa các tham chiếu địa chỉ, được chuyển giao cho MAR Sau
đó đơn vị điều khiển yêu cầu đọc bộ nhớ, để có được địachỉ mong muốn của toán hạng vào MBR Chỉ lệnh và chu kỳgián tiếp rất đơn giản và dễ dự đoán Chu kỳ thực hiện
có nhiều hình thức; hình thức phụ thuộc vào của các lệnh máy khác nhau có trong IR Chu kỳ này có thể liên quan đến việc chuyển giao dữ liệu giữa các thanh ghi, đọc hoặc viết từ bộ nhớ hoặc I / O, và / hoặc triệu gọicủa ALU
Address Data Control
PC
CPU
MAR
Control unit
Memory
MBR IR
Trang 17xử lý có thể tiếp tục hoạt động bình thường sau khi bị gián đoạn Như vậy, nội dung máy tính được chuyển giao cho MBR được ghi vào bộ nhớ Vị trí bộ nhớ đặc biệt dành riêng với mục đích này được nạp vào MAR từ các đơn
vị điều khiển Nó có thể là một con trỏ ngăn xếp Máy tính được nạp với các địa chỉ của các ngắt thường lệ Kết quả là, các chu kỳ lệnh kế tiếp sẽ được truyền bằng
Memory
MBR
Trang 18Hình 8
IV CẤU TRÚC ĐỬỜNG ỔNG LỆNH
Chiế n lược pipelining
Lệnh pipelining cũng tương tự như việc sư dụng một dấy
lắp ráp tận dụng thực tể là một san phấm đi qua các giai đoạn khác nhau cua san xuất Bằng cách đặt quá
phấm ơ các giai đoạn khác nhau có thể được làm việc cùng một lúc Quá trình này cũng được gọi là
kia Để áp dụng khái niệm này để thực hiện lệnh, chúng
Trang 19Hình 9
Như phương pháp đơn gian, hãy xem xét chia nho xư lý lệnh thành hai giai đoạn: lấy lệnh và thực hiện lệnh
Có những thời điểm trong khi thực hiện một lệnh khi bộ nhớ chính khổng được truy cập Thời gian này có thể được sư dụng để lấy các lệnh tiểp theo trong song song với việc thực hiện cua một hiện tại Hình 9a mổ ta cách
bất kỳ chu kỳ bộ nhớ khổng sư dụng để lấy và đệm tiểp
giữa các giai đoạn
Rõ ràng rằng quá trình này sẽ tắng tổc độ thực hiện lệnh Nểu lấy lệnh và thực hiện các giai đoạn cua thời gian là như nhau, chu kỳ thời gian lệnh sẽ được giam đimột nưa Tuy nhiển, nểu chúng ta xem xét kỹ hơn đường ổng này (Hình 9b), ta sẽ thấy rằng tắng gấp đổi này tỉ
lệ thực hiện là khổng chắc vì hai lý do:
1 Thời gian thực hiện nói chung sẽ được dài hơn thời
toán hạng và hiệu suất cua một sổ tác vụ Như vậy, giai
Trang 20đoạn lấy lệnh có thể phai chờ một thời gian trước khi
nó thể làm trổng bộ đệm
đoạn lấy lệnh phai đợi cho đển khi nó nhận được địa chỉlệnh kể tiểp từ khấu thực hiện Sau đó thực các giai đoạn hiện có thể phai chờ trong khi lấy các lệnh tiểp theo
Có thể làm giam mất thời gian từ lý do thứ hai Một
đoạn thực hiện, các giai đoạn lấy lệnh nạp lệnh kể tiểptrong bộ nhớ sau khi lệnh rẽ nhánh Sau đó, nểu rẽ
nhánh là khổng được, khổng có thời gian bị mất Nểu chinhánh được thực hiện, lệnh lấy phai được loại bo và mộtlệnh mới được tai
ra Để đạt được tổc độ tắng hơn nữa, các đường ổng phai
phấn chia dưới đấy trong xư lý lệnh
• Lấy lệnh (FI): Đọc lệnh dự kiển tiểp theo vào một bộ đệm
• Giai mã lệnh (DI): Xác định mã máy và xác định toán hạng
• Tính toán hạng (CO): Tính toán địa chỉ hiệu qua cua
việc di dời, thanh ghi gián tiểp hoặc dạng khác cua phép tính địa chỉ
Trang 21• Lấy toán hạng (FO): Tìm nạp mổbi toán hạng từ bộ nhớ
• Thực hiện lệnh (EI): Thực hiện các hoạt động ghi và lưu trữ kểt qua, nểu có, trong vị trí toán hạng đích xác định
• Ghi toán hạng (WO): Lưu trữ kểt qua trong bộ nhớ
Với phấn tích này, các giai đoạn khác nhau sẽ có thời
thời gian bằng nhau Sư dụng gia định này, Hình 10 cho
giam thời gian thực hiện cho 9 lệnh từ 54 đơn vị thời gian đển 14 đơn vị thời gian Một sổ nhận xét theo thứ
giai đoạn
các giai đoạn có thể được thực hiện song song Đặc
biệt, nó được gia định rằng khổng có xung đột bộ nhớ
Ví dụ, FI, FO và WO các giai đoạn liển quan đển một truy cập bộ nhớ
khổng làm chậm các đường ổng
Trang 22Một sổ yểu tổ khác làm hạn chể nấng cao hiệu suất Nểu sáu giai đoạn khổng phai là thời gian bằng nhau, sẽ có
khác nhau, như thao luận trước với các đường ổng có haigiai đoạn
đoán trước giổng như là một ngắt Hình 11 minh họa tác
tự như Hình 10
Cho tới khi thực hiện lệnh, khổng có cách nào để biểt được lệnh sẽ đển tiểp theo
CO
FO
EI WO
Lện
h 2
FI
DI
CO
Trang 23h 9
Hình 10
Các đường ổng, trong ví dụ này, chỉ đơn gian là tai các
Trong hình 10, các lệnh rẽ nhánh là khổng được, và
khổng được xác định cho đển khi cuổi cua thời gian đơn
xóa các lệnh mà khổng hữu ích Trong thời gian đơn vị
trong đơn vị thời gian 9 đển 12, đấy là giam hiệu suất phát sinh vì chúng ta khổng thể dự đoán các rẽ nhánh
chiểm các rẽ nhánh và ngắt
gian có hai giai đoạn cua chúng ta Giai đoạn CO có thểphụ thuộc vào nội dung cua một thanh ghi có thể được
chắng hạn xung đột thanh ghi và bộ nhớ hoặc các xung đột khác có thể xay ra Hệ thổng phai có logic để giai thích cho các loại xung đột Để làm rõ hoạt động đường ổng, nó có thể là có ích cho hãy nhìn vào một mổ ta khác Hình 10 và 11 cho thấy tiển triển thời gian theo
hàng hiển thị trạng thái cua các đường ổng tại một điểmnhất định trong thời gian
Trang 24CO
Trang 25Trong hình 13a (tương ứng với Hình 10), các đường ổng
thổng qua thời gian 9, chúng tổi gia sư rằng lệnh I9 làchỉ thị mới nhất được thực thi
Trong hình 13b, (tương ứng với Hình 11), các đường ổng
Vào thời điểm 7, hướng 3 đang trong giai đoạn thực hiện
No Yes
Fetch instruction
Decode instruction
Uncon ditional branch?
Branch
or interrupt?
Write operands
Fetch operands
Execute instruction
Update PC
Empty pipe
Hình 12 Six-Stage CPU Instruction Pipeline
Trang 26Tại thời điểm này, hướng dấbn I4 qua i7 đang đo mặt từ các đường ổng, do đó, vào thời điểm 8, chỉ có hai hướng
Hình 13 a, b
Từ phần thảo luận trước đó, ta thấy có thể xuất hiện lớn hơn số lượng giai đoạn trong các đường ống dẫn, làmtốc độ thực hiện nhanh hơn Một số các nhà thiết kế IBMS/360 chỉ ra hai yếu tố làm thất bại mô hình đơn giản này cho thiết kế hiệu suất cao [ANDE67a], và chúng vẫn còn các yếu tố mà nhà thiết kế vẫn còn phải xem xét:
liên quan đến di chuyển dữ liệu từ vùng đệm đến vùng đệm và thực hiện nhiều chuẩn bị và chuyển giaochức năng Trên đầu này có thể thấy rõ kéo dài tổng
số thời gian thi hành của một lệnh Điều này là
Trang 27đáng kể khi lệnh tuần tự là hợp lý phụ thuộc, hoặc qua sử dụng nhánh hoặc qua tính phụ thuộc truy cập
bộ nhớ
thanh ghi tính phụ thuộc và để tối ưu hóa việc sử dụng ống dẫn gia tăng lên cùng với số các trạng thái Điều này có thể dẫn đến tình huống mà lôgic kiểm soát cổng giữa các trạng thái phức tạp hơn là các trạng thái được điều khiển
Xem xét khác là chậm trễ mạch gài : cần có thời gian cho vùng đệm ống dẫn để vận hành và này thêm vào thờigian chu kỳ chỉ thị
Lập dàn ống dẫn lệnh là kỹ thuật mạnh để cải tiến hiệu năng nhưng yêu cầu thiết kế cẩn thận phải đạt được kết quả tối ưu với độ phức tạp hợp lý
Hiệu suất ống dẫn
Này phần phụ, chúng tôi phát triển một số biện pháp đơn giản của năng suất ống dẫn và tăng tốc tương đối ( dựa trên thảo luận trong [ HWAN93 ] ) Thời gian chu kỳ của ống dẫn lệnh là lúc cần trước tập hợp các lệnh một giai đoạn qua ống dẫn ; mỗi cột trong hình
Trang 28thời gian trễ của hệ mạch trong trạng thái thứ i của ống dẫn
trễ trạng thái tối đa ( trễ trạng thái mà có chậm trễ lớn nhất )
số trạng thái của đường ống lệnh
thời gian trễ của một chốt, cần thiết để đẩy tín hiệu
và dữ liệu từ trạng thái này đến trạng thái kế tiếp.Nói chung, thời gian trễ d tương đương với một xung
k trạng thái để xử lý n lệnh Thì:
Có tổng cộng k chu kỳ phải hoàn thành ở lệnh đầu tiên,
và còn lại n-1 lệnh yêu cầu n-1 chu kỳ Dễ dàng chứng minh công thức này từ hình 10 và 12 Lệnh thứ 9 được hoàn thành vào khoảng thời gian chu kỳ thứ 14:
14=[6+(9-1)]
Bây giờ hãy xem một bộ xử lý với các chức năng tương đương nhưng không có đường ống, và giả định rằng chu kỳ
dẫn so với thực hiện mà không có đường ống dẫn được định nghĩa là:
Hình 14a các lô yếu tố tăng tốc như một hàm của số các lệnh được thực hiện không có chi nhánh Đúng như dự
lần Hình 14b cho thấy yếu tố tăng tốc như một hàm của
số lượng các giai đoạn trong các đường ống dẫn Trong
Trang 29trường hợp này, các yếu tố tăng tốc tiếp cận số các lệnh có thể được đưa vào các đường ống dẫn mà không có
rẽ nhánh
Do đó, lớn hơn số lượng các trạng thái đường ống, lớn hơn khả năng có thể tăng tốc Tuy nhiên, là một vấn đề thực tế, lợi ích tiềm năng bổ sung đường ống trạng tháiđược chống lại bởi tăng giá thành, trễ giữa các trạng thái, và thực tế rằng rẽ nhánh sẽ gặp phải yêu cầu xả của đường ống
Hình 14a
Trang 30
Hình 14b
Mối nguy hại đường ống
Một mối nguy hiểm đường ống xảy ra khi đường ống dẫn, hoặc một số phần của đường ống, phải dừng vì điều kiện không cho phép tiếp tục thực hiện Có ba loại của các mối nguy hiểm: tài nguyên, dữ liệu và kiểm soát
Một mối nguy hiểm tài nguyên xảy ra khi hai (hoặc nhiềuhơn) lệnh đã có trong các đường ống dẫn cần cùng một tài nguyên Kết quả là các hướng dẫn phải được thực hiện trong nối tiếp thay vì song song cho một phần của đường ống dẫn Một mối nguy hiểm tài nguyên đôi khi được gọi là một mối nguy hiểm về cơ cấu Chúng ta hãy xem xét một ví dụ đơn giản của một mối nguy hiểm tài
Trang 31nguyên Giả sử một năm trạng thái đơn giản đường ống dẫn, trong đó mỗi trạng thái có một chu kỳ đồng hồ
hướng dẫn mới đi vào các đường ống dẫn mỗi chu kỳ đồng
hồ Bây giờ giả sử rằng bộ nhớ chính có một cổng duy nhất và tất cả các hướng dẫn nạp dữ liệu và đọc và
ghi phải được thực hiện cùng một lúc Hơn nữa, bỏ qua
bộ nhớ cache Trong trường hợp này, một toán hạng đọc hoặc ghi từ bộ nhớ không thể được thực hiện song song với một lệnh lấy Điều này được minh họa trong hình 12.15b, trong đó giả định rằng nguồn toán hạng để được hướng dẫn I1 là trong bộ nhớ, chứ không phải là thanh ghi Do đó, lệnh lấy trạng thái của đường ống phải nhànrỗi cho một chu kỳ trước khi bắt đầu lệnh lấy I3 Hình
vẽ giả thiết rằng tất cả các toán hạng khác trong thanhghi
Trang 32Hình 15
Một ví dụ khác cua xung đột tài nguyển là một tình
đoạn thực hiện lệnh và có một đơn vị ALU Một giai phápcho những mổi nguy hiểm tài nguyển như vậy là để tắng
Trang 33Một mổi nguy hiểm dữ liệu xay ra khi có xung đột trong việc tiểp cận một vị trí toán hạng Nói chung, chúng ta
có thể nểu rõ mổi nguy hiểm theo hình thức này: Hai lệnh trong một chương trình đang được thực hiện theo thứ tự và ca hai truy cập vào cụ thể bộ nhớ hoặc thanh ghi toán hạng Nểu hai lệnh được thực hiện theo trình
các lệnh được thực hiện trong một đường ổng thì nó có thể cho giá trị toán hạng được cập nhật một cách như vậy có thể tạo ra một kểt qua khác nhau sẽ xay ra dểb
các chương trình tạo ra một kểt qua khổng chính xác vì việc sư dụng pipelining
Ví dụ, hãy xem xét trình tự lệnh máy x86 sau:
ADD EAX, EBX / * EAX = EAX + EBX
SUB ECX, EAX / * ECX = ECX – EAX
32-bit EAX và EBX và lưu trữ kểt qua trong EAX Lệnh thứ hai trừ đi các nội dung cua EAX từ ECX và lưu trữ kểt qua trong ECX Hình 16 cho thấy hành vi đường ổng Lệnh ADD khổng cập nhật ghi EAX đển cuổi trạng thái 5,
Trang 34 Đọc sau khi ghi (RAW), hoặc phụ thuộc đúng: Một lệnh sưa đổi một thanh ghi hoặc vị trí bộ nhớ và một lệnh thành cổng đọc dữ liệu trong đó bộ nhớ hoặc địa điểm thanh ghi Một mổi nguy hiểm xay ra
lệnh đọc một thanh ghi hoặc bộ nhớ vị trí và lệnh thành cổng ghi vào vị trí Một mổi nguy hiểm xay ranểu các hoạt động ghi hoàn tất trước khi các hoạt
lệnh ca hai ghi
để cùng một vị trí Một mổi nguy hiểm xay ra nểu
Ví dụ cua hình 16 là một mổi nguy hiểm RAW:
Hình 16
Trang 35phai được loại bo chúng ta thao luận phương pháp tiểp
theo
Xư lý rẽ nhánh
đường ổng lệnh được đam bao một ổn định dòng chay cua
thi, nó là khổng thể xác định liệu các rẽ nhánh sẽ đượcthực hiện hay khổng Một loạt các phương pháp đã được
vì nó phai chọn một trong hai lệnh để lấy tiểp theo và
có thể làm cho sai sự lựa chọn Một cách tiểp cận
ổng và cho phép đường ổng tìm nạp ca hai lệnh, cách sư
truy cập vào các thanh ghi và bộ nhớ
• lệnh rẽ nhánh bổ sung có thể nhập vào các đường ổng
Trang 36Mặc dù có những hạn chể, chiển lược này có thể cai
đường ổng là IBM 370/168 và IBM 3033
kiện được cổng nhận, mục tiểu cua rẽ nhánh là tìm nạp, ngoài các lệnh sau rẽ nhánh Đích này sẽ được lưu lại cho đển khi lệnh rẽ nhánh được thực hiện Nểu các rẽ nhánh được thực hiện, các đích đã được tìm nạp trước IBM 360/91 sư dụng phương pháp này
Một bộ đệm vòng lặp là một bộ nhớ tổc độ rất cao nho duy trì bơi lệnh lấy trạng thái cua đường ổng và chứa n
mục tiểu rẽ nhánh nằm trong bộ đệm Nểu như vậy, tiểp
lợi ích:
1.Với việc sư dụng tìm nạp, bộ đệm vòng lặp sẽ có một
lấy địa chỉ Như vậy, lệnh lấy theo thứ tự sẽ có
thường
2.Nểu một rẽ nhánh xay ra với một mục tiểu chỉ là mộtvài địa điểm trước địa chỉ cua lệnh rẽ nhánh, mục
trong sự xuất hiện khá phổ biển cua IF-THEN và các
Trang 37các lệnh trong vòng một, sau đó những cấu lệnh cấ+n phai được lấy từ
tiểp theo, tất ca các
Bộ đệm vòng lặp tương tự như trong nguyển tắc một bộ
bộ đệm vòng lặp chỉ giữ lại lệnh trong trình tự và kích
Hình 17 cho một ví dụ cua một bộ đệm vòng lặp Nểu bộ đệm chứa 256 byte, và byte địa chỉ được sư dụng, sau đó
8 bit ít nhất là đáng kể được sư dụng để chỉ sổ đệm
định nểu các chi nhánh đích nằm trong mổi trường bị bắtbơi các bộ đệm Trong sổ các máy sư dụng một bộ đệm vòng lặp là một sổ các máy CDC (Star-100, 6600, 7600)
Motorola 68.010, để thực hiện một vòng lặp ba-lệnh liển
kiện) lệnh Một ba từ đệm được duy trì, và bộ vi xư lý
lặp là hài lòng