NO321931B1 - Mikroprosesseringsenhet som har programm±rbare ventetilstander - Google Patents

Mikroprosesseringsenhet som har programm±rbare ventetilstander Download PDF

Info

Publication number
NO321931B1
NO321931B1 NO20014246A NO20014246A NO321931B1 NO 321931 B1 NO321931 B1 NO 321931B1 NO 20014246 A NO20014246 A NO 20014246A NO 20014246 A NO20014246 A NO 20014246A NO 321931 B1 NO321931 B1 NO 321931B1
Authority
NO
Norway
Prior art keywords
memory
signal
logic
external
memories
Prior art date
Application number
NO20014246A
Other languages
English (en)
Other versions
NO20014246D0 (no
NO20014246L (no
Inventor
Maxence Aulas
Original Assignee
Atmel Corp A Delaware Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Atmel Corp A Delaware Corp filed Critical Atmel Corp A Delaware Corp
Publication of NO20014246D0 publication Critical patent/NO20014246D0/no
Publication of NO20014246L publication Critical patent/NO20014246L/no
Publication of NO321931B1 publication Critical patent/NO321931B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

Mikroprosesseringsenhet som har programmerbare ventetilstander
Oppfinnelsens område
Den foreliggende oppfinnelse vedrører mikroprosesseringsen-heter, og nærmere bestemt et programmerbart ventetilstands-system for I/O med eksterne enheter.
Oppfinnelsens bakgrunn
Generelt, når data utveksles mellom to enheter i et system, slik som en mikroprosesseringsenhet og en minneenhet, må systemet sikre at interaksjon mellom de to enhetene er syn-kronisert. For eksempel er dagens mikroprosessorer eller mikrokontrollere produsert med teknologi som gjør det mulig med operasjoner med svært høy hastighet. Klokkefrekvenser på 300 MHz og høyere har blitt vanlig. Perifere enheter, spesielt minneenheter slik som FLASH, SRAM og EEPROM, er imidlertid ikke i stand til å håndtere slike høye klokkefrekvenser.
En vanlig tilnærming for å synkronisere med langsommere enheter, er å variere lengden av bussyklusen til mikroprosesseringsenheten for hver enhetsadresse, som noen ganger er referert til som "busstrekking", ved hjelp av ventetilstander. Systemets adressedekoder dekoder adressen og bestemmer hvilket minne som skal velges. Systemets styrelogikk bestemmer hvorvidt minne krever en ventetilstand, og setter en ventesignallinje om nødvendig. Mikroprosesseringskjernen sampler signallinjen i løpet av en klokkesyklus, og går inn i en ventetilstand (i hovedsak en "ikke-gjør-noe-tilstand") i en klokkesyklus hvis linjen er satt. Mikroprosesseringskjernen sampler linjen ved neste klokkeflanke og gjenopptar operasjonen når ventesignallinjen er negert (ikke-satt). Dette gir den langsomme minneenheten tilstrekkelig tid til internt å dekode adressen, aksessere minnet og stabilisere data på dens utgangsbuffer.
En teknikk av teknikkens stand der det brukes ventetilstander, omfatter å lagre et ventetilstandsnummer i selve minneenheten. Beregningsenheten inneholder logikk for å aksessere dette nummeret for å bestemme tidsmengden som bussyklusen må utvides med. Denne tilnærmingen krever spesiali-serte enheter som inneholder logikk for å lagre et ventetilstandsnummer, og for å gi det til beregningsenheten.
En annen tilnærming med å bruke ventetilstander benyttes i avbruddsdrevne I/O enheter. Logikk i programdekoderen detekterer tilstedeværelsen av visse I/O instruksjoner, og setter et ventesignal for å oppholde mikroprosessorens operasjon for en tidsperiode avhengig av instruksjon. Denne tilnærmingen er nyttig for å aksessere langsomme I/O enheter, hvor mikroprosessoren pauses i løpet av en returner-fra-avbrudd instruksjon for å gi den langsomme I/O enhet tid til å utføre sin handling.
Et problem det ikke tas hensyn til av det ovennevnte er tilgang til flere minneenheter, hvor en leseaksess til den første enhet ikke gis tilstrekkelig tid til å kunne fullfø-re før aksess til andre enheter begynner, noe som resulte-rer i et bussammenstøt. Problemet stammer fra det faktum at utgangsdriveren til den første enheten fortsatt driver databussen som er felles for begge enhetene når aksess til andre enheter forekommer. Hvis ikke tilstrekkelig tid kan gå før den andre enheten gjennomfører en aksess, vil begge enhetene forsøke å drive bussen. Resultatet er fordreide data og økt effektforbruk på grunn av samtidig aksess av begge driverkretsene. Dette problemet forekommer imidlertid ikke alltid. For eksempel fører ikke etterfølgende leseoperasjoner fra samme enhet til problemer med driverkretsen. En skriveoperasjon fulgt av en leseoperasjon fører på samme måte ikke til et problem med driverkretsen.
Den europeiske patentsøknad EP-A-0 386 935 fra Canon Ka-bushiki Kaisha legger frem et informasjonsprosesserende apparat som er i stand til å variere antall ventetilstander for aksess til minnet i henhold til aksesstiden. Det ut-byttbare eksterne minnet lagrer dataene eller antall ventetilstander for aksess, og apparatet leser dataene, og sty-rer følgelig antall ventetilstander.
Den europeiske patentsøknad EP-A-0 713 170 fra NEC Corpora-tion legger frem et dataprosesserende apparat, som har en CPU-del og en BCU-del, i hvilken en klokkestyredel distri-buerer en eksternt forsynt klokke til CPU-delen og BCD delen. I løpet av en leseaksessforespørsel fra CPU-delen til en lagringsenhet utvides perioden til en CPU-klokke forsynt til CPU-delen. Tilstanden umiddelbart før CPU-klokkens flanke når CPU-delen legger inn inngangsdata via en intern databuss utvides til leste data har blitt etablert på den interne databussen.
t
Det som er nødvendig er en styrekrets i en mikroberegnings-arkitektur som detekterer aksess til flere minner og legger inn ventetilstander i henhold til typen I/O operasjon som gjennomføres. Det er ønskelig å ha en krets som kan detek-tere hvilket minne som aksesseres og legger inn ventetilstander i henhold til dette. Det er videre ønskelig å ha en krets som legger inn ventetilstander som er avhengig av I/O operasjonssekvensen som utføres.
Oppsummering av oppfinnelsen
I en beregningsenhet som har et første og et andre minne, hvor begge koples til en felles databuss, innbefatter en første utførelse av en fremgangsmåte for å aksessere minnet å knytte en første ventetilstandsverdi til det første minne, og en andre ventetilstandsverdi til det andre minne, deretter å velge et av minnene, og å lése minnet. Etter trinnet med å lese den etterfølgende l/O operasjonen, settes en beregningsenhet inn i en ventetilstand for en tidsperiode som er proporsjonal med den selekterte tilstands-verdien knyttet til det valgte minnet (det vil si ventetilstandsverdi x klokkeperiode), dersom det er besluttet at et ventetilstandskriterium er imøtekommet.
I henhold til den foreliggende oppfinnelse innbefatter en mikroprosesseringsenhet en systembuss til hvilken minst et internt og et eksternt minne, så vel som kjernelogikk som har en minnekontroller, er koblet. Kjernelogikken produserer et utgangssignal med en første logisk tilstand under en avlesningsoperasjon som aksesserer et eksternt minne og en andre logisk tilstand ellers. En ventetilstandskrets genererer et ventesignal som setter kjernelogikken i en ventetilstand når ventesignalet hevdes. En ekstern busskrets er koblet til ventetilstandskretsen som detekterer sekvensen av minneaksesser som finner sted i systembussen og produserer et utgangssignal som aktiverer deretter ventetilstandskretsen gjennom å sette kjernelogikken i en ventetilstand. Den eksterne busskretsen bruker en sammenligningskrets for å regulere signalutgangen til ventetilstandskretsen. Utgangen for den tellende kretsen og ventetilstandsverdien mottas av sammenligningskretsen som benekter eksternbuss-kretsutgangen når ventetilstandsverdien og tellekretsut-gangen er like. Et datamiddel koblet til den eksterne busskrets for lagring av en dataflytventetilstandsverdi for hver minneenhet.
Datamidlet legger ut en dataflytventetilstandsverdi til den eksterne busskretsen som respons på minneenheten som er se-lektert. Den eksterne busskretsen mottar et signal fra kjernelogikken ved tilstedeværelsen av en ekstern avlesning gjort av en aksess til et annet eksternt minne, og initierer en dataflytventetilstand i en periode som er proporsjonal med ventetilstandsverdien som korresponderer med det aksesserte minne, det vil si ventetilstand x klokkeperiode. Kjernelogikken produserer også et signal som indikerer et signal som indikerer etterfølgende avlesningsoperasjoner av det samme minnet som mottas av den eksterne busskretsen. Den eksterne busskretsens utgang til ventetilstandssignalet blir videre hevdet som en funksjon av dette etterfølgende avlesningssignalet. Hvis den eksterne busskretsen detekterer en skriveoperasjon gjort av en leseoperasjon, vil imidlertid ingen dataflytventetilstand forekomme, selv om en klassisk ventetilstand fortsatt kan forekomme. På samme måte, hvis den eksterne leseoperasjonen blir fulgt av en intern aksess, vil ingen dataflytventetilstand forekomme.
Andre utførelser i henhold til foreliggende oppfinnelse vil fremkomme av de etterfølgende selvstendige kravene.
Kort beskrivelse av tegningene
Figur 1 er et blokkdiagram over et dataprosesseringssystem i henhold til oppfinnelsen. Figur 2 er et blokkdiagram over den eksterne busskvitte-ringslogikk vist i figur 1. Figur 3 - 6 er tidsdiagrammer som illustrerer de forskjellige operasjonskonfigurasjonene i dataprosesseringssystemet i henhold til minneaksessystemet til den foreliggende oppfinnelse . Figur 7 er et blokkdiagram over den alternative utførelse av dataprosesseringssystemet.
Beste modus for å gjennomføre oppfinnelsen
I figur 1 omfatter et dataprosesseringssystem 100 i henhold til den foreliggende oppfinnelse forskjellige delsystemer organisert rundt en systembuss 120. En mikroprosesseringsenhet 110, slik som en mikrokontroller eller lignende, inneholder kjernelogikk 112 og et internt minne 114. En ekstern klokke 156 gir et klokkesignal sl30 for å drive mikroprosesseringsenheten 110. Dataoverføring mellom kjernelogikk 112 og minnet 114 foregår over den interne bussen 116. Den interne bussen er koblet til systembussen 12 0 for å tilveiebringe dataoverføring eksternt til mikroprosesseringsenheten 110. Ut av bussen 116 kommer det minneadresse-linjer sl40 som mates inn i minnekontrolleren 152. Kjernelogikken 112 tilveiebringer dataseleksjonssignal sl42, som indikerer at kjernen krever en dataoverføring (lesing eller skriving). Nærmere bestemt indikerer sl42 HØY en dataover-førselsyklus, mens signal sl42 LAV indikerer en adressesyk-lus. Dataseleksjonssignalet mates inn i minnekontrolleren 152 og inn i ventetilstandsgeneratoren 160.
Det eksterne minnet 130 og 132 er også koblet til systembussen 120. Typisk inneholder eksterne minner EEPROM, FLASH og SRAM. Minnet 130 og 132 styres av typiske styresignaler, slik som det chip-selekterte signal slOO, utgangsaktive-ringssignal sl04 og skriveaktiveringssignal sl06 for minnet 130, og det chip-selekterte signal sl02, utgangsaktiveringssignalet sl04 og skriveaktiveringssignalet sl06 for minnet 132. Disse signalene originerer i minnekontrolleren 152 avhengig av I/O operasjonen og adressen som presenteres på adresselinjene sl40. Minnekontrolleren produserer også et eksternt lesesignal sl02, som indikerer en lesesyklus for et minne som er eksternt i forhold til mikroprosesseringsenheten 110. Minnekontrolleren produserer også et suksessivt lesesignal sllO, som indikerer tilstedeværelsen av en leseoperasjon fra samme tidligere aksesserte minne.
En ventetilstandsgenerator 160 gir ut et ventesignal sl50 (aktiv HØY) som mates inn i kjernelogikken 112. Å sette signalet sl50. gjør at kjernelogikken går inn i en ventetilstand, mens resetting av signalet sl50 gjør at kjernelogikken fortsetter. Ventetilstandsgeneratoren 160 mottar et ventetilstandsnummer fra et klassisk ventetilstandsregister 150. Ventetilstandsgeneratoren 160 mottar også dataseleksjonssignalet sl42, som indikerer at en dataoverføring er nært forestående. I henhold til en konvensjonell operasjon, genereres ventesignalet sl50 når et eksternt minne aksesseres for å sette mikroprosesseringsenheten 110 i en ventetilstand i en tidsperiode som er tilstrekkelig for at den eksterne minnelokasjonen kan aksesseres. Denne tidsperioden er basert på en verdi som er produsert av et klassisk ventetilstandsregister 150.
I henhold til oppfinnelsen finnes det en ekstern min-neseleksjonslogikk 140 som lagrer ventetilstandsnumre for forskjellige minnetyper. Typisk assosieres hver minnetype med et adresseområde. Derfor indikerer adressen for et gitt datum minnetypen der datumet er lagret. Derfor mates adresselinjene sl40 inn i den eksterne seleksjonslogikken 140, som deretter legger ut ventetilstandsnumrene til minneenheten som korresponderer med adressen presentert på linjene. Som man kan se har hvert minne to tilknyttede ventetilstandsnumre, et klassisk ventetilstandsnummer og et dataflytventetilstandsnummer. Det klassiske ventetilstandsnummer er i teknikkens stand et ventetilstandsnummer som benyttes for å sette CPU-en i en ventetilstand i en tidsperiode som er tilstrekkelig for at et adressert datum kan fanges opp og legges på systembussen 120. Det klassiske ventetilstandsnummeret som korresponderer med en gitt adresse er lagret i register 150, og er derfra matet i ventetilstandsgeneratoren 160.
Den eksterne seleksjonslogikk 140 tilveiebringer også et dataflytventetilstandsnummer som er lagret i dataflytregisteret 142. Tre dataflytbit sl60 fra dataflytregisteret mates inn i den eksterne busslogikken 170. I tillegg mottar den eksterne busslogikk et eksternt lesesignal sl08, leser suksessivt signal sllO, dataseleksjonssignal sl42 og ventesignal sl50 fra ventetilstandsgeneratoren 160. Basert på disse inngangssignalene vil den eksterne busslogikk 170 produsere et ACK-signal sl52 (aktiv HØY) som mates inn i ventetilstandsgeneratoren for å sette ventesignalet sl52 når ACK-signalet (kvitteringssignalet) sl52 er LAV.
Adresseområdene og ventetilstandsnumrene er tilveiebrakt ved hjelp av brukerprodusert programkode 180. I én utførel-se inneholder den eksterne minneseleksjonslogikken 140 et antall registre som kan aksesseres via et minnemappet system, hvori registrene har tilknyttet adresser som er akses-serbare under programkontroll. En bruker kan programmere registrene med et adresseområde og korresponderende ventetilstandsnumre, både klassiske dataflytnumre og dataflytnumre.
For å komplettere beskrivelsen av figur 1, er det en effekt på sett-av-krets 154 som forsyner sett-av-signalet sl20 og dets komplementærsignal sl22. Det er en klokkekrets som tilveiebringer klokkesignal sl30 og dets komplementære signal sl32.
I figur 2 er kretsen som omfatter den eksterne busslogikk 170 vist. Her er det en tellerlogikk som består av flipp-flopper 202, 204 og 206 som klokkes av klokkesignalet sl30. Utgangssignalet fra tellerlogikken består av inverterte ut-gangssignaler fra de individuelle flipp-floppene. Disse ut-gangssignalene mates inn i en komparatorkrets 220, som består av tre XOR-porter koblet til en NAND-port. Én inngang fra hver XOR-port er koblet til flipp-floppenes 202 - 206 konverterte utganger, med unntak av at utgangen til flipp-flopp 204 drives av en buffer 254 og mates så inn i kompa-ratorkretsen 220. Andre innganger til komparatoren kommer fra dataflytbitene sl60. Utgangen av komparator 220 mates inn i en inngang til en NAND-port 260.
Dataflytbitene sl60 OR-es sammen med den logiske krets 222. Resultatet av OR-operasjonen mates inn i en annen inngang til NAND-port 260.
Ventesignalet sl50 og det eksterne lesesignal sl08 mates henholdsvis inn i inverterne 267 og 268, hvis utganger er koblet gjennom en NAND-port 266. Inverterne og NAND-porten opererer sammen som en OR-port. Utgangen til NAND-porten 266 mates inn i en inngang til AND-port 264. Dataseleksjonssignalet sl42 er koblet til den andre inngangen til AND-port 264. Utgangen til en AND-port 264 er koblet til en inngang til en NAND-port 262. Den andre inngangen til en NAND-port 262 er koblet til utgangen av flipp-flopp 208.
Dataseleksjonssignalet sl42 ble også invertert gjennom inverter 265 og OR-es med suksessive lesesignaler sllO via OR-porten 263. Utgangen til OR-porten 263 og utgangen til NAND-porten 262 er koblet via AND-porten 261, hvis utgang mates inn i en tredje inngang til NAND-porten 268. NAND-porten 260 mates i sin tur inn i flipp-floppen 208 som produserer ACK-signalet sl52.
I tellerlogikken drives flipp-floppen 202 av NAND-porten 250 gjennom inverteren 251. NAND-porten mottar det inverterte utgangssignal fra flipp-floppen 202 og det inverterte utgangssignal fra flipp-floppen 208. Videre mottar NOR porten 253 det inverterte utgangssignal til flipp-floppen 202 og det ikke inverterte utgangssignal til flipp-floppen 208. Utgangen til NOR porten til 253 mates inn i inngangen 1 i multiplekseren 210. Den andre inngangen i multiplekseren 210 er koblet til klokkesignalet sl30. Utgangen til multiplekseren mates inn i flipp-floppen 204.
Den inverterte utgang av flipp-floppen 204 mates (via buffer 254) inn i NAND-porten 255 og inverter 256, og er se-lektorkontrollen for multiplekseren 210. NAND-porten 255 mottar også det inverterte utgangssignal til flipp-floppen 208. Utgangene til NAND-portene 250 og 255 er koblet til NAND-porten 258. Inverteren 256 er koblet til AND-porten 259 som også mottar som inngangssignal det inverterte utgangssignal fra flipp-floppen 202 via inverter 257 og fra det inverterte utgangssignal fra flipp-floppen 208. Utgangene fra portene 258 og 259 mates henholdsvis inn i inngang 0 og 1 i multiplekser 212. Utgangen til multiplekser 212 er inngang til flipp-flopp 206, hvis inverterte utgangssignal tjener som seleksjonsinngangssignalet 212.
Operasjonen til den eksterne busslogikken 170 vil nå bli forklart. Generelt, for en ekstern minneaksess, lastes da-taf ly tverdien som korresponderer med det aksesserte minne fra den eksterne seleksjonslogikk 140 inn i dataflytregisteret 142. Etter én lesesyklus, vil tellerlogikken (flipp-floppene 202, 204 og 206) begynne å inkrementere seg opp til dataflytverdien (signal sl60). I løpet av opptellingen settes ACK-signalet sl52 av (LAV), noe som indikerer at systembussen 120 fortsatt drives av utgangsbuffere til minnet som ble lest. Som respons på dette setter ventetilstandsgeneratoren 160 ventesignalet sl50 slik at mikrokontrolleren 110 går inn i en ventetilstand. Idet telleren når dataflytverdien sl60, vil telleren settes av, og ACK-signalet sl52 vil gå til HØY, noe som indikerer at systembussen 120 er ledig.
Forskjellige operasjonskonfigurasjoner for den eksterne busslogikk 170 forklares best i forbindelse med tidsdia-grammene avbildet i figurene 3-6. Tidsskjemaene er resultatet av en simulering av den eksterne busslogikken 170 vist i figur 2. Simuleringen ble gjort ved å bruke en Veri-Log XL simulator produsert av Candence.
Anta at minnet 130 (MEMO) i figurene 1, 2 og 3 er et 8-bits minne hvis adresser har de øverste bitene lik "0x010". Den eksterne seleksjonslogikk 140 er programmert for å assosiere et dataflytventetilstandsnummer på fem for adresser som begynner med 0x010. Tidsskjemaet i figur 3 illustrerer signaleringen for en skriveoperasjon fulgt av to suksessive leseoperasjoner med minnet MEMO. I tillegg involverer lese-og skriveoperasjonene 16-bits ord, og derfor består hver l/0-operasjon av to 8-bits minneaksesseringer (lavbyte, høybyte).
Toppen av tidsskjemaet i figur 3 viser minneadressesignale-ne sl40 og klokkesignalet sl30. Chip-seleksjon sl00 (SCO, aktiv LAV) indikerer at MEMO er valgt. Den første aksesserte adresse er 0x01000500. Ved å sette denne adressen på ad-ressebuss sl40, legger den eksterne seleksjonslogikken 140 ut nummeret fem inn i dataflytregisteret 142. Følgelig setter dataflytbitene sl60 et femtall.
I løpet av tidsperiode ti settes (aktiv HØY) skriveaktive-ringsinnholdet sl06 to ganger slik at lav- og høybytene skrives inn i minneplasseringen 0x01000500. Fordi operasjonen er en skriveoperasjon, settes dataoverføringssignalet sl42, og det eksterne lesesignal sl08 settes av (aktiv LAV). Derfor, i henhold til oppfinnelsen som er implemen-tert i logikkretsen 170, forblir ACK-signalet sl52 satt, og tellerutgangssignalet (utgangen av flipp-floppene 202, 204 og 206) forblir lav på slutten av skrivesyklusen, benevnt som handling A3 i figur 3, noe som indikerer at systembussen 120 er ledig. Legg merke til at i løpet av perioden ti er ventesignalet sl50 ikke desto mindre satt av ventetilstandsgeneratoren 160. Dette er resultatet av en klassisk ventetilstand, generert som respons på skriveoperasjonen.
Legg merke til at det suksessive lesesignal sllO settes av minnekontroller 152 ved hendelse A3, siden en aksess til samme minne (MEMO) utføres, nemlig en leseoperasjon. Leseoperasjonen finner sted i løpet av tidsperioden t2 hvor utgangsaktiveringssignalet sl04 drives av LAV ved hendelse B3 for å legge ut den første byten av det aksesserte ord. Også ved hendelse B3 går det eksterne lesesignal sl08 til LAV, noe som indikerer tilstedeværelsen av en ekstern leseaksess. Den andre byten leses ved hendelse C3. Igjen oppstår en klassisk ventetilstand i løpet av perioden t2 for å tilveiebringe tilstrekkelig tid for at leseoperasjonen skal kunne fullføres.
Ved hendelse D3 settes en ny adresse, nemlig 0x01000500.
Igjen, siden det samme minnet (MEMO) aksesseres, settes det suksessive lesesignal sllO. Følgelig, i henhold til oppfinnelsen, begynner telleren ikke å telle og dermed fortsetter flipp-floppen 208 å legge ut HØY, for dermed å sette ACK-signalet sl52 for å indikere at systembussen 120 er ledig.
For å avslutte diskusjonen av figur 3 forekommer to leseak-sesser i løpet av tidsperiode t3 ved hendelsene E3 og F3 for å lese ut to bytes som setter sammen ordet lagret i minneplasseringen 0x01000500. Operasjonen ledsages av en klassisk ventetilstand i løpet av samme periode, indikert av at ventesignal sl50 er satt.
Fra den foregående diskusjon i figur 3 kan det ses at den
eksterne busslogikk 170 ikke initierer en ventetilstand ved fullførelse av en skrivesyklus, siden et bussammenstøt ikke er et tema. I tillegg initierer ikke busslogikken en ventetilstand for suksessive avlesninger fra samme minne.
Anta at minne 130 (MEMO) i figurene 1, 2 og 4 er et 8-bits minne hvis adresser har de øverste bitene lik "0x010". Anta videre at den eksterne seleksjonslogikk 140 har blitt programmert for å assosiere et dataflytventetilstandsnummer på fire for adresser som begynner med 0x010. Tidsskjemaet i figur 4 illustrerer tidspunktet for en leseoperasjon fra MEMO, fulgt av en skriveoperasjon til MEMO, fulgt av en leseoperasjon fra MEMO. Som i figur 3 involverer skrive- og leseoperasjonene 16-bits ord, og dermed består hver I/O-operasjon av to 8-bits minneaksesser (lavbyte, høybyte).
Som det kan ses i figur 4 finner leseoperasjonen sted i lø-pet av tidsperioden ti, ledsaget av den korresponderende klassiske ventetilstand. Ved fullførelse av lesingen ved hendelse A4, settes utgangsaktiveringssignalet 104 av, og det eksterne lesesignal sl08 blir på samme måte satt av. ACK-signalet sl52 settes av, noe som gjør at telleren (flipp-floppene 202, 204, 206) begynner å telle og at ventetilstandsgeneratoren 160 setter ventetilstandssignalet sl50 for å indikere at systembussen 120 er opptatt. Som en konsekvens av dette går CPU 110 inn i en ventetilstand.
I henhold til teknikkens stand, ville neste I/O-operasjonen begynne ved hendelse B4, noe som ville resultert i konflikt for bussen, da CPU-en forsøker å drive sine utgangsdata på systembussen på samme tid som utgangsbufferen til MEMO fortsatt opererer på bussen fra sin leseoperasjon. I henhold til oppfinnelsen, ved å isteden entre ventetUstanden ved hendelse B4, gis utgangsdriveren til MEMO nok tid (fem klokkepulser) til at den kan frigjøre systembussen slik at når skriveoperasjonen begynner er bussen ledig, og det er ingen risiko for fordreide data på grunn av busskonflikt mellom mikrokontrolleren og MEMO.
Derfor, ved hendelse C4 når telleren teller opp til fem og komparatoren 220 detekterer likhet med dataflytverdien sl60, legger flipp-floppen 208 ut en HØY for å sette ACK-signalet sl52. Som respons vil ventetilstandsgeneratoren 160 sette ventesignalet sl50 av som vist i den stiplede linjen. En klassisk ventetilstand legges imidlertid inn i en tidsperiode t2 i løpet av den etterfølgende skriveoperasjon. Ved slutten av skrivesyklusen (hendelse D4) , initieres ikke telleren fordi ACK-signalet sl52 forblir HØY, siden det eksterne seleksjonssignal er satt, og dermed forekommer det ingen ventetilstand før den neste i/O-operasjon. Husk at den eksterne busslogikk 170 ikke initierer telleren mot slutten av en skriveoperasjon. Man kan imidlertid se at en klassisk ventetilstand fortsatt forekommer i tidsperiode t3 i løpet av lesingen fra minnelokasjonen 0x010001f8.
I sum viser tidsskjemaet i figur 4 at oppfinnelsen selektivt setter ventetilstander avhengig av operasjonen som nettopp er avsluttet. I tilfelle med en ekstern avlesning, og hvis dataflytregisteret inneholder en verdi forskjellig fra null, forekommer en ventetilstand slik at utgangsdriveren kan frigjøre bussen. I tilfelle med en skriveoperasjon initieres ingen ventetilstand.
Anta at minnet 130 (MEMO) i figurene 1, 2 og 5 er et 8-bits minne hvis adresser har de øverste bitene lik "0x010". Anta videre at det interne minne 114 har adresser med de øverste bitene lik "0x000". Den eksterne seleksjonslogikk 140 er programmert til å assosiere et dataflytventetilstandsnummer på fem for adresser som begynner med 0x010. Tidsskjemaet i figur 5 illustrerer signaleringen for en leseoperasjon fra MEMO, fulgt av tre suksessive leseoperasjoner fra det interne minnet 114, fulgt av en annen leseoperasjon fra MEMO. MEMO leseoperasjonen involverer 16-bits ord, og derfor består hver i/O-operasjon av to 8-bits minneaksesseringer (lavbyte, høybyte).
Toppen av tidsskjemaet i figur 5 viser minneadressesignale-ne sl40 og klokkesignalet sl30. Den første leseaksessen er til det eksterne minne MEMO fra lokasjonen 0x010001e8 i lø-pet av tidsperiode ti. Legg merke til at ventesignalet sl50 er satt i løpet av samme tidsperiode, per klassisk vente-tilstandshandling.
Ved avslutning av leseoperasjonen ved hendelse A5, går ACK-signalet sl52 til LAV, for dermed å trigge telleren til å begynne å telle. Husk at ACK LAV indikerer at systembussen 120 ikke er ledig. Det kan imidlertid forekomme at ventesignalet sl50 forblir satt av, og grunnen til dette er at den etterfølgende leseoperasjon er til det interne minnet 114, som ikke stoler på at systembussen 120 er frigjort av utgangsdriveren til MEMO.
I figur 1 laster den eksterne minneseleksjonslogikken 140 en null inn i det klassiske ventetilstandsregisteret 150 når en intern minneadresse detekteres. Dette mates inn i ventetilstandsgeneratoren 160, som når den ser en klassisk ventetilstandsverdi på null reagerer med å opprettholde ventesignalet sl50 i den avsatte tilstanden, uavhengig av den logiske tilstanden til ACK-signalet sl52. Siden kjernelogikken 112 kan aksessere internminne i en klokke, er det ikke nødvendig å vente til en ventetilstand forekommer.
I løpet av de tre interne avlesningene fra adressene 0x00000ec8, 0x00000ecc og 0x00000ed0 fortsetter telleren imidlertid å telle. Grunnen for å opprettholde denne akti-viteten er at utgangsdriveren til MEMO fortsatt trenger tid til å elektrisk frigjøre systembussen, og hvis mikroprosesseringsenheten 110 ville aksessere det eksterne minnet, var den nødt til å entre ventetilstanden til telleren var fer-dig, det vil si nådd en verdi lik dataflytverdien sl60. Ellers ville et bussinnhold forekomme.
På den annen side, hvis det samme eksterne minnet aksesseres, er det ikke nødvendig å entre en ventetilstand. Dette er nøyaktig situasjonen som er avbildet i figur 5. Legg merke til at ved hendelse B5 går det suksessive avlesnings-signal sllO til LAV for å indikere at MEMO blir aksessert igjen. Dette gjør at ACK-signalet sl52 går til HØY som umiddelbart setter telleren (flipp-floppene 202, 204, 206) til null. To leseoperasjoner fra adressene OxOlOOOlea og 0x01000258 i minne MEMO følger i tidsperiodene t2 og t3, sammen med deres korresponderende klassiske ventetilstander.
For å oppsummere punktene som er brakt opp i forbindelse med figur 5 kan man se at når en intern minneaksess følger en leseoperasjon fra et eksternt minne, er telleren fortsatt aktivert, men CPU-en vil ikke entre en ventetilstand. Dette åpner for muligheten for en etterfølgende ekstern minneavlesning hvor CPU-en vil bli tvunget til å vente til avslutningen av tellingen slik at systembussen kan frigjø-res . Hvis den eksterne aksess er til det samme eksterne minne, opphører tellingen umiddelbart for å gi aksess til det eksterne minnet uten en ventetilstand.
Anta at minnet 130 (MEMO) i figurene 1, 2 og 6 er et 8-bits minne hvis adresser har de øverste bitene lik "0x010" og et minne 132 (MEM1) er et annet 8-bits minne hvis adresser har de øverste bitene lik "0x011". Anta videre at den eksterne seleksjonslogikk 140 har blitt programmert til å assosiere et dataflytventetilstandsnummer på én for MEMO og en dataflytverdi på fem for MEM1. Tidsskjemaet i figur 6 illustrerer tidspunktet for en skriveoperasjon fra MEM1, fulgt av en leseoperasjon fra MEMO, fulgt av en leseoperasjon fra MEM1, fulgt av fire leseoperasjoner fra MEMO. Leseoperasjonene med MEMO involverer 8-bits data, slik at hver I/O-operasjon krever en enkelt aksess. Skrive- og leseoperasjonene med MEM1 involverer 32-bits ord. Derfor består hver i/O-operasjon av fire 8-bits minneaksesseringer.
I løpet av tidsperiode ti velges MEM1 indikert av at chip-seleksjonssignalet sl02 settes. Fire skriveaksesseringer gjennomføres på lokasjon 0x01100040. Det kan ses at den valgte dataflyt sl60 er fem. Legg også merke til at ventetilstanden i løpet av periode ti kommer av en klassisk ven-tetilstandsgenerering.
Ved fullførelse av skrivesyklusen ved hendelse As velges MEMO ved adresse 0x01000270 sammen med en korresponderende endring av dataflyten sl60 til én. En leseoperasjon begynner ved hendelse B6 og avslutter ved C6 når MEM1 gjenvelges for adresse 0x01100040. Telleren begynner å telle og gjør dermed at flipp-floppen 208 går til LAV, som i sin tur for-årsaker at en ventetilstand oppstår. Siden dataflyten er én, gjør telleren en telling og flipp-floppen 208 går til HØY ved D6. Denne ventetilstanden mellom hendelse C6 og D6 gjør at MEMO utgangsdriverne frigjør systembussen 120 slik at etterfølgende avlesninger ut av MEM1 ved hendelse C6 kan fortsette uten risiko for bussammenstøt. Derfor kommer ventetilstanden i løpet av tidsperioden t2 både av dataflyten fra avlesningen av MEMO og av den klassiske ventetilstands-genereringen i løpet av avlesningen av MEM1.
Når MEM1 velges ved H6, kan man se at dataflyten sl60 igjen settes til dataflytverdien på fem. Ved fullførelse av lese-operasj onen ved hendelse E6 begynner telleren å telle, denne gangen for en opptelling til fem. ACK-signalet sl52 går til LAV i en tilsvarende tidsperiode noe som indikerer at MEM1 frigjører systembussen. Når telleren når fem, går ACK-signalet sl52 til HØY, og avlesningen fortsetter med MEMO ved lokasjon 0x0100274 (hendelse F6) . Igjen består ventetilstanden i løpet av tidsperioden t3 av en dataflytventetilstand og en klassisk ventetilstand. De etterfølgende avlesninger i løpet av hendelse G6 forekommer med det samme minnet MEMO, og krever derfor ikke dataflytventetilstander etter hver leseoperasjon. Klassiske ventetilstander genereres imidlertid fortsatt.
Fra den foregående diskusjon i figur 6 kan man se at dataflytverdien sl60 endrer seg avhengig av minnet som aksesseres. En dataflytverdi kan være valgt av brukeren per minneenhet. Dette gjør det mulig med lange forsinkelser for langsomme minner og korte forsinkelser for raske minner, istedenfor å måtte spesifisere en enkelt forsinkelse korresponderende til det langsomste minnet. Denne tilnærming forhindrer busskonflikter blant forskjellige minneenheter, samtidig som den minimaliserer forsinkelsen mellom suksessive l/0-operasjoner som involverer forskjellige minner.
Dataflytventetilstandstilnærmingen i henhold til oppfinnelsen kan benyttes på arkitekturer som har flere typer interne minner, hvor det enkelte kan komme til å konkurrere om aksessen til den interne bussen 116 og hvor det enkelte har forskjellige tidskrav til å frigjøre databussen når en lesesyklus er avsluttet. For eksempel viser figur 7 en varia-sjon av figur 1 hvor mikro 110' inneholder to interne minner 114A og 114B. Som man kan se eksisterer de samme poten-sielle busskonflikter med den interne buss 116 i arkitektu-ren i figur 7 som for den eksterne bussen 120. Prinsippene som er lagt frem i de foregående diskusjoner om figurene 3 - 6 kan enkelt tilpasses av personer med ordinær fagkunn-skap på området til mange interne minnearkitekturer, slik som vist i figur 7.

Claims (15)

1. I en beregningsanordning som har et første minne (130) og et andre minne (132), en ventetilstandskrets (160), logiske midler (110, 152) og datamidler (140, 142) koblet til en felles databuss (120), en fremgangsmåte for å aksessere det første og det andre minnet, karakterisert ved følgende trinn: - å knytte en første ventetilstandsverdi til det første minne (130), - å knytte en andre ventetilstandsverdi til det andre minne (132) , - å gjennomføre en første I/O-operasjon på en utvalgt av minnene, - å bestemme om beregningsanordningen skal plasseres i en ventetilstand, nevnte bestemmelse er basert på en sekvens med I/O-operasjoner som utføres på minnene, - å plassere beregningsanordningen i en ventetilstand i en tidsperiode proporsjonal med ventetilstandsverdien tilknyttet det valgte minnet når bestemmelsen er bekreftende, - å ikke plassere beregningsanordningen i en ventetilstand når bestemmelsen er negativ, og - å gjennomføre neste I/O-operasjon på den neste av det første og det andre minnet.
2. Fremgangsmåte som angitt i krav 1, karakterisert ved at trinnet for å gjen-nomføre den første I/O-operasjon på en utvalgt en av minnene forutgås av et trinn for å skrive til nevnte utvalgte minne, umiddelbart fulgt av avlesningstrinnet uten at en ventetilstand legges til.
3. Fremgangsmåte som angitt i krav 1, karakterisert ved at trinnet med å gjen-nomføre en første I/O-operasjon på den utvalgte av minnene innbefatter å suksessivt avlese et antall data derfra, uten å legge inn ventetilstander innimellom nevnte suksessive avlesning av data.
4. Fremgangsmåte som angitt i krav 1, karakterisert ved at trinnet med å plassere beregningsanordningen i en ventetilstand innbefatter å velge en ventetilstandsverdi tilknyttet det valgte minnet og å telle til et nummer lik denne verdi.
5. Fremgangsmåte som angitt i krav 1, karakterisert ved at det første og det andre minnet er eksterne minner.
6. Fremgangsmåte som angitt i krav 1, karakterisert ved at det første og det andre minnet er interne minner.
7. Fremgangsmåte som angitt i krav 1, karakterisert ved den første og den andre ventetilstandsverdi er basert på en karakteristikk av de respektive utgangskretser for det første og det andre minnet .
8. Fremgangsmåte som angitt i krav 7, karakterisert ved at den første og den andre ventetilstandsverdi videre baserer seg på klokkefre-kvensen til en klokke som benyttes av beregningsanordningen.
9. Fremgangsmåte som angitt i krav 7, karakterisert ved at karakteristikken er tiden som kreves for at utgangskretsen oppnår en høy impe-danstilstand etter en avlesningsoperasjon.
10. Fremgangsmåte som angitt i krav 1, karakterisert ved at nevnte første og andre minner er eksterne minner og nevnte beregningsanordning videre har et tredje interne minne (114), nevnte fremgangsmåte innbefatter trinn for å aksessere nevnte tredje minne, nevnte trinn omfatter: - ved fullførelse av trinnet med å gjennomføre en første I/O-operasjon på nevnte utvalgte av det første og andre minne, og umiddelbart fortsette med den neste I/O-operasjonen til nevnte tredje uten tillegg av en ventetilstand .
11. Fremgangsmåte som angitt i krav 10, karakterisert ved at hvis en ekstern leseoperasjon etter nevnte interne I/O-operasjon er rettet til nevnte utvalgte av den første og det andre minnet, fortsetter nevnte interne I/O-operasjon umiddelbart med nevnte eksterne leseoperasjon på nevnte utvalgte av minnene uten tillegg av en ventetilstand.
12. Fremgangsmåte som angitt i krav 10, karakterisert ved at hvis en ekstern leseoperasjon etter nevnte interne I/O-operasjon er rettet til den av minnene som ikke er den utvalgte, plasseres beregningsanordningen i en ventetilstand for en tidsperiode proporsjonal med ventetilstandsverdien tilknyttet nevnte utvalgte minne ved fullførelse av nevnte interne I/O-operasj on.
13. Mikroprosesseringsanordning karakterisert ved: - en systembuss (120), - logikk (110, 152) koblet til systembussen, logikken har i det minste et første interne minne (114a) og en første utgang med et første signal (sl08) , det første signal har en første logiske tilstand i løpet av en leseoperasjon på et eksternt minne og ellers en andre logisk tilstand, i det minste et første eksterne minne (130) koblet til systembussen, - en ventetilstandskrets (160) som har en andre utgang med et andre signal (sl50) koblet til logikken (110, 152), hvorved logikken entrer en ventetilstand som respons på at det andre signal blir satt, - en ekstern busstyrekrets (170) som har en tellerkrets (202, 204, 206), en sammeligningskrets (220) og en tredje utgang med et tredje signal (sl52) koblet til ventetilstandskretsen (160) hvorved ventetilstandskretsen setter og setter av det andre signal som respons på at det tredje signal blir satt og satt av, og - datamidler (140, 142) for å lagre et antall ventetilstandsverdier, én av nevnte ventetilstandsverdier korresponderer med nevnte første eksterne minne (130), den eksterne busstyrekretsen (170) setter det tredje signalet (sl52) som en funksjon av tilstanden til det første signalet (sl08), - tellerkretsen (202, 204, 206) initierer en tellersekvens som respons på at det første signalet skifter fra den førs-te logiske tilstand til den andre logiske tilstand, - sammenligningskretsen (220) har en første inngang koblet til datamidlene (120, 142) for å motta en utvalgt en av ventetilstandsverdiene og en andre inngang koblet for å motta et tellerutgangssignal fra telleren, - sammenligningskretsen setter av det tredje signal når dens innganger er like, logikken (110, 152) inneholder en fjerde utgang med et fjerde signal (sllO) som indikerer et-terfølgende leseoperasjoner til det samme minnet, den fjerde utgang er koblet til den eksterne busstyrekretsen (170), den eksterne busstyrekretsen setter videre det tredje signal som en funksjon på tilstanden til det fjerde signal.
14. Mikroprosessoranordning som angitt i krav 13, karakterisert ved at logikken (110, 152) genererer minneadresser (sl40) og at datamidlene (140, 142) inneholder en selektor (140) for å produsere en av ventetilstandsverdiene som respons på en generert minneadresse.
15. Beregningsanordning som angitt i krav 13, karakterisert ved at den videre inneholder programmeringsmidler (180) for selektivt å laste ventetilstandsnumre inn i datamidlene (140, 142).
NO20014246A 1999-03-10 2001-08-31 Mikroprosesseringsenhet som har programm±rbare ventetilstander NO321931B1 (no)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/266,045 US6356987B1 (en) 1999-03-10 1999-03-10 Microprocessing device having programmable wait states
PCT/US1999/029321 WO2000054165A1 (en) 1999-03-10 1999-12-09 Microprocessing device having programmable wait states

Publications (3)

Publication Number Publication Date
NO20014246D0 NO20014246D0 (no) 2001-08-31
NO20014246L NO20014246L (no) 2001-08-31
NO321931B1 true NO321931B1 (no) 2006-07-24

Family

ID=23012935

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20014246A NO321931B1 (no) 1999-03-10 2001-08-31 Mikroprosesseringsenhet som har programm±rbare ventetilstander

Country Status (12)

Country Link
US (1) US6356987B1 (no)
EP (1) EP1163598B1 (no)
JP (1) JP2002539527A (no)
KR (1) KR100660448B1 (no)
CN (1) CN1120430C (no)
CA (1) CA2363085A1 (no)
DE (1) DE69906156T2 (no)
HK (1) HK1041073B (no)
MY (1) MY133914A (no)
NO (1) NO321931B1 (no)
TW (1) TW518501B (no)
WO (1) WO2000054165A1 (no)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6407949B1 (en) * 1999-12-17 2002-06-18 Qualcomm, Incorporated Mobile communication device having integrated embedded flash and SRAM memory
JP2002091905A (ja) * 2000-09-20 2002-03-29 Mitsubishi Electric Corp 半導体装置およびアクセスウェイト数変更プログラムを記録したコンピュータ読み取り可能な記録媒体
US6662285B1 (en) * 2001-01-09 2003-12-09 Xilinx, Inc. User configurable memory system having local and global memory blocks
ITTO20010333A1 (it) * 2001-04-06 2002-10-06 St Microelectronics Srl Dispositivo e metodo di gestione dei cicli di attesa durante la lettura di una memoria non volatile.
US6605962B2 (en) 2001-05-06 2003-08-12 Altera Corporation PLD architecture for flexible placement of IP function blocks
US7076595B1 (en) * 2001-05-18 2006-07-11 Xilinx, Inc. Programmable logic device including programmable interface core and central processing unit
US6798239B2 (en) * 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
US7420392B2 (en) * 2001-09-28 2008-09-02 Xilinx, Inc. Programmable gate array and embedded circuitry initialization and processing
US6781407B2 (en) 2002-01-09 2004-08-24 Xilinx, Inc. FPGA and embedded circuitry initialization and processing
US6996758B1 (en) 2001-11-16 2006-02-07 Xilinx, Inc. Apparatus for testing an interconnecting logic fabric
US6983405B1 (en) 2001-11-16 2006-01-03 Xilinx, Inc., Method and apparatus for testing circuitry embedded within a field programmable gate array
US6886092B1 (en) 2001-11-19 2005-04-26 Xilinx, Inc. Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion
JP3510618B2 (ja) * 2002-02-05 2004-03-29 沖電気工業株式会社 バスブリッジ回路及びそのアクセス制御方法
US6820248B1 (en) 2002-02-14 2004-11-16 Xilinx, Inc. Method and apparatus for routing interconnects to devices with dissimilar pitches
US6976160B1 (en) 2002-02-22 2005-12-13 Xilinx, Inc. Method and system for controlling default values of flip-flops in PGA/ASIC-based designs
US6754882B1 (en) 2002-02-22 2004-06-22 Xilinx, Inc. Method and system for creating a customized support package for an FPGA-based system-on-chip (SoC)
US6934922B1 (en) 2002-02-27 2005-08-23 Xilinx, Inc. Timing performance analysis
US7007121B1 (en) 2002-02-27 2006-02-28 Xilinx, Inc. Method and apparatus for synchronized buses
US7111217B1 (en) 2002-02-28 2006-09-19 Xilinx, Inc. Method and system for flexibly nesting JTAG TAP controllers for FPGA-based system-on-chip (SoC)
US6839874B1 (en) 2002-02-28 2005-01-04 Xilinx, Inc. Method and apparatus for testing an embedded device
US7088767B1 (en) 2002-03-01 2006-08-08 Xilinx, Inc. Method and apparatus for operating a transceiver in different data rates
US7111220B1 (en) 2002-03-01 2006-09-19 Xilinx, Inc. Network physical layer with embedded multi-standard CRC generator
US7187709B1 (en) 2002-03-01 2007-03-06 Xilinx, Inc. High speed configurable transceiver architecture
US6961919B1 (en) 2002-03-04 2005-11-01 Xilinx, Inc. Method of designing integrated circuit having both configurable and fixed logic circuitry
US6973405B1 (en) 2002-05-22 2005-12-06 Xilinx, Inc. Programmable interactive verification agent
US6772405B1 (en) 2002-06-13 2004-08-03 Xilinx, Inc. Insertable block tile for interconnecting to a device embedded in an integrated circuit
US7085973B1 (en) 2002-07-09 2006-08-01 Xilinx, Inc. Testing address lines of a memory controller
US7099426B1 (en) 2002-09-03 2006-08-29 Xilinx, Inc. Flexible channel bonding and clock correction operations on a multi-block data path
US7092865B1 (en) 2002-09-10 2006-08-15 Xilinx, Inc. Method and apparatus for timing modeling
US7421014B2 (en) * 2003-09-11 2008-09-02 Xilinx, Inc. Channel bonding of a plurality of multi-gigabit transceivers
KR20070122227A (ko) 2005-03-30 2007-12-28 아트멜 코포레이션 시간 데이터 플로팅 딜레이 및 외부 메모리 기록 동안시스템 비활성을 감소시키는 방법 및 장치
US7269704B2 (en) * 2005-03-30 2007-09-11 Atmel Corporation Method and apparatus for reducing system inactivity during time data float delay and external memory write
US7405949B2 (en) * 2005-12-09 2008-07-29 Samsung Electronics Co., Ltd. Memory system having point-to-point (PTP) and point-to-two-point (PTTP) links between devices
KR101131919B1 (ko) * 2005-12-09 2012-04-03 삼성전자주식회사 메모리 시스템 및 이 시스템의 신호 송수신 방법
US9405720B2 (en) * 2013-03-15 2016-08-02 Atmel Corporation Managing wait states for memory access
JP6326671B2 (ja) * 2013-10-03 2018-05-23 株式会社エルイーテック プロセッサへのwait挿入
JP2021047967A (ja) * 2019-09-20 2021-03-25 キオクシア株式会社 半導体デバイス
FR3111439B1 (fr) 2020-06-12 2023-06-30 St Microelectronics Rousset Procédé de gestion des requêtes d’accès à une mémoire vive et système correspondant

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02235156A (ja) 1989-03-08 1990-09-18 Canon Inc 情報処理装置
JPH03210649A (ja) 1990-01-12 1991-09-13 Fujitsu Ltd マイクロコンピュータおよびそのバスサイクル制御方法
US5313621A (en) 1990-05-18 1994-05-17 Zilog, Inc. Programmable wait states generator for a microprocessor and computer system utilizing it
EP0660329B1 (en) * 1993-12-16 2003-04-09 Mosaid Technologies Incorporated Variable latency, output buffer and synchronizer for synchronous memory
US5732250A (en) 1994-09-15 1998-03-24 Intel Corporation Multi-function microprocessor wait state mechanism using external control line
JPH08147161A (ja) 1994-11-21 1996-06-07 Nec Corp データ処理装置
US6023776A (en) * 1996-03-22 2000-02-08 Matsushita Electric Industrial Co., Ltd. Central processing unit having a register which store values to vary wait cycles
US5854944A (en) * 1996-05-09 1998-12-29 Motorola, Inc. Method and apparatus for determining wait states on a per cycle basis in a data processing system

Also Published As

Publication number Publication date
EP1163598B1 (en) 2003-03-19
DE69906156T2 (de) 2003-11-27
EP1163598A1 (en) 2001-12-19
MY133914A (en) 2007-11-30
NO20014246D0 (no) 2001-08-31
US6356987B1 (en) 2002-03-12
KR100660448B1 (ko) 2006-12-22
KR20010104721A (ko) 2001-11-26
JP2002539527A (ja) 2002-11-19
CN1338076A (zh) 2002-02-27
TW518501B (en) 2003-01-21
HK1041073A1 (en) 2002-06-28
NO20014246L (no) 2001-08-31
DE69906156D1 (de) 2003-04-24
CN1120430C (zh) 2003-09-03
WO2000054165A1 (en) 2000-09-14
HK1041073B (zh) 2004-05-14
CA2363085A1 (en) 2000-09-14

Similar Documents

Publication Publication Date Title
NO321931B1 (no) Mikroprosesseringsenhet som har programm±rbare ventetilstander
EP0378427B1 (en) High speed data transfer on a computer system bus
US5109490A (en) Data transfer using bus address lines
US5826093A (en) Dual function disk drive integrated circuit for master mode and slave mode operations
EP0700003B1 (en) Data processor with controlled burst memory accesses and method therefor
US6173353B1 (en) Method and apparatus for dual bus memory transactions
US20040054864A1 (en) Memory controller
US6519689B2 (en) Method and system for processing pipelined memory commands
JPH05197647A (ja) 入力/出力装置及びデータ転送方法
JPH04363746A (ja) Dma機能を有するマイクロコンピュータシステム
JPH01120660A (ja) マイクロコンピュータ装置
US7310717B2 (en) Data transfer control unit with selectable transfer unit size
JPH051504B2 (no)
JP2005165508A (ja) ダイレクトメモリアクセスコントローラ
US6665748B1 (en) Specialized PCMCIA host adapter for use with low cost microprocessors
JPH0227696B2 (ja) Johoshorisochi
JP2534321B2 (ja) デ―タ転送制御方法及び装置
JPH0512185A (ja) バーストサイクルデータ読み出しのためのアドレス予測および検証回路
US6963961B1 (en) Increasing DSP efficiency by independent issuance of store address and data
JPH05173936A (ja) データ転送処理装置
JPS59189433A (ja) ダイレクトメモリアクセスによるデ−タ消去方式
JPH05334234A (ja) 高速dma転送装置
JPH09259074A (ja) メモリーアクセス回路
JPS6059462A (ja) 双方向デ−タ・バスのパイプライン・アクセス・メモリ
JPH0142017B2 (no)

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees