2016-06-24 25 views
5

Giáo viên của tôi có xu hướng cho chúng tôi một vấn đề hàng năm trong trận chung kết và dường như không ai cho anh ấy kết quả mong đợi. Cá nhân tôi không có bất kỳ đầu mối nào để giải quyết nó. Chúng ta hãy xem xét một mảng các hằng số A[a0 a1 a2 a3 a4 a5 a6 a7], trong đó mỗi phần tử là một số tự nhiên trên 16 bit và một mảng U của các phần tử được mua trong thời gian thực U=[u0 u1 u2 u3 u4 u5 u6 u7] trong đó mỗi phần tử được căn trái và được biểu diễn trên 12. bits.The sản phẩm dấu chấm của hai vectơ là Y=A*U^ trong đó ^ là toán tử chuyển vị.Sản phẩm Dot trên 8086 và bộ vi xử lý DSP

a) Viết trình tự lệnh để tính toán sản phẩm dấu chấm Y xem xét tất cả các giá trị số có sẵn tại địa chỉ liên tiếp. Xét cho mỗi lệnh một máy chu kỳ như thời gian thực hiện, đánh giá thời gian thực hiện Y. Kết quả cuối cùng sẽ được lưu trữ trong sổ đăng ký chung.

b) Giải thích các thành phần của khối phần cứng của một bộ vi xử lý DSP mà cho phép thời gian thực hiện giảm cho Y.

Từ quy mô điều chỉnh tôi có thể tìm thấy:

a)

  1. Quản lý bộ nhớ danh sách các hệ số và bộ đệm tròn để lấy mẫu) 1p

  2. Chính quyền của con trỏ địa chỉ 0.5p

  3. Các nhân và các hoạt động bổ sung (toán hạng kích thước và kích thước của của kết quả) 1p Việc thực hiện theo chu kỳ để đạt được kết quả 0,5 tr.

b)

  1. quản lý khác nhau oof bộ nhớ, quản lý phần cứng song song của con trỏ 1p
  2. Chỉ thị của loại Multiply và Thêm 0,5 p
  3. Nhiều hướng dẫn để thực hiện song song 0,5 p
  4. Hướng dẫn cyclic của loại zero overhead 1p
  5. Interr yêu cầu uption từ một bộ đếm thời gian cho việc tạo thời gian lấy mẫu 1p
  6. Việc mua mẫu hiện tại 1p
  7. Việc đánh giá chương trình con gián đoạn. 0.5p
  8. Mối quan hệ giữa khoảng thời gian lấy mẫu và thời gian thực hiện thường xuyên gián đoạn. 0.5p

Đối với tác vụ đầu tiên, tôi có một số ý tưởng.Hãy cho chúng tôi gợi ý rằng ngay cả khi giá trị U trên 12 bit, bộ xử lý 8086 sẽ tìm 16 bit và điều này có vẻ là thứ tất cả những sinh viên khác dường như không quan sát. Vì mục thứ hai tôi không có đầu mối.

+0

Câu hỏi của bạn là gì? – fuz

Trả lời

3

Một số hướng dẫn chung:

  • Tránh phải sử dụng một tiền tố phân khúc override để giải quyết các dữ liệu. Trên một tiền tố 8086 như vậy phải chịu một hình phạt 2 đồng hồ.
  • Đảm bảo dữ liệu được căn chỉnh từ. 8086 có một hình phạt 4 đồng hồ khi giải quyết một từ trên một địa chỉ lẻ.
  • Không sử dụng dịch chuyển/xoay với số lượng trong sổ đăng ký CL. Một loạt các ca/​​luân phiên đơn lẻ nhanh hơn nhiều.
  • Ngay cả khi kết quả cuối cùng cần phải có trong bộ nhớ, không được sử dụng bộ nhớ đó nhiều lần trong các phép tính. Sử dụng thanh ghi tạm thời và chỉ chuyển kết quả ở cuối.

Đây là một phiên bản của tính toán dấu chấm sản phẩm:

xor bx, bx    ;3 
    xor cx, cx    ;3 
    mov si, 14    ;4 
Again: 
    mov ax, [U + si]   ;8 + EA (=9) 
    shr ax, 1     ;2 
    shr ax, 1     ;2 
    shr ax, 1     ;2 
    shr ax, 1     ;2 
    mul word ptr [A + si]  ;124-139 + EA (=9) 
    add bx, ax    ;3 
    adc cx, dx    ;3 
    sub si, 2     ;4 
    jnb Again     ;16 if taken, 4 if not taken 
    mov ax, bx    ;2 
    mov dx, cx    ;2 

Kể từ khi cho mảng U "mỗi phần tử được còn liên kết và được biểu diễn vào ngày 12 bit" hàng loạt các thay đổi bình thường hóa giá trị .
Bằng cách lặp lại bắt đầu từ cuối của cả hai mảng, cmp bị tránh trên điều khiển vòng lặp.
Chuyển kết quả sang DX: AX có vẻ tự nhiên hơn. Để được loại bỏ nếu không cần thiết.

mul triển lãm lần thực hiện biến có 2 trường hợp để xem xét:

  • trường hợp tốt nhất thời gian thực hiện là: 10 + (168 + 16) * 7 + (168 + 4) + 4 = 1474 đồng hồ
  • trường hợp xấu nhất thời gian thực hiện là: 10 + (183 + 16) * 7 + (183 + 4) + 4 = 1594 đồng hồ

một phần unrolling sẽ tiết lộ một sự gia tăng tốc độ 5% tại các chi phí của ít comp mã hành động (từ 36 byte đến 56 byte).

xor bx, bx    ;3 
    xor cx, cx    ;3 
    mov si, 10    ;4 
Again: 
    mov ax, [U + si + 2]  ;8 + EA (=9) 
    shr ax, 1     ;2 
    shr ax, 1     ;2 
    shr ax, 1     ;2 
    shr ax, 1     ;2 
    mul word ptr [A + si + 2] ;124-139 + EA (=9) 
    add bx, ax    ;3 
    adc cx, dx    ;3 
    mov ax, [U + si]   ;8 + EA (=9) 
    shr ax, 1     ;2 
    shr ax, 1     ;2 
    shr ax, 1     ;2 
    shr ax, 1     ;2 
    mul word ptr [A + si]  ;124-139 + EA (=9) 
    add bx, ax    ;3 
    adc cx, dx    ;3 
    sub si, 4     ;4 
    jnb Again     ;16 if taken, 4 if not taken 
    mov ax, bx    ;2 
    mov dx, cx    ;2 
  • trường hợp tốt nhất thời gian thực hiện là: 10 + (332 + 16) * 3 + (332 + 4) + 4 = 1394 đồng hồ
  • Trường hợp xấu nhất thời gian thực hiện là: 10 + (362 + 16) * 3 + (362 + 4) + 4 = 1514 đồng hồ
Các vấn đề liên quan