Tải bản đầy đủ (.docx) (15 trang)

tài liệu ôn tập môn Lập trình DSP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (470.63 KB, 15 trang )

Câu hỏi môn “Lập trình DSP”
<I>Phần lý thuyết:
1. Phần DSP cơ bản:
Câu hỏi 1: Hãy phân tích (trình bày định nghĩa, ví dụ, phân tích ưu và nhược điểm) các phương
pháp tăng độ chính xác khi chuyển đổi 1 giá trị số phần lẻ 8 bít từ độ chính xác cao về độ chính
xác thấp (cut, rounding, to-nearest, convergent) (Page 40)
*) Định nghĩa
Việc thực hiện các các phép toán như nhân, tích lũy, hay một số các phép toán số học khác có xu hướng
tăng số lượng bit cần thiết, để biểu diễn cho kết quả số học mà không mất đi độ chính xác ta thực hiện
việc làm tròn.
Có 2 phương pháp làm tròn: là CUT và ROUNDING
*) CUT: là phương pháp cắt các bit thừa, các bít có ý nghĩa ít nhất khi ghi từ bộ tích lũy và bộ nhớ
Ví dụ: Bộ tích lũy có độ phân dải là 16bit
Bộ nhớ có độ phân giải là 8 bit
Khi cắt sẽ cắt 8 bit thấp của giá trị trong bộ tích lũy -> kết quả được đưa vào bộ nhớ
Với 1.9 ta sẽ bỏ số 9 đằng sau dấu phẩy => Kết quả là 1 thay vì làm tròn lên bằng 2
Lưu ý các giá trị bị cắt ngắn luôn luôn nhỏ hơn hoặc bằng giá trị gốc
+) Nhược điểm: Sai số lớn, thiếu chính xác
+) Ưu điểm: Giảm các lỗi về số học, thuật toán đơn giản, nhanh
*) ROUNDING:
- Round-to-nearest: được gọi là kỹ thuật làm tròn tới số gần nhất, là phương pháp làm tròn đến giá trị gần
với giá trị đầu ra nhất khi ghi từ bộ tích lũy sang bộ nhớ.
Đây là loại thường được sử dụng trong toán học hàng ngày và nó là phương pháp làm tròn được cung
cấp bởi hầu hết các điểm cố định của bộ xử lý DSP.
CUT(x+Δ/2) -> x_new
Ví dụ: CUT(1.9 + Δ/2) = CUT(1.9 + 0.5) = CUT (2.4) -> x_new = 2
CUT(1.2 + Δ/2) = CUT(1.2 + 0.5) = CUT (1.7) -> x_new = 1
+) Nhược điểm: Với phương pháp này con số được làm tròn đến giá trị gần nhất được biểu diễn trong
định dạng ở đầu ra (giảm độ chính xác)
Với con số nằm ở giữa hai giá trị đầu ra gần nhất thì luôn được làm tròn lên giá trị đầu ra ở mức cao
hơn. Không chính xác ở mức giữa


+) Ưu điểm: đơn giản, dễ thực hiện, lập trình tương đối dễ.
- Convergent Rounding: là phương pháp làm tròn hội tụ để khắc phục việc sai lệch, hơi phức tạp hơn so
với phương pháp làm tròn tới số gần nhất. Trong phương pháp này khi một số nằm ở giữa hai giá trị đầu
ra gần nhất, nó có thể làm tròn lên hoặc làm tròn xuống. Hướng làm tròn phụ thuộc vào “giá trị bit của
số đó là ở vị trí nào sẽ trở thành bit có ý nghĩa (LSB) của từ đầu ra”. Nếu bit này là một số 0, thì sẽ được
làm tròn xuống (trong hướng tiêu cực), nếu bit này là 1 thì số đó sẽ được làm tròn lên (trong hướng tích
cực). Làm tròn hội tụ được so sánh với làm tròn đến số gần nhất theo hình dưới
Hai phương pháp làm tròn hoạt động giống nhau ngoại trừ trường hợp số được làm tròn nằm giữa hai
giá trị đầu ra gần nhất.
Đối với phương pháp Rounding to nearest là đưa toán hạng A là một thanh ghi 8 bit về thanh ghi toán
hạng B là thanh ghi 4 bít bằng cách làm tròn tới số gần nhất.
Phương pháp Convergent Rounding:
Với If a3:a0 >1000
b3:b0 = a7:a4 + a3
và If a3:a0 <1000
b3:b0 = a7:a4 + a3
 Là phương pháp làm tròn tương tự như Rounding-to-nearest
