1. Trang chủ
  2. » Thể loại khác

Xử lý song song mức tập lệnh

15 834 8

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 1,1 MB

Nội dung

Slide đầy đủ thuyết trình bộ môn Kiến trúc máy tính về chủ đề : Xử lý song song ở mức(cấp) tập lệnh (INSTRUCTION LEVEL PARALLELISM ) Bao gồm:Đưa ra các khái niệm, các ý tưởngXử lý song songCác ví dụ minh họa đầy đủ, chi tiết

Trang 1

GROUP 1

1. Trần Đức Thao

2. Nguyễn Quang Huy

3. Lê Đắc Duy

4. Đỗ Thanh Tùng

5. Kiều Mạnh Quang

6. Vũ Mạnh Hoàng

7. Nguyễn Thanh Trúc

Trang 2

INSTRUCTION LEVEL

PARALLELISM

(Xử lý song song cấp tập lệnh)

Presented by Trần Đức Thao

Trang 3

INTRODUCTION (GIỚI THIỆU)

Instruction-level parallelism (ILP) về bản chất là một loạt

những câu lệnh được thực hiện bởi một bộ xử lý Những câu lệnh này sẽ được sắp xếp lại và kết hợp thành các nhóm mà sau đó được thực hiện song song mà không thay đổi kết quả của chương trình

Từ "parallel" trong ILP có nghĩa chính là “đồng thời”

Trang 4

Xử lý song song là gì? (Parallel instructions)

Xử lý song song: là sự phân chia bài toán to thành nhiều bài toán nhỏ, rồi giải

cùng lúc, nhờ đó làm tăng tốc độ giải toán

Ví dụ: Chúng ta cần tính tích phân trong khoảng [0, 100], thì có thể phân làm 2

bài toán nhỏ là tính tích phân trong khoảng [0, 50] và [50, 100], rồi cộng 2 kết quả

lại.

Hình thức song song:

 Song song cấp bit:

• 16 bit thêm vào 8 bit processor

 Song song cấp lệnh

 Song song dữ liệu (trong vòng lặp chương trình)

• for (i=1; i<=1000; i= i+1)

x[i] = x[i] + y[i];

 Song song cấp bộ xử lý

• Máy tính có CPU đa nhân, CPU đa lõi

Trang 5

ILP Hữu ích

 VD: Xem xét chương trình sau: 1 E = a + b 2 F = c + d 3 M = E * F

Hoạt động 3 phụ thuộc vào kết quả của hoạt động 1 và 2 Do đó, nó không thể được tính

trước khi cả 1 và 2 đều được hoàn thành Tuy nhiên, các thao tác 1 và 2 không phụ thuộc vào bất

kỳ hoạt động nào khác, vì vậy chúng có thể được tính toán đồng thời Nếu chúng ta giả định rằng mỗi hoạt động có thể được hoàn thành trong một đơn vị thời gian thì ba hướng dẫn này có thể

được hoàn thành trong tổng số hai đơn vị thời gian, tức là thời gian thực thi khi sử dụng ILP sẽ

giảm chỉ còn bằng 2/3 so với khi không sử dụng

Vậy nên, mục tiêu của nhà thiết kế trình biên dịch và bộ xử lý là xác định và tận dụng ILP càng

nhiều càng tốt Các chương trình thông thường thường được viết dưới một mô hình thực thi tuần tự (các lệnh thực hiện theo thứ tự) được chỉ định bởi lập trình viên ILP cho phép trình biên dịch và bộ xử lý chồng lên nhau để thực hiện nhiều lệnh hoặc thậm chí thay đổi thứ tự các hướng dẫn được thực hiện

Trang 6

XỬ LÝ SONG SONG MỨC TẬP LỆNH

(ILP)

Các kỹ thuật kiến trúc vi mô sử dụng ILP bao gồm: ​​

 Instruction pipelining (Cấu trúc đường ống lệnh)

 Superscalar (Siêu vô hướng)

 Out-of-order execution (Thực thi công việc không theo thứ tự)

 Register renaming (Đăng ký đổi tên)

 Speculative execution (Thực hiện suy đoán)

 Branch prediction (Dự đoán rẽ nhánh)

Trang 7

INSTRUCTION PIPELINE ( Kiến trúc

đường ống lệnh)

Là một kỹ thuật phần cứng cho phép xử lý đa tác vụ được sử dụng trên các thiết kế hiện đại như trên các bộ vi xử lý, vi điều khiển hay CPU.

=>>> Tối ưu được khả năng hoạt động của CPU (gia tăng tốc

độ xử lý của CPU).

Trang 8

Ý tưởng về kiến trúc đường ống lệnh

Ý tưởng chính là để phân chia việc xử lý một lệnh CPU thành một loạt các bước độc lập để xử lý và được lưu trữ vào cuối mỗi bước

 Điều này cho phép điều khiển CPU xử lý các chỉ lệnh với tốc độ xử

