Sử dụng hệ vi xử lý véc tơNM6403 tốc độ cao, áp dụng thuật toán FHT để được hiệu quả tính toánnhanh nhất, luận văn giới thiệu một cách tiếp cận để xây dựng một hệ vi xử lýtốc độ cao ứng
Trang 1MỞ ĐẦU
1 Cơ sở nghiên cứu và mục đích của luận văn
Ngày nay, với sự phát triển của khoa học kỹ thuật, các yêu cầu về hệ vi
xử lý chuyên dụng ngày càng cấp thiết Đối với một số ứng dụng như trongcác hệ thống quan sát, các hệ thống đo lường, điều khiển vệ tinh… thì sốlượng phép tính phải thực hiện đồng thời là cực lớn
Các hệ siêu máy tính có giá thành cao và sẽ rất lãng phí khi sử dụngtrong các ứng dụng chuyên dụng với lớp bài toán hẹp hơn Vì thế, việc sửdụng vi xử lý với tốc độ tính toán cao kết hợp với việc áp dụng các thuật toántính toán nhanh trong khi vẫn đảm bảo giá thành hợp lý là rất cần thiết
2 Tổ chức luận văn
Luận văn được trình bầy thành 3 chương Phần mở đầu, tác giả trìnhbày tóm tắt cơ sở nghiên cứu và mục đích cũng như tổ chức của luận văn
Chương 1, trình bầy khái quát về lý thuyết xử lý song song Các dòng
vi xử lý trong thực tế và đánh giá về tốc độ cũng như khả năng ứng dụng củachúng trong những lớp bài toán cụ thể
Chương 2, giới thiệu về họ vi xử lý vec tơ NM6403 do hãng modulecủa Nga sản xuất Đây là một hệ vi xử lý tốc độ cao, rất thích hợp cho nhữngứng dụng cụ thể đòi hỏi tốc độ xử lý cực cao
Chương 3, cũng là chương quan trọng nhất Sử dụng hệ vi xử lý véc tơNM6403 tốc độ cao, áp dụng thuật toán FHT để được hiệu quả tính toánnhanh nhất, luận văn giới thiệu một cách tiếp cận để xây dựng một hệ vi xử lýtốc độ cao ứng dụng trong những lớp bài toán cụ thể
Trang 2CHƯƠNG 1: TỔNG QUAN VỀ LÝ THUYẾT XỬ LÝ SONG SONG 1.1 Phân loại các kiến trúc hệ vi xử lý song song
1.1.1 Kiến trúc hệ vi xử lý theo cách thông thường – đơn chỉ thị đơn dữ liệu (SISD)
Đây chính là kiểu kiến trúc Von Neuman cho hệ vi xử lý tuần tự thôngthường, có ưu điểm là đơn giản cả về cấu trúc phần cứng và phần mềm hệthống Tuy nhiên, với cách truyền thống này thì tốc độ xử lý sẽ chỉ đạt đếnmột giới hạn nào đó, bởi vì không thể nâng tốc độ của bộ xử lý đơn lên mãiđược kiến trúc này không được áp dụng cho các hệ vi xử lý tốc độ cao hiệnđại
1.1.2 Kiến trúc hệ vi xử lý đơn chỉ thị đa dữ liệu (SIMD)
Cho phép tại một thời điểm một dòng lệnh có thể thao tác trên nhiềudòng dữ liệu Các lệnh kiểu SIMD giúp giảm bớt các tiếp đầu phần mềm dokhông phải lặp lại trên nhiều dòng dữ liệu khác nhau
Mô hình này có thể cho phép giảm bớt độ phức tạp của cả phần cứnglẫn phần mềm nhưng chỉ thích hợp cho những hệ thống chuyên dụng, chẳnghạn như trong xử lý ảnh và những ứng dụng mô phỏng số Hiện nay các hệ xử
lý song song theo kiến trúc SIMD đang được phát triển mạnh mẽ, đặc biệttrong thiết kế các hệ vi xử lý chuyên dụng có tốc độ và hiệu quả cao với giáthành hợp lý
1.1.3 Kiến trúc hệ vi xử lý đa chỉ thị đơn dữ liệu (MISD)
Hiện nay, phương pháp xử lý này chỉ mới thành công trong thựcnghiệm còn về mặt thương mại thì chưa thực hiện được Tuy nhiên, nhữngthành công ban đầu của nó trong nghiên cứu hứa hẹn nhiều kết quả và nhữngứng dụng khả quan trong tương lai
1.1.4 Kiến trúc hệ vi xử lý đa chỉ thị đa dữ liệu (MIMD)
Mô hình này đang được tập trung nghiên cứu ở nhiều nước trên thế giới
do tính dễ hiểu, hiệu quả, linh hoạt và sự phù hợp của nó với những gì chúng
ta đang có (ví dụ những máy tốc độ thấp ta có rất nhiều) Kết quả nhữngnghiên cứu về kiến trúc MIMD cho phép xây dựng các hệ vi xử lý song songtốc độ cao, đặc biệt là các hệ siêu máy tính song song đa năng
Trang 31.2 Phương pháp tổ chức bộ nhớ của hệ vi xử lý song song
1.2.1 Phương pháp tổ chức bộ nhớ phân cấp
1.2.1.1 Khái niệm về bộ nhớ phân cấp
Phân cấp bộ nhớ được cấu trúc sao cho các bộ nhớ ở cấp i là “cao hơn” các bộ nhớ ở cấp i+1 Gọi c i , t i và s i tương ứng là chi phí trên một byte, thời
gian truy nhập trung bình và kích thước bộ nhớ tổng cộng ở cấp i, ta có quan
hệ giữa các cấp i và i+1 như sau:
Về chi phí trên một byte nhớ: c i > c i+1
Về thời gian truy nhập trung bình: t i < t i+1
1.2.1.2 Tối ưu hóa phân cấp bộ nhớ
Vấn đề đặt ra trong thiết kế một phân cấp bộ nhớ điển hình là việc tối
ưu hóa để giảm đến thấp nhất thời gian truy nhập phân cấp hiệu dụng T với chi phí hệ thống bộ nhớ cho trước là C 0 và các ràng buộc về kích thước Tức
là tối thiểu hóa 1
trong đó s i > 0 và t i > 0 với i = 1, 2, …, n Trong thực tế, các ràng buộc về chi
phí bao gồm cả chi phí của mạng liên kết bộ xử lý – bộ nhớ
1.2.1.3 Các phương pháp địa chỉ hóa cho bộ nhớ chính
Có hai phương pháp phân chia các địa chỉ giữa các module nhớ Một
phương pháp, gọi là đan xen bậc cao, phân chia địa chỉ trong M = 2 m module
sao cho mỗi module i, với 0 i M 1, chứa các địa chỉ liên tiếp i.2n m đến
i 1 2 n m 1
Trong đó m bit cao được sử dụng để chọn module còn n – m bit
thấp được sử dụng để chọn địa chỉ bên trong module (hình 1.5)
Trang 4trong module, như mô tả trong hình 1.6.
Một ưu diểm của đan xen bậc cao là có độ tin cậy hệ thống cao, do mộtmodule lỗi chỉ ảnh hưởng đến một vùng cục bộ của không gian nhớ Ngược
Trang 5lại, trong phương pháp thứ hai, một lỗi ở một module đơn bất kỳ sẽ ảnhhưởng trầm trọng đến toàn hệ thống Tuy nhiên, phương pháp thứ hai nàydường như tốt hơn nếu vấn đề xung đột bộ nhớ là cơ sở của việc lựa chọn.
1.2.2 Các phương pháp tổ chức bộ nhớ đan xen (Interleaved)
1.2.2.1 Phương pháp tổ chức bộ nhớ S – access
Phương pháp này được gọi là S – access vì tất cả các module được truy nhập đồng thời (Simultaneous) Mỗi module có một chốt dữ liệu Đối với một
thao tác nhận dữ liệu, dữ liệu từ mỗi module được đưa qua chốt, và bộ dồn
kênh (multiplexer) được sử dụng để định hướng dữ liệu mong muốn tới bus
Trang 6®iÒu khiÓn
Hình 1.9: Cấu hình bộ nhớ C – access
1.2.2.3 Phương pháp truy nhập C/S – access
Đây là cấu hình kết hợp giữa hai cấu hình S – access và C – access ở
trên Các module được sắp xếp trong một mảng hai chiều Trong cấu hình
này, nếu S – access được đan xen M đường và C – access được đan xen L đường thì có thể có tới L truy nhập khác nhau đến các khối M từ lưu giữ được
thực hiện đồng thời Phương pháp này hiệu quả đối với nhiều bộ xử lýpipeline
1.3 Các mô hình hệ vi xử lý song song
1.3.1 Mô hình đa máy tính
Mô hình đa máy tính gồm có một số máy tính Von Neumann (hoặcnhững nút), được liên kết thông qua mạng Mỗi máy tính thực hiện chươngtrình riêng của mình Chương trình này có thể truy nhập bộ nhớ cục bộ và cóthể gửi và nhận những thông báo thông qua mạng
1.3.2 Các mô hình hệ vi xử lý song song khác
Ngoài mô hình đa máy tính, các mô hình khác đối với hệ vi xử lý songsong đã được nghiên cứu phát triển Ở đây ta xem xét ba mô hình điển hìnhngoài mô hình đa máy tính Trong hình vẽ này, kí hiệu P biểu thị một bộ xử lýđộc lập Đầu tiên, trong hình 1.13a, là một máy tính kiểu MIMD có bộ nhớphân tán được liên kết với nhau như một mạng lưới (mesh) Trong đó mỗi bộ
xử lý có bộ nhớ phân tán riêng Hình 1.13b là mô hình bộ đa xử lý với bộ nhớchia sẻ Trong đó, các bộ xử lý truy nhập tới bộ nhớ chung, thông qua mộtbus Để nâng cao hiệu quả và giảm thời gian truy nhập bộ nhớ, các bộ nhớ
Trang 7cache cho mỗi bộ xử lý được thiết kế để lưu trữ các dữ liệu thường xuyên
được sử dụng Và thứ ba là mô hình đa xử lý với các bộ xử lý được liên kếtqua một mạng cục bộ, ở đây là mạng Ethernet (hình 1.13c)
Trang 8Hình 1.15 Kiến trúc hệ xử lý song song trên cơ sở bộ vi xử lý NM6403 kết
hợp bộ xử lý tín hiệu số TMS320C40Ngoài ra, có nhiều mô hình hệ xử lý song song khác trên cơ sở bộ vi xử
lý NM6403 có thể được xây dựng
Việc sử dụng bộ xử lý NM6403 trong xây dựng các kiến trúc hệ vi xử
lý chuyên dụng phải được kết hợp với việc tổ chức các bộ nhớ một cách thíchhợp để đạt hiệu năng hệ thống cao nhất
Trang 9CHƯƠNG 2: KIẾN TRÚC VÀ LẬP TRÌNH TRÊN HỆ XỬ LÝ VÉC TƠ MC431 (NM6403)
2.1 Tổng quan về xử lý vectơ
2.1.1 Các đặc trưng cơ bản của phép xử lý vectơ
Hầu hết các bộ xử lý vectơ có cấu trúc kiểu đường ống (pipeline).Trong đó, các thao tác trong một chu kỳ lệnh được chia ra thành các chứcnăng con theo mối quan hệ về trình tự thời gian, mỗi tầng trong hệ vi xử lýđường ống tương ứng với một chức năng con Vì vậy, trong trường hợp tổngquát, để phù hợp với phép xử lý hiệu ứng pipeline, các phép tính cần phải cócác đặc tính sau:
a) Các quá trình (hoặc các hàm chức năng) được đòi hỏi lặp lại nhiềulần Mỗi một quá trình lại có thể được phân chia thành các quá trình con(hoặc các hàm con)
b) Các toán hạng kế tiếp được vận chuyển qua các đoạn đường ống vàđòi hỏi phải có các bộ đệm và điều khiển cục bộ tương ứng
c) Các phép toán được thực hiện bằng các đường ống riêng biệt có thểchia sẻ các tài nguyên chung như bộ nhớ và các kênh trong hệ thống
2.1.2 Bộ xử lý vô hướng và bộ xử lý vectơ
Bộ xử lý vô hướng là bộ xử lý thực hiện các thao tác trên dữ liệu vôhướng
Bộ xử lý vectơ gồm toàn bộ tài nguyên phần cứng: các thanh ghi vectơ,các pipeline chức năng, các phần tử xử lý và các bộ đếm thanh ghi phục vụcho việc thực hiện các thao tác vectơ Nói chung, xử lý vectơ cho hiệu quảcao và tốc độ xử lý nhanh hơn xử lý vô hướng
Một trong những ưu điểm của xử lý vectơ so với xử lý vô hướng là
giảm được các tiếp đầu phần mềm (overhead) trong điều khiển vòng lặp.
2.1.3 Quá trình phát triển của xử lý vectơ và xu hướng hiện nay
Các thế hệ của máy tính vectơ chủ yếu thực hiện việc cải thiện về tốc
độ tính toán nhờ cải tiến cấu trúc hệ vi xử lý theo kiểu đường ống hay đa xử
lý Bên cạnh đó, một hướng tiếp cận mới với các hệ vi xử lý vectơ đang đượcnghiên cứu và thực hiện trên quan điểm nâng cao cả về tốc độ tính toán và
Trang 10khả năng ứng dụng trong các lĩnh vực chuyên biệt, đó là kiến trúc kết hợp xử
lý vectơ và mạng Nơron: kiến trúc Neural-Matrix Điều này bắt nguồn từ
nhận xét rằng mặc dù các thao tác tính toán trong xử lý vectơ cho phép tăngđược tốc độ tính toán một cách mạnh mẽ so với xử lý vô hướng song nếu cáctính toán vectơ được thực hiện ở dạng tường minh đầy đủ thì số phép tính cầnthực hiện vẫn còn lớn và thời gian thực thi còn lớn Tốc độ tính toán và hiệunăng hệ vi xử lý vectơ hoàn toàn có thể tăng lên hơn nữa nếu bộ xử lý vectơ
có khả năng thích nghi theo kiểu trí tuệ nhân tạo trong các thao tác tính toánvectơ
2.2 Hệ vi xử lý vectơ MC431
2.2.1 Giới thiệu chung về hệ vi xử lý vectơ MC431
Hệ vi xử lý vectơ MC431 được hãng Module (Nga) công bố và đưa rathị trường năm 2003, là một hệ vi xử lý vectơ tốc độ cao, giá thành hợp lýđược thiết kế cho nhiều chức năng hệ thống khác nhau, đặc biệt hiệu quảtrong các ứng dụng về xử lý tín hiệu số, xử lý ảnh-video, mạng Nơron và cáctính toán kiểu vectơ-ma trận Tốc độ của MC431 là 120 MOPS (MillionOperations per Second: Triệu phép tính trong 1 giây) với các thao tác vôhướng và 960 MMAC (Million Multiplication and Accumulation per Second:Triệu phép nhân và tích lũy trong 1 giây) với các thao tác vectơ
2.2.2 Sơ đồ khối và các thành phần của hệ vi xử lý vectơ MC431
Sơ đồ khối của hệ vi xử lý MC431 được thể hiện trong hình vẽ 2.3 Cácthành phần chính của MC431 gồm có:
Bộ xử lý Neural-Matrix NM6403
Bộ nhớ 4MB loại SRAM
Các giao tiếp qua Bus PCI
Hai cổng truyền thông
Trang 11BUS PCI Các cổng truyền thông
Hỡnh 2.3: Sơ đồ khối hệ vi xử lý vectơ MC431
2.3 Cấu trỳc của bộ xử lý NM6403
Sơ đồ khối của NM6403 ở trờn hỡnh 2.5
Bộ xử lý Vectơ
Bus địa chỉ cục bộ Bus địa chỉ toàn cục
Bus đầu vào 1 Bus đầu vào 2
Trang 12 Các khối giao tiếp bộ nhớ toàn cục (GMI) và cục bộ (LMI)
Các bộ đồng xử lý DMA với các cổng truyền thông tương thíchvới chuẩn TMS320C4x
Các bus địa chỉ cục bộ và toàn cục
Hai bus dữ liệu đầu vào và một bus dữ liệu đầu ra
2.3.1 Bộ xử lý vô hướng RISC
Bộ xử lý vô hướng (hình 2.6) được sử dụng cho các tính toán số học –logic và các thao tác dịch trên dữ liệu 32 bit, các tính toán địa chỉ 32 bit của
dữ liệu và lệnh trong truy nhập bộ nhớ, các tính toán trên các thanh ghi đanăng và chuẩn bị dữ liệu cho bộ xử lý vectơ
Hình 2.6: Sơ đồ khối bộ xử lý vô hướng
2.3.2 Bộ xử lý vectơ
Nút trung tâm của bộ xử lý vectơ là khối thao tác OU (Operation Unit),chứa khối ma trận hoạt động/ ma trận phụ và khối số học-logic vectơ(VALU) Khối OU được sử dụng để xử lý các thao tác nhân – cộng, số học-logic, phép hoán vị trên các vectơ dữ liệu đóng gói
Trang 132.3.2.1 Ma trận hoạt động
Đõy là một khối thao tỏc thực hiện cỏc phộp nhõn – cộng và chuyển vị.Đặc biệt, thao tỏc tớch lũy trọng số thực hiện tại ma trận hoạt động cú ý nghĩaquan trọng trong cỏc ứng dụng tớnh toỏn của NM6403
RAM
Bộ dịch vòng
Ma trận phụ
Ma trận hoạt động
Bus dữ liệu vectơ đầu ra
VR
X
Y
Hỡnh 2.7: Sơ đồ khối bộ xử lý vectơ trong NM6403
2.3.2.3 Khối số học – logic vectơ (VALU)
Khối này thực hiện cỏc tớnh toỏn số học và logic trờn cỏc từ dữ liệuđúng gúi Cỏc tớnh toỏn được thực hiện đồng thời trờn tất cả cỏc phần tử của
từ dữ liệu đúng gúi
Trang 142.3.2.4 Bộ đệm các trọng số kiểu FIFO (wfifo)
Được sử dụng để lưu trữ các trọng số được chuyển từ bộ nhớ ngoài vào
ma trận phụ, như một bộ đệm giữa bộ nhớ ngoài và ma trận phụ
2.3.2.5 Bộ đệm – bộ tích lũy kiểu FIFO (afifo)
Đây là một hàng đợi kiểu FIFO dung lượng 32 từ 64 bit Nó được sửdụng là bộ đệm dích của bất kỳ thao tác nào trong VU
2.3.2.6 Bộ đệm – bộ nhớ trong kiểu FIFO (ram)
Được sử dụng như một trong các bộ đệm đầu vào cho ma trận hoạtđộng hay khối VALU
2.3.2.7 Khối đặt mặt nạ (MAU: Mask Application Unit)
Khối này được sử dụng để đặt mặt nạ tới các vectơ dữ liệu đầu vào
2.3.3 Các thanh ghi trong bộ xử lý NM6403
Bộ xử lý NM6403 chứa 3 tệp thanh ghi sau:
Tệp thanh ghi chính
Tệp thanh ghi điều khiển ngoại vi
Tệp thanh ghi vectơ
Sau đây ta xem xét cụ thể từng tệp thanh ghi trên
2.3.3.1 Tệp thanh ghi chính
Tệp thanh ghi chính gồm 8 thanh ghi địa chỉ và 8 thanh ghi đa năng.Chúng đều là các thanh ghi cho phép truy nhập đọc/ghi 32 bit
2.3.3.2 Tệp thanh ghi điều khiển ngoại vi
Tệp thanh ghi điều khiển ngoại vi được sử dụng để điều khiển các giaodiện bộ nhớ mở rộng, các cổng truyền thông, các bộ đồng xử lý DMA, cácTimer
2.3.3.3 Tệp thanh ghi vectơ
Tệp thanh ghi vectơ được sử dụng để điều khiển bộ xử lý vectơ
2.4 Lập trình trên hệ vi xử lý vectơ MC431
2.4.1 Cấu trúc của chương trình assembly cho hệ vi xử lý vectơ MC431
Trong ngôn ngữ assembly cho NM6403 có 3 kiểu đoạn là:
Trang 15 Đoạn mã
Đoạn dữ liệu khởi tạo
Đoạn dữ liệu không khởi tạo
Một đoạn được khởi đầu bằng một trong các từ khóa sau: begin, data hay nobits và kết thúc với từ khóa end cùng với tên đoạn được đặt trong dấu
ngoặc kép Ở giữa là thân đoạn
2.4.2 Tập lệnh của hệ vi xử lý vectơ MC431
Bộ xử lý NM6403 trong hệ xử lý vectơ MC431 hỗ trợ các lệnh 32 bit
và 64 bit Bất kỳ lệnh nào đều chứa hai thao tác bộ xử lý là định địa chỉ và sốhọc Các lệnh 64 bit (lệnh dài) chứa một hằng số 32 bit còn lệnh 32 bit (lệnhngắn) không chứa hằng số
Trang 16CHƯƠNG 3: XÂY DỰNG PHẦN MỀM THEO THUẬT TOÁN FHT TRÊN NỀN HỆ VI XỬ LÝ VÉC TƠ MC431
3.1 Xử lý tín hiệu số theo phương pháp FHT
3.1.1 Các phép biến đổi trong xử lý tín hiệu số
Các phép biến đổi Fourier (FT: Fourier Transform) và biến đổi Fourierrời rạc (DFT: Discrete Fourier Transform) được sử dụng rộng rãi trong xử lýtín hiệu số Đặc biệt là, việc xuất hiện thuật toán nhanh cho DFT, được gọi làbiến đổi Fourier nhanh (FFT: Fast Fourier Transform), đã tạo ra một bướcnhảy vọt trong lĩnh vực phân tích, thiết kế và thực hiện các bài toán xử lý tínhiệu số
Biến đổi FHT đặc biệt hiệu quả so với các phép biến đổi khác nhờ sựđơn giản trong tính toán do các phần tử trong ma trận chỉ gồm các con số 1 và-1; thời gian xử lý ngắn; dễ dàng trong thực hiện phần cứng và khả năng bềnvững trước các tác động bên ngoài cũng như các thao tác xử lý ảnh như nénảnh, thay đổi kích thước ảnh Ngoài ra, FHT còn được ứng dụng trong côngnghệ trải phổ đa truy nhập phân chia theo mã CDMA (Code DivisionMultiple Access) để tạo các mã người dùng trực giao hoàn toàn
3.1.2 Ma trận Hadamard và phép biến đổi Hadamard
Ma trận Hadamard được định nghĩa dưới dạng hồi qui như sau
1 1 1
1 1 2
Biến đổi Hadamard (HT: Hadamard Transform) của một vectơ x được
định nghĩa là tích của ma trận Hadamard với vectơ này: y = HN x
Phép biến đổi Hadamard trên là một phép biến đổi rời rạc nên được gọi
là biến đổi Hadamard rời rạc (DHT: Discrete Hadamard Transform)