Trường hợp If a3:a0 =1000
b3:b0 = a7:a4 + a4
Trong trường hợp này quyết định làm tròn lên hay xuống phụ thuộc vào bit a4, các bít của toán hạng ở
vị trí đó sẽ trở thành LSB của kết quả đầu ra. Nếu a4 là 1, kết quả được làm tròn trong
hướng tích cực; Nếu a4 là 0, kết quả sẽ được làm tròn theo hướng tiêu cực.
Câu hỏi 2: Phân tích cấu trúc và mô tả hoạt động của bộ xử lý DSP5600x
- Motorola DSP5600x Dấu chấm tĩnh, 24 bits
- Multiplier: bộ nhân là rất quan trọng trong tất cả các ứng dụng của DSP
- Thanh ghi tích lũy: lưu dữ liệu và kết quả của phép nhân và các phép tính khác
- ALU: thực hiện các phép toán cơ bản như cộng, trừ, nhân, tăng, giảm, and,…
- Shifter: thực hiện Scaling tín hiệu để tránh hiện tượng tràn số
- DSP56000 được tạo thành từ một bộ chip vi xử lí tín hiệu số 24-bit, hiệu suất cao và một vùng
mở rộng. Trong vùng mở rộng, chip có thể trợ giúp cấu hình cho các thiết bị bộ nhớ và ngoại vi

thay đổi tùy theo loại trong họ.
- Họ xử lí DSP5600x bao gồm bộ phận chính xử lí tín hiệu số tương thích vơí họ 56000, được
nạp bằng RAM chương trình trên chip, có 2 RAM dữ liệu độc lập, 2 ROM dữ liệu với các bảng
sine, µ-law va A-law. DSP56002 chứa bộ giao tiếp truyền thông nối tiếp, giao tiếp chủ song
song, bộ đếm thời gian/sự kiện, bộ vòng khóa pha, một cổng mô phỏng trên chip.
- Bộ xử lí DSP56002 cung cấp các đặc trưng phong phú trong việc xử lí tín hiệu số.
Câu hỏi 3: Phân tích cấu trúc và mô tả hoạt động của bộ xử lý AT&T DSP 3210 32 bit
Luồng dữ liệu của bộ xử lý DSP dấu chấm động (Floating-point Data path) tương tự như trong bộ xử lý
DSP dấu chấm tĩnh, nhưng có một số khía cạnh khác nhau. Hình trên là minh họa của luồng dữ liệu dấu
chấm động điển hình là AT&T DSP 3210 32-bit, bộ xử lý dấu chấm động.
Dấu chấm động bao gồm 3 phần: phần trị số, phần cơ số, phần mũ
Hai bộ dồn kênh hoạt động giống bộ đệm dữ liệu
Data Unit 1 DU1
Data Unit 2 DU2
Điểm khác biệt với dấu chấm tĩnh là nó ko có Scaling
Câu hỏi 4: Phân tích nhu cầu cần sử dụng bộ nhớ khi thực hiện bộ lọc FIR trên bộ xử lý DSP (Khái
niệm delay line, tap)
DSP xử lý các luồng dữ liệu được tối ưu hóa để cung cấp hiệu suất cao trên một số thuật toán số
học chuyên sâu. Tuy nhiên, một nguồn dữ liệu tốt chỉ là một phần của một bộ xử lý hiệu suất cao. Để
giữ cho luồng dữ liệu hoạt động và cung cấp dữ liệu và kết quả lưu trữ , xử lý DSP đòi hỏi khả năng di
chuyển một lượng lớn dữ liệu đến và từ bộ nhớ một cách nhanh chóng. Vì vậy tổ chức bộ nhớ và kết nối
của nó với luồng dữ liệu của bộ xử lý là những yếu tố quan trọng trong việc xác định hiệu suất xử lý. Để
hiểu được nhu cầu cho băng thông bộ nhớ lớn trong DSP ta xem xét về nhu cầu cần sử dụng bộ nhớ khi
thực hiện bộ lọc FIR, đây là ví dụ đơn giản và rõ ràng nhất cho thấy sự cần thiết của một số tính năng
đặc biết của bộ xử lý DSP được mô tả trong hình dưới.
Y
k
= x
k
.C