lý của bước chậm nhất nhưng nhanh hơn nhiều so với thời gian cần thiết để thực hiện quá trình xử lý như đơn bước.

Trang 9

Ví dụ: Cấu trúc đường ống lệnh theo RISC được chia thành 5 giai đoạn với một bộ flip flops (mạch có

hai trạng thái bền và được sử dụng để lưu trữ thông tin trạng thái) giữa mỗi giai đoạn như sau:

Instruction fetch (Lấy lệnh) (IF)

Instruction decode & register fetch

(Giải mã và đăng ký tìm nạp)

Execute (Thi hành) (EX)

Memory access (thâm nhập bộ nhớ) (MEM)

Register write back (Lưu kết quả) (WB)

 Trục dọc là hướng dẫn kế tiếp, trục ngang là thời gian Ta thấy trong cột màu xanh lá cây, trong khi

chỉ lệnh đầu tiên ở giai đoạn WB thì chỉ lệnh cuối cùng cũng đang trải qua giai đoạn IF (lấy lệnh)

Trang 10

SIÊU VÔ HƯỚNG (Superscalar)

Bộ xử lý Siêu vô hướng thực hiện việc xử lý nhiều câu lệnh trong một bộ xử lý

đơn, nó làm cho tốc độ CPU nhanh hơn so với trước.

Một bộ xử lý Siêu vô hướng thực hiện nhiều lệnh trong một chu kỳ bằng cách gửi

nhiều chỉ lệnh ( dispatched instruction instruction ) tới nhiều đơn vị chức năng dự phòng được xây dựng trong bộ vi xử lý

 Mỗi đơn vị chức năng không phải là một lõi CPU riêng biệt mà là một tài nguyên thực thi bên trong CPU như một đơn vị logic số học, đơn vị dấu chấm động (FPU), một bộ điều chỉnh bit hoặc một số nhân

Trang 11

 Trong một đường ống lệnh siêu vô hướng đơn giản Bằng cách tìm nạp và gửi đi hai hướng cùng một lúc, có thể hoàn thành tối đa hai hướng dẫn cho mỗi chu kỳ.

Trang 12

Thực hiện không theo tuần tự

(OUT-OF-ORDER EXECUTION)

OoOE Là một mô hình được sử dụng trong hầu hết các bộ vi xử lý hiệu suất cao để sử dụng trong hầu hết

các tính năng cao bộ vi xử lý để nâng cao hiệu năng sử dụng các chu kỳ chỉ lệnh mà nếu không có nó, có thể sẽ bị lãng phí thời gian bởi một sự chậm trễ nào đó.

Trong mô hình này, một bộ xử lý thực hiện các câu lệnh theo trật tự chi phối sẵn có của dữ liệu đầu vào,

chứ không phải là theo lệnh ban đầu của lập trình viên

Bộ xử lý có thể tránh được nhàn rỗi trong khi chờ đợi cho các câu lệnh trước đó hoàn thành để lấy dữ liệu

cho các lệnh tiếp theo, xử lý không theo tuần tự để các hướng dẫn tiếp theo có thể chạy ngay lập tức và chạy một cách độc lập hoàn toàn.

Trang 13

Các bước thực hiện xử lý không theo

tuần tự

Out-of-order processors breaks up the processing of instructions into these steps:

Nhận chỉ lệnh

Bộ đệm lệnh

Đơn vị chức năng 1

Đơn vị chức năng 2

Đơn vị chức năng n

Lưu trữ ngược Gửi lệnh

Ghi kết quả vào sổ đăng kí

Xử lý Mọi thứ hoàn tất

Trang 14

Các kỹ thuật ILP khác

 Register renaming (Đăng kí thay đổi tên) là một kỹ thuật được sử dụng để tránh sự tuần tự không cần thiết của các chương trình hoạt động do việc tái sử dụng các sổ đăng ký, được sử

dụng để cho phép thực hiện không theo tuần tự (OUT-OF-ORDER EXECUTION)

 Speculative execution (Thực hiện đầu cơ) Cho phép thực hiện các hướng dẫn hoàn chỉnh hoặc các bộ phận của chỉ lệnh trước khi đảm bảo việc thực hiện này là bắt buộc.

 Branch prediction (Dự báo nhanh) (Được sử dụng để tránh sự chậm trễ gây ra sự phụ thuộc kiểm soát để được giải quyết) Dự đoán chi nhánh sẽ xác định liệu một chi nhánh có điều kiện (nhảy) trong luồng chỉ lệnh của một chương trình có thể được thực hiện hay không.

Trang 15

Love all <3

Ngày đăng: 23/03/2017, 11:20

TỪ KHÓA LIÊN QUAN

w