1. Khi thực hiện song song, vấn đề đặt ra là làm sao mà bộ xử lý có thể biết
được những lệnh nào có thể xử lý song song?
- Cách 1: Để cho phần cứng (bộ quản lý) của bộ xử lý lo việc này, đầu tiên
phần cứng này sẽ tìm và xác định các thao tác có thể xử lý đồng thời, xác
định sự phụ thuộc của các thao tác để lập lịch xử lý, tính toán, thi hành các
thao tác song song. Đây gọi là là các bộ xử lý Superscalar (siêu vô hướng).
Loại bộ xử lý này phải xây dựng bộ kiểm soát luồng dữ liệu lớn và phức
tạp trong khi vi mạch dùng để chuyển luồng dữ liệu lại nhỏ (ví dụ: Intel
Pentium).
- Cách 2: Để cho phần mềm (compiler) để quyết định các thao tác nào được
xử lý song song. Trình biên dịch sẽ phân tích chương trình cần thi hành, tìm
ra các thao tác có thể xử lý song song, những tao tác này được nén lại vào
trong một cấu trúc lệnh lớn. Một cấu trúc lệnh lớn sẽ được lập lịch để cho
thi hành song song. CPU thực hiện theo cách này gọi là các bộ xử lý VLIW
(từ lệnh rất dài). Loại bộ xử lý này cóg bộ chuyển luồng dữ liệu lớn trong khi
vi mạch dùng để kiểm soát luồng dữ liệu lại nhỏ (điều này giúp cho việc xây
dựng các bộ xử lý tín hiệu số trở nên dễ dàng hơn) (ví dụ: Texas Instruments
C6X).
1 Tổ chức của VLIW Processor
Gồm 5 khối, khối trên cùng là khối nạp lệnh (Instruction Fetch), tiếp đến là
khối phát (Issue), tiếp đến là tầng đọc thanh ghi (Register Read), tiếp đến là
khối thực thi (Execute), cuối cùng là khối bộ nhớ (memory). Điều đặc biệt
là không có khối giải mã vì phần cứng đã được làm cho trở thành đơn giản
tối đa.
Khối nạp lệnh nạp các cấu trúc lệnh từ cache. Tại bước này, các bộ xử lý
hiện đại thường kết hợp chung với đơn vị dự báo rẽ nhánh (branch prediction
unit). Đơn vị dự báo rẽ nhánh sẽ dự đoán hướng các nhánh lệnh và tính toán
để nạp các lệnh tiếp theo. Đây là một thao tác rất quan trọng để đảm bảo
đường xử lý luôn hoạt động đúng đắn.
Khối đọc thanh ghi sẽ đọc nội dung của các toán hạng trong lệnh từ tập
thanh ghi.
Khối thực thi thực thi các lệnh tại các đơn vị chức năng.
Khối bộ nhớ đọc hoặc ghi kết quả từ bộ nhớ hệ thống phụ.
1
2. 2 Ưu điểm
Cấu trúc phần cứng đơn giản:
- Số lượng của bộ thi hành có thể được tăng lên mà không cần phải thêm
các phần cứng phức tạp để xác định các thành phần song song (trong
khi superscalar thì không như vậy).
- Năng lượng tiêu thụ giảm đi đáng kể.
Trình biên dịch tốt có thể xác định thành phần song song bằng cách phân
tích toàn bộ chương trình. Đây là một lợi thế vì trình biên dịch biết rất rõ
chương trình và có thể tìm các thành phần song song tốt.
3 Khuyết điểm
Cần một lượng lớn thanh ghi để lưu trữ kết quả trong khi các thành phần
thi hành hoạt động (lưu hành động tiếp theo hoặc kết quả).
Cần đường đi dữ liệu chuyển tải lớn giữa các đơn vị thi hành và tập thanh
ghi, giữa tập thanh ghi và bộ nhớ.
Cần băng thông lớn giữa cache lệnh và khối nạp lệnh. Ví dụ 1 lệnh có 7 hành
động, mỗi hành động chiếm 24 bit ⇒ cần 168 bit/lệnh.
2