1
+ x
k-1
.C
2
+ … + x
2
.C
N-1
+ x
1
.C
N
Giá trị x(n) được lưu vào trong bộ nhớ RAM.
Khi tính toán giá trị của x(n) được đưa vào thanh ghi, để có được giá trị x
k-1
phải qua bộ D
Bộ D là lệnh gán dữ liệu bằng phần mềm.
Một đường của các giá trị x
1
đến x
k
sử dụng bộ D được gọi là delayline.
Một delayline chứa vùng nhớ giá trị đầu vào x(n) phục vụ cho việc tính giá trị đầu ra của bộ lọc.
Bộ lọc FIR được xây dựng từ một loạt các Tap. Mỗi Tap bao gồm phép nhân giá trị với các hệ số và
được lưu vào trong RAM cộng với giá trị tại thanh ghi tích lũy -> giá trị vào chính nó.
Vậy để tính x
k
bộ FIR cần k Tap
Các bước thực hiện trong 1 Tap:

- Nhận lệnh nhân tích lũy
- Đọc dữ liệu thích hợp từ delayline
- Đọc hệ số tương ứng
- Ghi dữ liệu vào vị trí tiếp theo trong delayline để dịch dữ liệu
trong delayline
 Yêu cầu cần thực hiên 1 Tap trong một chu kỳ DSP phải có khả
năng truy nhập bộ nhớ 4 lần/1 chu kỳ
Câu hỏi 5: Phân tích các loại kiến trúc bộ nhớ hỗ trợ cho các giải
thuật DSP: Kiến trúc Von-Newman, Harward sửa đổi, bộ nhớ đa
truy nhập, các thao tác ghi bộ nhớ đặc biệt (Không có hình vẽ trong
đề thi)
*) Kiến trúc Von-Newman : Dữ liệu và chương trình được lưu chung vào
một bộ nhớ. Chỉ truy nhập bộ nhớ 1 lần/ 1 chu kỳ. Kiến trúc Von
Neumann là kiến trúc đơn giản nhất của máy tính, có một CPU, một ko gian nhớ, một đường bus dữ liệu
và một đường bus địa chỉ. CPU gửi tín hiệu địa chỉ ra bus địa chỉ sau đó bus địa gửi gửi giá trị địa chỉ ra
bộ nhớ, ở bộ nhớ nó xác định được đc tại bộ nhớ, có 2 thao tác đọc/ghi. Thao tác đọc là dữ liệu được lấy
từ bộ nhớ đưa vào bus dl sau đó đưa vào CPU, CPU xử lý. Thao tác ghi: DL sau khi được tính toán xong
CPU sẽ đưa vào bus DL và bộ nhớ sẽ ghi dl vào ô nhớ có địa chỉ mà đã xác định trước đó.
Bộ xử lý chỉ có thể truy nhập (đọc/ghi) vào bộ nhớ 1 lần/1chu kỳ
Truy cập bộ nhớ rất tốn thời gian -> cần phải cải thiện. Kiến trúc này ít khi được dùng cho các
giải thuật DSP
*) Kiến trúc Harward sửa đổi
Phát triển các biến thể của cấu trúc bộ nhớ Von Neumann
Kiến trúc Harward sử dung ba băng bộ nhớ:
- Một băng bộ nhớ chương trình
- Hai băng bộ nhớ dữ liệu gọi là X và Y
Lợi thế: 3 bộ nhớ có thể được truy nhập trong một chu kỳ:
Truy nhập bộ nhớ chương trình
Truy nhập bộ nhớ dữ liệu X (ghi)
Truy nhập bộ nhớ dữ liệu Y (đọc)

