คำแนะนำทวีคูณทำงานอย่างไรใน 68ks ต่างๆ?

Wilson 09/19/2018. 2 answers, 310 views
m68k

pndc พูดเกี่ยวกับ 68000 :

คำสั่ง [... ] MULU / MULS นั้นช้ามากใช้เวลาประมาณ 70 รอบ จำนวนรอบที่แน่นอนขึ้นอยู่กับข้อมูลเพราะไมโครโค้ดใช้อัลกอริทึมซ้ำ)

ดังนั้น (สมมติว่า pndc นั้นถูกต้องและ 68000 นั้นเป็นไมโครโค้ด) "อัลกอริทึมซ้ำ" คืออะไร? ฉันสามารถจินตนาการถึงสิ่งที่ไร้เดียงสาเช่น

(let (mulu_impl (lambda (ct x y)
    (if (eq? ct 0) 
        y
        (mulu_impl (decrement ct) x (add x y))))))
(mulu (lambda (x y) (mulu_impl x x y))
(* untested; could be full of brainfarts *) 

ซึ่งโดยทั่วไปจะนับ x ลง, เพิ่ม x เก่าไปยัง y ในแต่ละครั้ง แต่นี่จะไร้เดียงสาและช้าสำหรับค่า x จำนวนมาก พวกเขาอาจจะมีเคล็ดลับที่ดีกว่า

comp.sys.m68k faq พูดเกี่ยวกับ 68060 :

ชิปนั้นเดินสายทั้งหมด - ไม่มีไมโครโค้ดอยู่ในนั้น

ฉันพบว่าคำพูดนี้ค่อนข้างยากที่จะเชื่อเนื่องจากฉันคิดว่าถ้าคุณใช้บางสิ่งที่ซับซ้อนโดยไม่ต้องใช้ไมโครโค้ดคุณจะลดความเร็วสัญญาณนาฬิกาเพื่อลดความล่าช้าในการแพร่กระจายสัญญาณ ฉันอาจจะผิด แต่ถ้าเป็นเช่นนั้นฉันเดาว่า MULU / MULS จะต้องถูกนำไปใช้งานที่แตกต่างจากสิ่งที่ฉันทำใน Lisp ที่นั่น

ตัวคูณใช้งานอย่างไรใน 68000 และ 68060

2 Answers


Dr Sheldon 09/20/2018.

แม้ว่าฐานข้อมูลของฉันจะไม่มีการระบุโดยตรงว่าจะทำการคูณเราสามารถอนุมานหลายสิ่งจากสิ่งที่พวกเขาพูด

สำเนา คู่มือผู้ใช้ไมโครโปรเซสเซอร์ M68000 8- / 16- / 32- บิตของฉัน แสดงเวลาดำเนินการของคำแนะนำทวีคูณ MC68000 ในหน้า 8-4:

MULS    70(1/0)+*
MULU    70(1/0)+* 

โดยที่ 70 คือจำนวนรอบของตัวประมวลผล 1 หมายถึงหนึ่งรอบการอ่าน, 0 หมายถึงไม่มีรอบการเขียน, + หมายถึงรอบเพิ่มเติมเพื่อดึงที่อยู่ที่มีประสิทธิภาพที่ควรเพิ่มและ * หมายถึงจำนวน 70 คือจำนวนรอบสูงสุด ด้านล่างนี้เป็นข้อความที่ @DroidW พูดในคำตอบของเขา

ในหน้า 10-5 ของฐานข้อมูลเดียวกันเวลาดำเนินการสำหรับ MC68010 จะแสดงรายการ:

MULS    42(1/0)+*
MULU    40(1/0)* 

โปรดทราบว่าจำเป็นต้องใช้วงจรนาฬิกาน้อยลงสำหรับโปรเซสเซอร์นี้ ฉันไม่แน่ใจว่าทำไมคำสั่ง MULU นี้จึงขาดเครื่องหมาย + สำหรับการคำนวณที่อยู่ที่มีประสิทธิภาพ (อาจเป็นตัวพิมพ์ใหญ่) นอกจาก this ตาราง this ยังไม่มีข้อความที่ @DroidW พูดในคำตอบของเขา

MC68000 ใช้ ไมโครโค้ด แน่นอน (และในบางกรณี nanocode) หน่วยประมวลผลมีตรรกะการผสมไม่เพียงพอที่จะทำการคำนวณการคูณที่สมบูรณ์ในรอบเดียว แต่จะเป็นการดำเนินการขั้นพื้นฐานซ้ำ ๆ โดยมีการวนซ้ำควบคุมโดยไมโครโค้ด ไม่มีชิฟเวอร์บาร์เรลเพียงแค่การเปลี่ยนบิตเดียว

ลองเรียกตัวคูณ D , ตัวคูณ R และผลิตภัณฑ์ P


ในการคูณตัวเลขที่ unsigned (MULU) เราดำเนินการอัลกอริทึมการคูณแบบยาว:

(1) ล้างผลิตภัณฑ์ P = 0

(2) Shift P เหลือหนึ่งบิต

(3) Shift D เหลืออีกหนึ่งบิตและตรวจสอบบิตขยับออก (MSB) หากเป็นศูนย์ให้ข้ามไปที่ขั้นตอนที่ 5

(4) เพิ่ม R ให้กับผลิตภัณฑ์ P

(5) ทำซ้ำขั้นตอนที่ 2 ถึง 4 สำหรับแต่ละบิตของ D

เนื่องจากสาขาในขั้นตอนที่ 3 ข้ามไปขั้นตอนที่ 5 จึงเหมาะสมที่จำนวนรอบจะขึ้นอยู่กับ 2x (จำนวนของคนใน Multiclicand) นี่เป็นการยืนยันในใบเสนอราคาของ @ DroidW

ในชิปต่อมาเช่น 68010 เราสามารถเพิ่มตรรกะเพิ่มเติมเพื่อทำตามขั้นตอนที่ 2 ถึง 4 แบบขนาน นอกจากนี้แทนที่จะแยกสาขาในขั้นตอนที่ 3 เราสามารถซ่อน R จากบิตจากขั้นตอนที่ 3 แล้วเพิ่มผลลัพธ์นั้นลงใน P มาตรการเหล่านี้ลดจำนวนรอบเครื่อง

ในตัวประมวลผลในภายหลังคุณสามารถยกเลิกการวนรอบและใช้โปรแกรมเสริมจำนวนมาก ใช้ฮาร์ดแวร์มากขึ้นและยากต่อการออกแบบ แต่เร็วกว่ามาก ตัวอย่างเช่นการคูณเลขฐานสอง 1101 และ 0101 :

1101  value of R
  1101   value of R
 0000    R is masked
0000     R is masked
=======
0100111 

ในการคูณตัวเลขที่ signed (MULS) เราใช้ อัลกอริทึมของบูธ

(1) ตั้งค่า P เป็น D บิตเพิ่มเติมจะถูกเพิ่มทางด้านขวา (LSB ใหม่) ซึ่งเริ่มต้นเป็นศูนย์

(2) ตรวจสอบสองบิตที่มีนัยสำคัญน้อยที่สุดของ P ถ้า 01 ทำต่อในขั้นตอนที่ 3 ถ้า 10 ข้ามไปขั้นตอนที่ 4 มิฉะนั้นข้ามไปขั้นตอนที่ 5

(3) เพิ่ม R ไปยังคำบนของ P ข้ามไปยังขั้นตอนที่ 5

(4) ลบ R จากคำบนของ P

(5) เลื่อน P ทางคณิตศาสตร์ไปทางขวาหนึ่งบิต

(6) ทำซ้ำขั้นตอนที่ 2 ถึง 5 สำหรับบิตทั้งหมดของ D

อย่างที่คุณเห็นมีงานที่ต้องทำมากกว่าเมื่อเห็นรูปแบบบิต 01 และ 10 นี่เป็นการยืนยันโดยคำพูดของ @ DroidW

ในโปรเซสเซอร์ขั้นสูงคุณสามารถยกเลิกการเปิดใช้อัลกอริทึมนี้โดยใช้ฮาร์ดแวร์


DroidW 09/19/2018.

ไม่ใช่คำตอบ แต่การมีส่วนร่วมของฉัน (พบได้ ที่นี่ เครดิต witbrock@cs.cmu.edu ):

DIVS,DIVU - The divide algorithm used by the MC68000 provides less
        than 10% difference between the best and the worst case
        timings.    
MULS,MULU - The multiply algorithm requires 38+2n clocks where
        n is defined as:        
    MULU: n = the number of ones in the          
    MULS: n = concatanate the  with a zero as the LSB;
          n is the resultant number of 10 or 01 patterns
          in the 17-bit source; i.e., worst case happens
          when the source is $5555 

ขอแสดงความนับถือ.


HighResolutionMusic.com - Download Hi-Res Songs

1 AJR

Birthday Party flac

AJR. 2019. Writer: Adam Met;Jack Met;Ryan Met;Peter Ivers;David Lynch.
2 Loote

Your Side Of The Bed flac

Loote. 2018. Writer: ​Jesse Saint John;Jackson Foote;Emma Lov Block.
3 AJR

100 Bad Days flac

AJR. 2019. Writer: Jack Met;Adam Met;Ryan Met.
4 Joe Jonas

Longer Than I Thought flac

Joe Jonas. 2018. Writer: Patrick Nissley;Jackson Foote;Dave Katz.
5 Loote

Out Of My Head flac

Loote. 2018. Writer: Emma Lov Block;Michael Pollack;Jeremy Dussolliet;Jackson Foote.
6 Iselin Solheim

Anyone Out There flac

Iselin Solheim. 2019. Writer: Iselin Solheim;Max Grahn.
7 Loote

Wish I Never Met You flac

Loote. 2018. Writer: Jackson Foote;Alex Peter Koste;Jeremy Dussolliet;Emma Lov Block.
8 Kim Petras

Heart To Break flac

Kim Petras. 2018. Writer: Cirkut;Aaron Joseph;Dr. Luke;Jacob Kasher;Kim Petras.
9 A L E X

Out On The Trampoline At Night flac

A L E X. 2018. Writer: A L E X.
10 A L E X

I Want To Hold Your Hand flac

A L E X. 2018. Writer: A L E X.
11 A L E X

Field flac

A L E X. 2018. Writer: A L E X.
12 A L E X

Save Me flac

A L E X. 2018. Writer: A L E X.
13 Devin

Summer Lover flac

Devin. 2019. Writer: Tommy Lee James;Stuart Crichton;Oliver Heldens;Nile Rodgers;Devin Guisande.
14 A L E X

9 To 5 flac

A L E X. 2018. Writer: A L E X.
15 A L E X

Skirt flac

A L E X. 2018. Writer: A L E X.
16 Florian Picasso

Midnight Sun (Extended Version) flac

Florian Picasso. 2019.
17 Florian Picasso

Midnight Sun flac

Florian Picasso. 2019.
18 21 Savage

Enzo flac

21 Savage. 2019. Writer: YungLunchBox;Sheck Wes;Offset;Gucci Mane;21 Savage;DJ Snake.
19 Tales Of Ratatösk

Battle Of The Doomed Gods 320kbps

Tales Of Ratatösk. 2019.
20 Tales Of Ratatösk

Andro 320kbps

Tales Of Ratatösk. 2019.

Related questions

Hot questions

Language

Popular Tags