Thuật toán lọc, FIR hoặc IIR, có thể thực hiện bằng phần mềm (lập trình máy tính) hoặc bằng phần cứng (mạch logic) với sự giúp đỡ của những chương trình liên quan, hoặc phần cứng thuần túy (chỉ mạch điện tử số). Ở đây có nhiều bộ xử lý tín hiệu số (DSPs) mà là những vi xử lý đặc biệt được thiết kế cho những mục đích khác nhau. DSPs bao gồm hai đặc tính chính: dấu chấm cố định và dấu chấm động. Họ DSP điển hình là TMS320 của Texas Instruments, DSP9600 của Motorola, ADSP2100 của Analog Devices. Chúng có cấu trúc tối ưu với sự tính toán lặp lại với xử lý mẫu (phần 2.6.3). Trước khi đi vào tính toán của DSPs, ta cần biết nhiều về xử lý này
7.6.1 DSP cơ bản cho lọc
Thuật toán lọc FIR trên và những thuật toán khác của lọc FIR và IIR có thể xử lý thuật tiện bằng DSPs. Kiến trúc cơ bản của DSPs được chỉ trong hình 7.26. Tapped-delay thanh ghi vi là vị trí nhớ tuần tự trong RAM 1 ngược lại những hệ số lọc được cất trong RAM 2, và ROM cất dữ chương trình thuật toán lọc
Mở rộng của một DSP là MAC (nhân tích lũy) với bộ nhân và cộng được thực hiện sử dụng kiến trúc dấu chấm cố định hoặc dấu chấm động, phụ thuộc vào DSP thực tế. Lệnh là
i iv b y y
Thời gian với một lệnh Tinst thường một phần mười của nanoseconds, không đề cập đến thời gian overhead (vào, ra chuyển, lặp…). Một lọc bậc M yêu cầu (M + 1) lệnh và tổng số thời gian xử lý cho một mẫu đến x là
inst
x M T
T ( 1) (7.53)
Vì vậy tần số lấy mẫu là
inst
s M T
f ( 1) 1
(7.54)
Thật ra, khoảng lấy mẫu T phải lớn hơn Tx , vì vậy tần số lấy mẫu phải lớn hơn cái được cho ở trên.
output input
x y
RAM 1 RAM 2 ROM
vi hi
BUS v0
v1
v2
v3
h0
h1
h2
h3
Steady state Turn-on transient
Turn-off transient
Hình. 7.26: Kiến trúc cơ bản của DSPs với hoạt động FIR
Ví dụ 7.6.1
Một lệnh MAC của một DSP cần 25ns bao gồm overhead, tìm chiều dài lớn nhất của lọc FIR để xử lý âm thanh trong thời gian thực
Giải
Với lọc bậc M tổng số thời gian lệnh được cho bởi (7.47). Với băng thông hạn chế cho tiếng nói tại 3.4 kHz thường tần số lấy mẫu là fs 8kHz. Vì vậy
) 5000 10
* 25 )(
10
* 8 (
1
1 1 3 9
Tinst f Tins M T
s x
Bậc lọc này là cao, mà chứng minh rằng DSP có khả năng lọc tiếng nói, thậm chí âm nhạc, trong thời gian thực.
Bộ đệm vòng
Thuật toán xử lý mẫu sang mẫu được thực hiện sử dụng bộ đệm vòng để cất dữ trạng thái nội v0, v1,
…Tại một thời điểm, dữ liệu cất dữ được dịch tới trước một vị trí ô nhớ. Cách này thì không hiệu quả.
Thay vào đó, dữ liệu được dữ cố định và địa chỉ dịch chuyển ngược về trong mô hình vòng. Sự dịch chuyển giữa dữ liệu và địa chỉ được duy trùy không đổi. Xét một lọc FIR bậc ba. Bộ đêm vòng của nó có 4 taps (M + 1 = 4). Trong hình 7.27 bộ đệm tuyến tính được hóan đổi vòng (với mục đích so sáh với bộ đệm vòng trình bày sau đó). Khi thời gian tăng từ n đến n + 1 , nội dung của mỗi thanh ghi (vị trí nhớ) được dịch theo ngược chiều kim đồng hồ đến thanh ghi kế. Địa chỉ của những thanh ghi v0, v1, v2, v3 không thay đổi nhưng bây giờ những thanh ghi cất dữ giá trị được dịch. Địa chỉ con trỏ p luôn trỏ đến địa chỉ đầu v0 và được cố định
v3
x(n) x(n-1)
x(n-3)
x(n-2) v0
v2
v1
p
shifting dữ liệu
x(n+1) x(n)
x(n-2)
x(n-1) p
Next instant
v3
v1
v2 v0
Hình. 7.27:Hoán đổi vòng của bộ đệm tuyến tính có 4 tap
Trong bộ đêm vòng (Hình. 7.28) địa chỉ được dịch cùng chiều kim đồng hồ đến địa chỉ hiện hành. DSPs có những lệnh thích hợp để sự quay địa chỉ thuận tiện và hiệu quả.
Hình. 7.28: bộ đệm vòng 4 tap
Thuật toán lọc IIR
Xét lọc IIR bậc hai dạng cấu trúc chính tắc hình 7.8. Những hệ số lọc b0, b1, b2, a1, a2, và những trạng thái nội w0, w1, w2 được cất dữ trong ba RAMs (Hình 7.29). Một lần nữa, thuật toán thực hiện lọc được cất trong ROM. Thuật toán xử lý là
Với mỗi mẫu vào x làm:
0 0 0
1
1 1 1
2 2 2
2 2 0 0
1 1 0
, ,
w b y y w w
w b y y w w
w b y
w a w w
w a x w
(7.55)
Trong DSPs, mỗi đường của thuật toán được thực hiện bằng một lệnh MAC, vì vậy, mỗi mẫu vào yêu cầu 5 lệnh. Chú ý những trạng thái w1 và w2 không thể cập nhập cho tới khi w0 đã được tính toán.
Lệnh MAC tính w0 và xử lý theo hướng tới, từ chỉ số nhỏ nhất ai tới trước. Khi w0 đã được tính, sự tính toán ngõ ra tín hiệu y có thể bắt đầu, nhưng xử lý theo hướng ngược về, từ chỉ số lớn nhất trở về trước.
output
y x y
RAM ROM
input
bi
wi
MAC b0
b1
b2
a1
a2
w0
w1
w2
+
aiwi
biwi
ai
v0
x(n) x(n -1)
x(n-3)
x(n-2) v0
v3
v2
v1
p
ship
con trỏ x(n)
x(n-1)
x(n+1)
x(n-2) p
v2
v3
v1
Hình. 7.29: Cấu trúc của lọc IIR bậc hai bằng DSPs Thuật toán xử lý với lọc bậc cao, giả sử M=N, như sau
Với mỗi mẫu vào x làm:
i i i i
M M
i i
w b y y
w w
do M
i for
w b y
w a w w
do M i
for x w
1 0 0 0
: 0 , 1 ,..., 1
: ...,
, 2 , 1
(7.56)
Tổng số lệnh để lọc với mỗi mẫu vào thực hiện với lọc IIR bậc M là )
1 (
2
M
Ninst (7.57)
So sánh với (M + 1) lệnh ở lọc FIR. Thời gian overhead thường 10 ns. Tổng thời gian để xử lý mỗi mẫu vào sẽ là
inst inst
x N T
T (7.58)
Với Tinst là thời gian một lệnh MAC, thường 30 ns, nghĩa là, tốc độ lệnh là finst =33.3 MIPS (tỉ lệnh /s).
Thời gian xử lý của mỗi mẫu có một giới hạn trên là tốc độ lấy mẫu fs mà lọc có thể hoạt động, nghĩa là is,
inst inst inst
inst x
s N
f T
N
f T 1 1
(7.59)
Thật ra, thời gianxử lý mẫu phụ thuộc cấu trúc lọc.
Một cách để cải tiến tốc độ xử lý là sử dụng DSP theo kiểu song song, mỗi cái là sự thay đổi của họat động lọc bậc hai. Trong trường hợp một lọc được cho là bậc nhất thì chuyển thành cấu trúc song song. Một cách hiệu quả khác là sử dụng pipelining (thấy sau) như trong vi xử lý cho máy tính.
7.6.2 Kiến trúc DSP
Hầu hết thuật toán DSP như lọc, tương quan, nhân chập, và biến đổi Fourier nhanh (FFT) bao gồm những toán hạng lập lại (nhân, tổng, địa chỉ nhớ…) vf dòng dữ liệu lớn từ CPU. Vì vậy DSPs phải là một tổ chức tối ưu đối với từng loại hoạt động. Kiến trúc DSP sử sụng những đặc điểm sau:
Kiến trúc phần cứng
Pipelining
Phần cứng linh hoạt nhân/tích lũy
Lệnh đặc biệt
Vi xử lý hiện đại và DSPs hiện đại có nhiều thứ giống nhau, nhưng DSPs có một số đặc điểm khác.
Kiến trúc phần cứng
Trong kiến trúc Harvard chương trình và dữ liệu nhớ nằm ở hai không gian riêng biệt như thấy trong hình 7.30. Kiến trúc này cho phép một sự trùng lắp đầy đủ của fetch và tiến hành lệnh. Hình. 7.31
trong một ví dụ của ba lệnh liên tiếp Tải địa chỉ 1, Cất địa chỉ 2 và cất địa chỉ 3. MAC lệnh chung bao gồm đọc, nhân và tích lũy. Cấu trúc nghiêm ngặc Harvard sư dụng một số DSPs (ví dụ Motolora P56000), nhưng hầu hết sử dụng kiến trúc Harvard bổ sung, ví dụ họ TMS320, nơi chương trình và không gian bộ nhớ dữ liệu tách rời nhau, nhưng sự liên lạc giữa hai không gian bộ nhớ thì cho phép
Hình 7.30: Kiến trúc Harvard cơ bản Pipelining
Kỹ thuật pipelining cho phép một vài hoạt động lặp lại xuất sự tiến hành. Một nhiệm vụ được chia nhỏ thành một số nhiệm vụ nhỏ hơn, gọi là giai đoạn, được lặp lại. Những giai đoạn được kết nối dạng chuỗi để hình thành một đường ống được tiến hành tuần tự. Vì sự trùng lắp, một lệnh mới bắt đầu tại mỗi chu kỳ (hình 7.30). Chú ý rằng pipelining có thể làm bằng kiến trúc Harvard. Điển hình, một số thanh ghi được sử dụng để có pipeline; một prefetch counter dữ địa chỉ của lệnh kế tiếp được đưa vào fetched, một thanh ghi lệnh (IR) gữ sự tiến hành lệnh, một thanh ghi hàng đợi lệnh (PC) chứa địa chỉ của lệnh kế tiếp trong IR. Bộ đếm chương trình (PC) chứa địa chỉ của lệnh kế tiếp. Khi sự thực hiện lệnh trong IR hoàn tất, lệnh trong QIR được chuyển đến IR để thực thi.
Hình.7.31: lệnh trùng lắp trong kiến trúc Harvard.
The throughput of a pipeling machine được quyết định bằng số lệnh xuyên qua ống/ đơn vị thời gian.
Thời gian để di chuyển một lệnh từ một tầng này đến tầng káhc bên trong ống là một chu kỳ phụ thuộc tầng chậm nhất trong pipeline. Trong trường hợp lý tưởng, tốc độ tăng bằng với số của tầng ống.
Phần cứng linh hoạt nhân-tích lũy
Hoạt động thông thường của DSPs là bộ nhân và cộng. Trong phần mềm, nhân là thời gian liên lạc, nhưng cộng tốn nhiều thời gian hơn nếu kiến trúc là dấu chấm động. Vì vậy, để có thể xử lý thời gian thực, DSPs được xem như một phần cứ linh hoạt nhanh MAC mà sử dụng dấu chấm cố định hoặc
Fetch Decode Execute
LOAD ADR 1
Fetch Decode Execute
Fetch Decode Execute
STA ADR 2
STA ADR 3
Data memory address bus
Program memory address bus
Data bus DSP
CPU
Program memory
Data memory
Program data bus
động. Trong vi xử lý dấu chấm cố định, phần cứng nhân chấp nhận với hai số bù 2 16 bit và tính tích 32 bit trong một chu kỳ (100ns). Thời gian lệnh MAC trung bình có thể giảm xuyên qua việc sử dụng lệnh lặp lại. Một phần cứng DSP điển hình MCA được minh họa trong hình 7.32. Nhân là hai thanh ghi vào 16 bit. Thanh ghi tích P 32 bit dữ kết quả nhân. Ngõ ra P ở thành ngõ vào tích lũy, với tích là tổng tích lũy.
Hình. 7.32: Một cấu hình phần cứng MAC điển hình
Tổ chức phần cứng MCA dấu chấm động rất giống, ngoại trừ ngõ vào và tích được chuẩn hóa thành những số dấu chấm động. MCA dấu chấm động cho phép tính nhanh với lỗi nhỏ nhất. Toán hạng dấu chấm động cho phép một dải động rộng để giảm hiệu ứng độ dài từ hữu hạn (lượng tử hệ số và lỗi số học). Tuy nhiên, với nhiều ứng dụng, dải động của toán hang dấu chấm cố định thì thích hợp hơn.
Những lệnh đặc biệt.
Những lệnh đặc biệt tối ưu cho DSP để mã hóa tương thích hơn, ít không gian nhớ và tăng tốc độ xử lý. Xử lý số như lọc, tương quan, nhân chập yêu cầu dịch dữ liệu hoặc trễ để làm thành mẫu dữ liệu mới. Vì vậy, DSPs cung cấp những lệnh đặc biệt để cho phép mẫu dữ liệu copy đến địa chỉ nhớ cao hơn nó đựoc fetched từ bộ nhớ hoặc hoạt động trong một chu kỳ. Những lệnh đặc biệt cũng cung cấp tốc độ hoạt động mà thường lặp lại: lệnh lặp lại yêu cầu một fetch lệnh đơn của mã. Lệnh lặp lại đặc biệt hữu ích trong dịch khối và lọc FIR.
Sự lặp lại
Sự lặp lại của những đơn vị, như ALU, nhân cho phép tiến hành song song. Một số DSPs tương lại sẽ sử dụng một vài hoạt động của vi xử lý độc lập với đơn vị điều khiển. DSPs hiện đại sử dụng xử lý song song full-blown.