CPU có thể truy nhập 2 băng của bộ nhớ bằng cách dùng 2 tập bus độc lập
Trong trường hợp FIR filter cần truy nhập 4 lần/1chu kỳ thì chỉ cần bộ xử lý hỗ trợ truy nhập 3 bộ
nhớ / chu kỳ mà không cần bộ nhớ thứ 4 với kỹ thuật Modulo Addressing.
*) Bộ nhớ đa truy nhập
Kiến trúc Harward với 2 cổng đôi Bus dữ liệu cho bộ nhớ A và chỉ một cổng bus cho bộ nhớ chương
trình B.
Với kiến trúc này CPU truy cập bộ nhớ sử dụng 3 bus riêng biệt. CPU truy cập bộ nhớ dữ liệu A
bằng 2 bus, bộ nhớ chương trình B bằng bus còn lại .
Bộ nhớ đa truy cập sử dụng các bộ nhớ tốc độ nhanh, onchip, sử dụng các bộ nhớ nhiều cổng.
Một số bộ vi xử lý cho phép thao tác ghi vào bộ nhớ dữ liệu thực hiện song song với thao tác đọc
lệnh và dữ liệu.
Câu hỏi 6: Hãy trình bày các phương pháp giảm số lần truy nhập bộ nhớ trong các giải thuật
DSP: bộ đệm lặp, cache (1 secto và nhiều secto), cách tiếp cận thuật toán
Một vài bộ xử lý DSP kết hợp với bộ đệm chương trình Cache program. Đây là 1 bộ nhớ bên trong bộ
xử lý được sử dụng để lưu trữ tạm thời chương trình. Có 3 loại cache chương trình: Bộ đệm lặp, cache 1
sector và cache nhiều sector.
Để sử dụng cache như thế nào ta xem xét ví dụ sau
Ví dụ:
Bộ đệm lặp là bộ đệm chỉ sử dụng với lệnh lặp khi các lệnh lặp được thực thi thì lần đầu tiên các data
được đưa vào bộ đệm lặp, các lệnh tiếp theo không cần phải truy cập bộ nhớ của hệ thống làm cho hệ
thống chạy nhanh hơn.
Cache 1 sector: Đây là cache lưu trữ các lệnh được sử dụng nhiều nhất trong 1 time gần nhất, hạn chế
của loại cache này là chỉ được sử dụng trong 1 phạm vi địa chỉ của chương trình.
Ví dụ khi 1 chương trình điều khiển luồng như lệnh BRANCH, INTERRUT truy cập tới 1 ô nhớ không
nằm trong cache thì các nội dung trước đó của cache bị mất đi và ko dc sử dụng.
Cache nhiều sector: Chức năng loại cache này giống cache 1 sector nhưng nó có thể lưu trữ được nhiều
đoạn chương trình khác nhau, khi bộ xử lý yêu cầu môt lệnh của bộ nhớ ngoài thì đầu tiên nó sẽ tìm
trong cache, có 2 trường hợp xảy ra – cache hit: lệnh đã có sẵn trong cache, tức là lệnh đã có sẵn trong 1
trong số các sector đó.
Cache miss: Lệnh ko có sẵn trong các sector -> thay sector

