Beregning af "delay loop" på 8088

Hej,

Jeg sidder og beregner nogle delay-loops til 8088. Kan det virkelig passe at der ikke er nogen instruktioner på denne, der tager mindre end 2 clock-cycles? Selv NOP tager 3. Hvordan kan det være? Nogen der kender en smart måde at beregne delay-loops på?

--
Med venlig hilsen
Jonas Jalling
Reply to
Jonas Jalling
Loading thread data ...

Ja, det lyder rimeligt.

Det er en gammel processor, som ikke er pipelinet.

Saglige Z80 (som bl.a. sad i Sinclair ZX-80/81 og Spectrum) brugte som minimum 4 clocks per cycle. En 16-bit operation tog 5 cycles.

På 8088 er der bare at gå igang med at tælle clock cycles.

Kai

--
Kai Harrekilde-Petersen
Reply to
Kai Harrekilde-Petersen

at

8088 er antik, så det lyder rimeligt

Jeg har tidligere set nogen tage listfilen og flytte ind i et regneark, og så ellers gå i gang derfra, med at skrive cycles ud for hver linje, og bruge arket til at lave beregninger.

Bo //

Reply to
Bo Bjerre

.... og en 'rigtig' 8051 tager 12 ....*S*

Reply to
Finn Bindeballe

"Jonas Jalling" skrev i en meddelelse news:413a0366$0$214$ snipped-for-privacy@news.sunsite.dk...

at

Smid processoren væk og brug en PIC. Den har en RISC kerne så nææsten alle instruktioner kun tager en clock. Desuden har den indbyggede timere så man kan lave et RIGTIGT delay uden nogensinde at miste noget af precisionen.

-- Tom

Reply to
Tom

passe

Hmmmm....

-det er faktisk lige ved at en PIC18 type kan klare styringsopgaver lige så hurtigt som en 8088, men hvis det er et skoleprojekt (historieundervisning), kan det jo være at processoren er påtvunget.

Bo //

Reply to
Bo Bjerre

Du har helt ret. Vi er blevet påtvunget den pågældende processor... til historieundervisning - hehe. Grunden til at jeg spurgte om beregning, er fordi jeg har set et program til beregning af delay-loops på atmel i stedet og tænkte derfor at det måtte være muligt at lave noget lignende.

--
Med venlig hilsen
Jonas Jalling
Reply to
Jonas Jalling

Den Sun, 5 Sep 2004 19:39:30 +0200, "Bo Bjerre" skrev:

Orh... den er jo kun 25 år gammel :-)

--
Jens   OZ2JP   callto://jensep

Excessive mouse activity detected.  Running CAT.EXE to fix.
Reply to
Jens Petersen

Det er da altid muligt at miste precisionen, hvis er klumpe-dumpe. Timeren styrer et interrupt og programmeres denne rutine dårligt, så er man lige vidt. Nu ved jeg ikke hvorfor han har gang i en 8088. Men min nevø har lige haft et skoleprojekt, og i den sammenhæng er det PIC'en der er værdiløs, læs opgaven skulle løses med en 8088 :-). Og nu er det vel også sådan at hvis du skal anvende et delay kan det for det meste også ske i en 8088, hvis det gøres rigtigt.

Reply to
Klavs Rommedahl

alle

man

Tja mod direkte FEJL er selv den bedste processor magteløs :o)

De samples man kan hente virker ganske godt.

Gosh mand, de lærere :o) Hvad er dog meningen med at lære om noget som ingen bruger mere i dag....(jaja ved godt at mars-bilen og eurochannels samt danbit har noget embedded print med 8088)

Tja eller en extern 8255 hvis vi skal blive i de kære gamle kredse.

-- Tom

Reply to
Tom

Der har _ALDRIG_ eksisteret en PIC controller fra MicroCrap der har præsteret 1 instruktion pr clock cycle.

Endnu en grund til ikke at anvende PIC....

/Madsen

Reply to
Lasse Madsen

Øh, hvis man ser groft på det,så køre en PIC18F kreds, med en 10MHz crystal jo 10MIPS, når den 4* PLL er slået til :) så deeet...

Hvad er det laveste strømforbrug en typisk Atmel køre med mester :) så skal du se hvorfor en PIC er god til mange ting, især serierne med navnet NanoWATT ..

På den anden side, så er denne diskution håbløs, og svare til at diskutere hvorfor den ene kristen frem for muslim og visevasse :)

--
VH
Lars Molnit
 Click to see the full signature
Reply to
Moller

Hej Lars

Ja men den bruger jo stadig 4 clock cycles på 1 instruktion fra krystallet ... det er det vi taler om :o)

Min ATm48 bruger lidt under 15uA (Ja der står mikro) og omkring 100nA i standby P = U*I = 1,8V*15uA = 27uW i aktiv modus og 180nW i standby ... og ved det strømforbrug kører jeg min lidt under 32KHz hvad kører pic'en der ? 1Hz divideret med de 4 cycles eller hva :o)