Thay sector có 2 cách: Phương pháp tự dộng LRU: (Thay thế sector được sử dụng trong 1 time)
Pphap thủ công: Dùng lệnh đặc biệt hoặc cac bit có cấu hình đặc biệt cho phép
chuwowg trình đóng nội dung của cache tại 1 vài thời điểm khi chương trình đang thực thi hoạc để làm
ẩn toàn bộ cache.
Cách tiếp cận thuật toán: Sử dụng tính địa phương của dữ liệu để giảm lần số truy cập bộ nhớ cần thiết.
Cách thực hiện bằng phần mềm
Câu 7. Định nghĩa và phân tích các nguyên nhân phát sinh trạng thái đợi trong bộ xử lý DSP
- Định nghĩa: Trạng thái đợi là trạng thái bộ xử lý đang đợi truy cập bộ nhớ
- Nguyên nhân phát sinh trạng thái đợi: 03 nguyên nhân
+ Xung đột bộ nhớ
+ Bộ nhớ chậm
+ Chia sẻ bus
- Phân tích các nguyên nhân
+ Xung đột bộ nhớ
Trạng thái đợi do xung đột xảy ra khi bộ vi xử lý cố gắng thực hiện nhiều truy cập đồng thời đến
một bộ nhớ (bộ nhớ không hỗ trợ nhiều truy cập). Ví dụ, khi một bank nhớ đơn của bộ nhớ đơn truy cập
chứa cả các từ và dữ liệu lệnh.
Vì hầu hết các bộ xử lý DSP có cấu trúc đường ống (pipeline), việc thực hiện một lệnh đơn lẻ
thường được trải rộng trên một số chu kỳ lệnh. Do đó, các trạng thái đợi do xung đột có thể xảy ra ngay
cả khi thực hiện một lệnh đơn, không đòi hỏi nhiều truy cập đến một băng nhớ. Bởi vì các lệnh liền kề
có thể yêu cầu truy cập bộ nhớ cùng một lúc. Hầu như tất cả các bộ vi xử lý nhận ra nhu cầu cho các
trạng thái đợi xung đột và tự động chèn số lượng tối thiểu trạng thái đợi xung đột cần thiết. Trừ một số
bộ xử lý họ DSP16xx AT&T (DSP1604, DSP1605 và DSP1616). Các bộ xử lý này cố gắng để lấy các từ
(words) từ cả bộ nhớ dữ liệu và chương trình bên ngoài trong 1 chu kỳ lệnh, kết quả là lấy được từ
(word) trong chương trình chính xác, còn từ (word) dữ liệu lấy được là không hợp lệ.
+ Bộ nhớ chậm
Hầu hết các bộ vi xử lý DSP đều chứa 1 hoặc nhiều băng nhớ nhỏ truy cập nhanh on-chip RAM và
/hoặc ROM mà cung cấp 1 hoặc nhiều truy cập trên mỗi chu kỳ lệnh.
Trong nhiều trường hợp, có thể mở rộng bộ nhớ bằng cách sử dụng bộ nhớ off-chip. Tuy nhiên bộ
nhớ off-chip chậm trong việc hỗ trợ truy cập bộ nhớ đầy đủ trong vòng một 1 kỳ lệnh. Điều này sẽ tiết

kiệm chi phí vì các chip nhớ tốc độ chậm hơn là rẻ hơn so với những chip nhanh hơn. Trong các trường
hợp này, bộ vi xử lý được cấu hình để chèn các trạng thái đợi lập trình được (programmed wait states)
trong quá trình truy cập bộ nhớ ngoài. Các trạng thái đợi được cấu hình bởi các nhà lập trình để làm
chậm việc truy cập bộ nhớ của bộ vi xử lý cho phù hợp với bộ nhớ tốc độ chậm. Một số bộ vi xử lý có
thể được lập trình để sử dụng các số trạng thái đợi được lập trình khác nhau khi truy cập vào các vùng
khác nhau của bộ nhớ off-chip. Vì vậy sự kết hợp cho hiệu quả chi phí giữa bộ nhớ tốc chậm hơn và
nhanh hơn có thể được sử dụng.
+ Chia sẻ bus
Một số hệ thống không thể dự đoán trước chính xác có bao nhiêu trạng thái đợi yêu cầu truy cập
bộ nhớ ngoài (externally requested wait states). Ví dụ khi các bộ xử lý chia sẻ một bus nhớ bên ngoài
cho 1 hoặc nhiều bộ xử lý khác, bộ vi xử lý đó có thể sẽ phải đợi bộ xử lý khác không sử dụng bus trước
khi thực hiện truy cập bộ nhớ của mình. Tương tự nếu bộ nhớ động (DRAM) được sử dụng, bộ vi xử lý
có thể phải đợi trong khi bộ điều khiển DRAM làm tươi DRAM. Trong các trường hợp này, bộ vi xử lý
phải có khả năng tự động chèn các trạng thái đợi yêu cầu bên ngoài đến khi nó nhận được một tín hiệu
từ 1 bus ngoài hoặc bộ điều khiển bộ nhớ ngoài thông báo bộ nhớ ngoài sẵn sàng hoàn tất việc truy cập.
Ví dụ, bộ vi xử lý TMS320C5x của Texas Instruments cung cấp một pin READY được sử dụng bởi phần
cứng bên ngoài để báo hiệu cho bộ vi xử lý phải đợi truy cập bên ngoài.
Độ dài một trạng thái đợi của 1 bộ vi xử lý phụ thuộc vào độ dài một chu kỳ lệnh của bộ vi xử lý đó. Độ
dài trạng thái đợi từ ¼ -> 1 chu kỳ lệnh (như DSP32C AT & T có độ dài trạng thái đợi = ¼ chu kỳ lệnh). Trạng
thái đợi ngắn hơn cho phép hệ thống hoạt động nhanh hơn, vì thời gian trễ (từ thời điểm bộ nhớ ngoài sẵn sàng
truy cập đến thời điểm trạng thái đợi kết thúc và bộ vi xử lý bắt đầu truy cập) sẽ ngắn hơn.
Câu số 8: Trình bày cơ chế hỗ trợ đa bộ xử lý DSP trong việc ghép nối với bộ nhớ ngoài và hãy
lấy ví dụ cụ thể cho bộ xử lý TMS 320C5x?
Cung cấp nhiều cổng bộ nhớ bên ngoài:
Cung cấp cơ chế để đàm phán quyền điều khiển bus (bus arbitration)
Hệ thống chia sẻ bus: 2 chân của bộ xử lý bus:
+ Yêu cầu bus: Bộ trọng tài bus bên ngoài (một bộ xử lý khác or phần cứng khác) có yêu cầu sẽ gửi
tín hiệu bus request tới bộ xử lý DSP
+ Nhường bus: Bộ xử lý DSP sẽ hoàn thành các truy cập bộ nhớ đang thực hiện, từ bỏ bus và thông
báo lại bằng tín hiệu bus grant

Ví dụ cho bộ xử lý TMS 320C5x:
Cho phép thiết bị bên ngoài truy nhập bộ nhớ on-chip của bộ xử lý:
HOLD’
HLDA’
BR’
IAQ’

HOLD tương đương với bus request
HOLDA tương đương với bus grant
Để thực hiện thiết bị ngoài truy nhập bộ nhớ on-chip trên chính nó, thiết bị ngoài trước tiên xác nhân
thông tin đầu vào HOLD. Khi bộ xử lý trả lời bang xác nhận HOLDA, thì bộ nhớ ngoài xác nhân
BR chỉ dẫn rằng nó muốn truy nhập bộ nhớ on-chip trên TMS320C5x. TMS320C5x trả lời bởi xác
nhân IAQ. Bộ nhớ ngoài có thể đọc và ghi trên bộ nhớ on-chip TMS320C5x bời trình đường điều
khiển địa chỉ, dữ liệu, đọc và ghi TMS320C5x. Sauk hi hoàn thành thiết bị ngoài xẽ hủy xác nhận
HOLD và BR. Việc này cho phép tạo nhiều hệ thống đa xử lý mà không yêu cầu chia sẻ bộ nhớ cho
việc truyền thông giữa các bộ xử lý.
Thiết bị nhớ ngoài
TMS 320C5x
Bộ nhớ on-
chip
Một số kỹ thuật chia sẻ bus khác:
Bus locking: cho phép 1 bộ xử lý đọc giá trị của một biến từ bộ nhớ, thay đổi nó và ghi giá trị mới
cho bộ nhớ trong khi vẫn đảm bảo chuối hoạt động không bị ngắt bởi bộ xử lý khác cập nhận giá trị.
Phương pháp này đôi khi còn gọi là atomictest-and-set.
Câu hỏi 9: Hãy trình bày các chế độ địa chị sử dụng trong các bộ xử lý DSP và lấy ví dụ minh họa.
Các chế độ địa chỉ:
-Ngầm định: Implied Addressing
Ví dụ: * (tương đương P = X * Y)
-Tức thì: Immediate Data
Ví dụ: AX0 = 1234