/Madsen

Reply to
Lasse Madsen

Ikke den krig igen. Jeg bliver hedning :-))

Bo //

Reply to
Bo Bjerre

ved 25grader, altså alm. drift... så ligger den på 13uA (ja, hvis ik der stod mikro ville jeg studse over det), men den køre min. 2V.. så P =

2V*13uA = 26uW .. så der er PIC'en til fordel... men i standby er de ens, nemlig 100nA, men pga. de 2V... så slår Atmel den med 20nW :( her er det så den interne OSC, der køre, og med de sædvanlige 32kHz

Har Atmel fået justerbar OSC. i ?? som PIC'en har... den interne kan justeres op og ned mellem 32KHz, 125kHz, 250kHz, 500kHz, 1MHz, 2MHz,

4MHz og 8MHz, så man altid kan sætte den til hastighed vs. energi forbrug, alt efter opgaven.

Det som jeg ser som den største fordel med PIC, er det kanon store produktudvalg, så jeg kan vælge præcis den PIC der er mest optimal til den opgave der skal løses, derved er der store mulgiheder i plads/pris optimering, samt man kan lave en robust kode, når man vælger en PIC hvor så mange ting af dem man skal lave, foretages i Hardware enhederne, ala timer, SPI, PWM, osv... men jeg indrømmer da også klart at en Atmel har mere regnekraft (er det ik 16MIPS, mod de 10MIPS maks hos PIC'en).

Men når alt kommer på bordet, så er valget af CPU helt klart, hvad man startede med, og hvad var lettest tilgængeligt... da jeg startede med PIC'en var Atmel konstant i leverings problemer, og derved valgte vi PIC'en... det betyder så nu, at vi har investeret i en masse udstyr til PIC'en ala, debugger, C-compilere, divers test board osv... og deraf bygget en kæmpe viden op omkring dem, ala hvad kan de, hvad kan de ikke... hvad skal man vælge til den enkelte opgave osv. en viden som ville være for dyr at smide væk, med et MPU skift som det står lige nu... hvis så PIC en dag begynder at halt bagud, og få leverings problemer :) så kan man overveje det, men som det er nu, har begge mærker hver sine fordele. Præcis som nogen af os køre med AMD eller Intel, eller bruger en Nvidia eller et ATI grafik kort. så længe opgaven blir løst, så er målet jo nået :)

--
VH
Lars Molnit
 Click to see the full signature
Reply to
Moller

Hvilket er grunden til jeg elsker min Z80 samling, for der er der ingen krig længere. Alle tror den er død, men den bliver da stadigt brugt i nye konstruktioner :-). Og hvorfor, klart fordi de andre er meget bedre ??? Øh not likely.

Reply to
Klavs Rommedahl

Nøjh, jeg får helt lyst til at lege med endnu en SBC :-).

Reply to
Klavs Rommedahl

"Lasse Madsen" skrev i en meddelelse news:chgaqr$16nk$ snipped-for-privacy@news.cybercity.dk...

alle

man

Næh de sælges godt nok som RISC der tager 1 clock cycle med pga. dens pipeline så kan man dele osc. freq. med 4. Det vil sige at processoren reelt kører med 5 MHz ved 20 MHz clock. Men de fleste instruktioner er bygget på RISC arkitekturen så ved 20 MHz tager hver instruktion 200 ns (5 MHz).

-- Tom

Reply to
Tom

Om en instruktion tager en eller fire cycles ka' i de fleste henseende være ret så ligegyldigt, hvis bare performance i den sidste ende er den samme.

-Lasse

Reply to
Lasse Langwadt Christensen

Bøh..

Tom skrev i artiklen ...

Nu er 8255 godt nok en parallel IO-kreds. Timerne hedder 8253 og 8254 og interruptcontrolleren hedder 8259. Og så vil jeg da bare sige at han nok være glad for ikke at skulle skrive et delay til en 32 eller 64 bit superpipelined RISC baseret processor som Atlon-64 eller Power4+... (gnæk)

Men selv den gamle 8088/8086 var pipelined og havde en instruktionskø på 4 eller 6 bytes. Afhængigt af hvor præcist loopet skal være kan der måske bruges instruktioner der tager 4, 5 eller 6 cycles at udføre. Jeg kan huske fra når jeg skrev delay-routiner til Z80 at det var muligt at ramme helt præcist ved at fylde ud men andet end nop. Måske man skulle prøve at føre tråden tilbage til det oprindelige spørgsmål ;-) Selvom 8088 hører fortiden til i PC sammenhæng er den ganske udbredt som embedded processor hvad enten der er 8088, 80188, eller 80386 og det er stadig muligt at bygge et minimalt system med en CPU, en Clockgenerator, en adresselatch, en adressedekoder samt lidt RAM, ROM og IO til f.eks undervisningsbrug.

/Lars

Reply to
Lars Peter Larsen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.