-Trực tiếp bộ nhớ: Memory - Direct Addressing
Ví dụ: AX0 = DM(1000)
-Trực tiếp thanh ghi: Register-Direct Addressing
Ví dụ: SUBF R1, R2
-Gián tiếp thanh ghi:
Ví dụ DSP32XX: A0 = A0 + *R5
-Gián tiếp thanh ghi với chỉ số: Register-Indirect Addressing with index
Ví dụ DSP5600x: MOVE Y1,X:(R6+N6)
-Gián tiếp thanh ghi theo modulo: Register-Indirect Addressing with Modulo Address Arithmetic
Ví dụ quản lý bộ đệm vòng (circular buffer management).
Bắt đầu bộ đệm: M.K, 2^K >= N
Với N = 48 -> K = 64
Bộ đệm: 0->63, 64 -> 127
-Gián tiếp thanh ghi với đảo bit: Register-indirect addressing with bit reversal
Ví dụ thiết lập một bit trong thanh điều khiển
-Chế độ địa chỉ trực tiếp bộ nhớ có phân trang: Paged memory-direct addressing
Ví dụ TMS320C2x: 64 Kwords : 16 địa chỉ, chỉ sử dụng 7 bit
Câu hỏi 9b: Hãy trình bày và lấy ví dụ minh họa chế độ địa chỉ gián tiếp thanh ghi có đảo bít, chế
độ địa chỉ trực tiếp bộ nhớ có phân trang.
- Chế độ địa chỉ gián tiếp thanh ghi có đảo bít:
- Chế độ địa chỉ trực tiếp bộ nhớ có phân trang: Trong địa chỉ này 1 thanh ghi đặc biệt để lưu trữ
số trang hoặc đoạn bộ nhớ đc truy cập, địa chỉ của 1 từ trong trang được tính = giá trị tương đối
của từ cần truy nhập so với đầu ra. Ví dụ: TMS320c2x và TMS320c5x nếu không phân trang,
chúng ta phải sử dụng tới 64kword, cần 16 bit địa chỉ, thay vào đó khi phân trang ta cần 7 bít địa
chỉ. Tức là 2^7=128word, tức mỗi trang chứa 128word. Chương trình lựa chọn 1 trang bằng các
tải 1 trang vào thanh ghi.
II: DSP lập trình
Câu hỏi 1: Hãy trình bày các chức năng của module cơ bản trong KIT DSK C6713
- AIC23: module có 32 bit Stereo Codec cho đầu vào và đầu ra, cung cấp bộ chuyển đổi ADC và DAC.
- EMIF (extended memory interface): dùng để ghép các bộ nhớ mở rộng (CPLD, Flash, SDRAM)

- HPI (Host Port Int): Module cho phép ghép nối với cổng bên ngoài.
- Sử dụng bộ xử lý tín hiệu số TMS 320 C6713 với tần số dao động 225MHz
- Sử dụng bộ mã hóa Stero Codec AIC23 CTL (3200AIC)
- Sử dụng RAM 8 Mbytes
- Bộ nhớ Flash 512 Kbytes (256 Kbytes sử dụng để cấu hình mặc định)
- Thiết bị ngoại vi: 4 đèn LED và Switch hiển thị
- KIT DSK C6713 có giao tiếp chuẩn với Daughter Card (là một board mở rộng nhưng có thể truy
nhập trực tiếp vào các thành phần chính của DSK và gửi dữ liệu thông qua các bus mở rộng) đó là
CPLD
- CPLD +) cho phép kết nối các thành phần trên KIT
+) Cho phép đọc các thanh ghi
+) Bốn thanh ghi điều khiển trạng thái cho phép cấu hình đặc tính của DSK: điều khiển
Daughter Card, đèn LED, cho phéo ghép nối với bên ngoài.
- Nạp chương trình với chuẩn JTAG với đầu cắm USB
- Sử dụng nguồn một chiều 5v
- McBSP: kênh ghép nối trực tiếp cổng Audio với cổng tuần tự, truyền từng bit 1, được nối với bộ nhớ
mở rộng
- MUX: bộ dồn kênh
-
Câu hỏi 2: Hãy trình bày các chức năng của module cơ bản trong bộ xử lý TMS 320 C6713
- EMIF (Extended Memory Interface): ghép nối với bộ nhớ mở rộng
- HPI (Host Port Interface): cho phép ghép nối với cổng bên ngoài
- MCASP (Multichanel Audio Serial Port) kênh ghép nối trực tiếp Audio (truyền và nhận audio). 2
module McASP0 và McASP1
 Cho ứng dụng Audio nhiều kênh bằng cách tối ưu cổng Audio Serial
- McBSP (Multichanel Buffered Serial Port): kênh ghép nối trực tiếp kênh audio tuần tự, có bộ đệm đa
kênh sẽ được ghép nối với bộ cache với cổng tuần tự , truyền từng bit 1
- I2C: để ghép nối với các IC bên ngoài
- Timer: tạo bộ đếm
- GPIO (General-Purpose Input/Output): ghép nối vào ra dữ liệu bên ngoài

- Interrupt Selector: bộ chọn bộ ngắt (ngắt che được và ngắt không che được)
- Power Down Logic: bộ điều khiển nguồn vào/ra của hệ thống
- Root Confir: cấu hình xem Boot ở đâu
- Instruction Fetch: nhận lệnh
- Instruction ….: gửi lệnh
- Instruction Decode: giải mã lệnh
Câu hỏi 3: Hãy trình bày các khối cơ bản của module McBSP trong BXL C6713. Mô tả quá trình
truyền nhận dữ liệu qua khối này. (page 93)
- Dữ liệu vào (âm thanh thu âm) vào DR theo từng bít 1 -> vào RSK (thanh ghi dịch nhận) vào
RBR (thanh ghi đệm nhận) -> giải nén -> đến DRR (thanh ghi nhận dữ liệu) -> qua DMA -> ghi
vào trong bộ nhớ.
- Dữ liệu ra (âm thanh thu âm được lưu trong bộ nhớ) -> đến DMA -> đến DXR (thanh ghi gửi dữ
liệu) -> nén dữ liệu -> thanh ghi dịch truyền (XSR) vào ra DX -> dữ liệu ra
- CLKX: đồng bộ tín hiệu truyền
- CLKR: đồng bộ tín hiệu nhận
- FSX: đồng bộ Frame truyền
- FSR: đồng bộ Frame nhận
- RINT: Nhận ngắt
- XINT: truyền ngắt
- SPCR: Serial Port Control Register (thanh ghi điều khiển cổng nối tiếp)
- RCR: Receive Control Register (thanh ghi điều khiển nhận)
- XCR: Transmit Control Register (thanh ghi điều khiển truyền)
- SRGR: Sample Rate Generator Register (thanh ghi phát ….)
- PCR: Pin Control Register (thanh ghi điều khiển chân Pin)
- MCR: Modem Control Register (thanh ghi điều khiển modem)
- RCER: Receive Channel Enable Register (thanh ghi hỗ trợ lệnh nhận)
- XCER: Transmit Channel Enable Register (thanh ghi hỗ trợ lệnh truyền)

×