SE520126C2 - I/U-Processor och metod för styrning av periferienheter - Google Patents

I/U-Processor och metod för styrning av periferienheter

Info

Publication number
SE520126C2
SE520126C2 SE9704627A SE9704627A SE520126C2 SE 520126 C2 SE520126 C2 SE 520126C2 SE 9704627 A SE9704627 A SE 9704627A SE 9704627 A SE9704627 A SE 9704627A SE 520126 C2 SE520126 C2 SE 520126C2
Authority
SE
Sweden
Prior art keywords
processor
register
bit
pins
pin
Prior art date
Application number
SE9704627A
Other languages
English (en)
Other versions
SE9704627L (sv
SE9704627D0 (sv
Inventor
Mikael Nilsson
Jonas Oxenholt
Kenny Ranerup
Stefan Sandstroem
Original Assignee
Axis Ab
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 Axis Ab filed Critical Axis Ab
Priority to SE9704627A priority Critical patent/SE520126C2/sv
Publication of SE9704627D0 publication Critical patent/SE9704627D0/sv
Priority to US09/204,212 priority patent/US6189052B1/en
Priority to JP10352666A priority patent/JPH11238028A/ja
Publication of SE9704627L publication Critical patent/SE9704627L/sv
Publication of SE520126C2 publication Critical patent/SE520126C2/sv
Priority to JP2009259255A priority patent/JP2010033614A/ja

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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Description

U 20 25 30 35 520 126 990412 E: \PUBLIC\DOC\P\3313037S .dOC JA/LJ 2 I några tidigare kända system är I/U-enheten eller dess styrenhet försedd med ytterligare kretsar för att utföra begäran av service eller avbrott från CPUn.
Avbrottskapaciteten frigör CPUn från avfrägning av I/U- enhetsstatus. I motsats till en DMA-begäran orsakar ett avbrott att CPUn växlar program genom att lagra tillståndet hos det aktuella programmet och "hoppar" till ett avbrottshanteringsprogram_ När avbrottet är slutfört kan CPUn återuppta exekveringen av det avbrutna programmet.
Ett ytterligare steg mot fullständig kontroll av I/U- operationerna uppnås genom att använda en I/U-processor.
Likt en DMA-styrenhet har en I/U-processor direkt åtkomst till huvudminnet och kan avbryta CPUn. Den kan emellertid också exekvera program direkt. Dessa s k I/U-program kan använda en instruktionsuppsättning olik den hos CPUn.
I tidigare kända I/U-system är CPUn och dess minne anslutna till kanaler eller I/U-processorer. Varje I/U- processor kan tillgodose ett antal periferistyrenheter, varvid varje styrenhet styr en eller flera identiska eller liknande enheter såsom radskrivare, laserskrivare, diskar, CD-ROM-diskar etc.
Uppfinningen Föreliggande uppfinning avser ett förbättrat in/ut- kontrollsystem, som stödjer olika protokoll. Detta åstad- koms genom att tillhandahålla en I/U-processor som stödjer multiprotokoll enligt krav 1.
Det är ett ändamål med föreliggande uppfinning att tillhandahålla en I/U-processor, som ersätter ett antal dedicerade I/U-styrenheter.
Det är ett ytterligare ändamål med uppfinningen att tillhandahålla en I/U-processor kompatibel med olika CPUer.
Ett hålla en flexibel I/U-processor med möjligheten att ändra annat andamål med uppfinningen är att tillhanda- I/U-protokoll utan någon omkonstruktion av hårdvara. 10 20 25 30 35 520 126 :nf ^afi;¿fiu:“f 3 990412 E : \PUBLIC\DOC\P\33l3037S .dOC JA/LJ Ytterligare ett ändamål med uppfinningen är att till- handahålla en I/U-processor, som tillhandahåller delade stift för olika protokoll.
Ett annat ytterligare ändamål med uppfinningen är att tillhandahålla en I/U-processor, som möjliggör en mycket kort framtagningstid för ett nytt protokoll.
Det är också ett ändamål med uppfinningen att till- handahálla en enkel I/U-processor, som arbetar med en hög klockfrekvens.
Det är dessutom ett ändamål med föreliggande upp- finning att tillhandahålla ett mycket flexibelt gränssnitt från I/U-processorn till stiften på chipet, dvs stiften skall inte vara fast dedicerade till ett specifikt proto- koll.
En fördel med processorbaserad realisering enligt uppfinningen är sålunda att processorkonstruktionen är mycket mera återanvändbar och möjliggör kort konstruktions- tid för ett nytt protokoll.
Kort beskrivning av ritningarna För att förklara uppfinningen mera i detalj och fördelarna och egenskaperna hos uppfinningen beskrivs en föredragen utföringsform i detalj nedan, varvid hänvis- ningar görs till de bifogade ritningarna, på vilka FIG 1 är ett schematiskt blockdiagram av ett exempel på en systemomgivning innefattande en I/U-processor enligt föreliggande uppfinning; FIG 2 är ett schematiskt blockdiagram av en ut- föringsform av I/U-processorn i FIG 1; FIG 3 är ett schematiskt blockdiagram av en I/U- processorkärna enligt uppfinningen; FIG 4 är en schematisk vy av en apparat för stift- maskkombinering använd för några protokoll; FIG 5 är en schematisk vy av klockregister; FIG 6 är en funktionsvy av en I/U-processortimer; 10 15 20 25 30 520 126 t~==-f^;yf._rï 4 990412 E:\PU'BLIC\DOC\P\33l3037s .doC .IA/LJ FIG 7 visar en princip för en styrenhet enligt upp- finningen; FIG 8 visar ett styrenhetsregister; FIG 9 visar dataöverföringsvägar hos I/U-processorn; FIG 10 visar en RS-232 RXD signal; FIG 11 är ett tidsdiagram för IEEE-1284 förhandlings- fasen; FIG 12 är en utföringsform av I/U-processrörlednings- stegen (IF och EX); FIG 13 visar de olika faserna i EX-steget; FIG 14 visar stegen för val av en lämplig PC (program counter = programräknare) i PC-hanteraren; och FIG 15 är ett schematiskt blockdiagram av stift- tristate och värdesregister.
Detaljerad beskrivning av uppfinningen Ett exempel pà en systemöversikt innefattande en I/U- processor enligt föreliggande uppfinning visas i FIG 1. En CPU 1 assisteras av en I/U-processor 2 enligt uppfinningen och tillsammans bildar de ett flexibelt chip med förmågan att ändra I/U-protokoll utan någon omkonstruktion av hård- varan. I/U-processorprogramkoden måste lagras internt (på chipet) i exempelvis ett RAM 3, för att upprätthålla hastigheten. Ett register 4 används för att dela informa- tionen mellan CPUn 1 och I/U-processorn 2. En konfigurerbar logik 5 tar hand om synkronisering av inkommande signaler och gör det möjligt att dela I/U-stift 6 mellan olika pro- tokoll.
Systemet i FIG 1 är också försett med en DMA (direct memory access = direkt minnesaccess)-styrenhet 7 för att utföra blocköverföring till/från ett externt RAM 8 utan CPU-inblandning.
I denna utföringsform är CPUn kopplad till det externa RAMet 8 via ett cacheminne 9 och en buss 10. En 15 20 25 30 35 520 126 990412 E:\PUBLIC\DOC\P\33l3037S.dOC JA/LJ 5 uppsättning FIFO-köer bildar ett gränssnitt mellan I/U- processorn 2 eller dess I/U-processorkärna 12 och CPUn 1.
Prestanda och storlek hos kisel ökar snabbare än utvecklingen av olika I/U-protokoll (exempelvis RS-232, SCSI, möjligt att använda processorbaserade lösningar även för Ethernet, etc). Detta föranleder att det nu är protokoll, som traditionellt är byggda som fast special- anpassade moduler.
En utföringsform av en I/U-processor 2 enligt upp- finningen ger stöd för RS-232 protokoll 13, IEEE-1284- protokoll 14 och ATA-protokoll 15.
RS-232 är standarden för det elektriska seriegräns- snittet mellan dataterminalutrustning (DTE = data terminal equipment) och dataförbindelseutrustning (DCE = data connect equipment). DCEn är typiskt ett modem och DTEn en PC. RS-232 kan användas både för synkron (X25 och HDLC) och asynkron seriell kommunikation.
Det elektriska RS-232 gränssnittet består av en 25 stifts "RS-232"-anslutning. Alla signaler används inte och PC/AT använder därför en 9 stifts seriell port istället för de 25 stiften enligt RS-232-gränssnittet.
RS-232-gränssnittet kan arbeta i synkront läge om ytterligare signaler används. En SCT-, Serial Clock Trans- mit, signal indikerar centrum för varje överförd bit av terminalen. DCEn samplar data på varje negativ flank hos denna signal. En SCR, Serial Clock Received, signal är den motsvarande tidssignalen från DCEn.
Det mest använda sättet att överföra data i RS-232- protokoll är i det asynkrona läget. I detta läge föregås varje byte av en startbit och följs av en stoppbit. Om paritet används används den sista databyten som paritets- bit. Pariteten kan väljas till antingen jämn eller udda.
Datahastigheten mellan modem och terminal måste sättas till ett specifikt värde, exempelvis 9600 bps. Detta ger en dataöverföringshastighet av 960 byte/s om ingen 10 20 25 30 35 520 126 990412 B : \PUBLIC\DOC\P\3313037S .dOC JA/LJ 6 paritet används, eftersom varje byte består av 10 bitar. Om paritet används sjunker överföringshastigheten till 840 byte/s eftersom varje 10 bitars sekvens nu endast inne- fattar 7 databitar. När mottagaren detekterar en startbit startar den en intern räknare, och beroende pá den valda överföringshastigheten försöker den att sampla databitar i centrum av varje bit. Samplingspunkten behöver inte vara exakt i centrum av varje bit, men den totala driften i den sista byten skall inte överstiga 10% av en bitlängd. Vid en överföringshastighet av 9600 bps är varje bitlängd omkring 104 ps. Sålunda skall samplingen hos stoppbyten inträffa vid 884i1O ps efter startbyten sändes. Högre överförings- hastighet kräver högre precision och vid 1 Mbps skall precisionen hos det sista sampelvärdet vara :100 ns. Vid en klockfrekvens av 100 MHz skall 1 Mbps motsvara 10 cykler av den totala driften hos samplingssystemet och en bitlängd av 100 cykler. Motsvarande värden gäller för transmittern. Den sista kända byten får inte driva mer än 10% av bitlängden.
IEEE 1284-protokollet är ett asynkront dubbelriktat parallellt kommunikationsprotokoll, som ofta används för förbindelser mellan en terminal och skrivare eller andra periferienheter. Gränssnittet följer IEEE-1284-standarden, som stödjer fem olika kommunikationslägen. Kompatibilitets- läget tillhandahåller värd-till-periferienhetskommunikation på ett sätt kompatibelt med det vanligen använda riktade Centronics-gränssnittet. Nibbel- och byteläget tillhanda- häller periferienhet-till-värdkommunikation och kan kombi- neras med kompatibilitetsläget för att bilda en dubbelrik- tad operation. I nibbelläget sänds data som tvä sekventiella nibbel på statusledningarna. ECP- och EPP- lägena tillhandahåller symmetrisk respektive asymmetrisk dubbelriktad kommunikation mellan värd och periferienhet. 1284-elektriska-gränssnittet består av en 25 stifts D-shell anslutning, IEEE 1284-A-anslutning. Den PC-kompa- tibla anslutningen är känd såsom det klassiska 36 stifts D- 10 15 20 25 30 520 126 990412 E : \PUBLIC\DOC\P\332L3037S .dOC JA/LJ 7 shell Centronics gränssnittet, exempelvis IEEE 1284-B- anslutningen. IEEE 1284-C-anslutningen är en 36 stifts anslutning med högre densitet. Det finns 19 olika gräns- snitts ej visade status/datasignaler. Några av dessa signaler är nämnda med sina standardnamn i den följande beskrivningen.
IEEE 1284-ptotokollet medger att dubbelriktad data överförs mellan en värd och periferienhet. Varje över- föringsläge består av flera tillstånd. När data överförs från värden till periferienheten sägs gränssnittet vara i framàtfas. När data överförs i den andra riktningen är gränssnittet i backfas. När läget skall ändras är gräns- snittet i förhandlingsfasen.
Gränssnittet kan vara i både framåt vilande och bakåt vilande faser, väntande på att en dataöverföring skall initieras. Värden driver åtta dataledningar och pulsar nStrobe låg. Periferienheten svarar genom att sätta upp- tagen hög. När den är redo för nästa byte pulsar periferi- enheten nAck låg och sätter sedan upptagen låg. En över- föringshastighet av 10 Mb/s motsvarar en dataöverförings- cykeltid av 100 ns. Vid 100 MHz klockfrekvens innebär detta 10 cykler för varje dataöverföring.
ATA, Advanced Technology Attachment, är det offi- ciella namnet för IDE-, Integrated Disk Electronics, gräns- snittet. ATA var initialt använt som hårddiskstyrenhet för IBM AT-datorn, men snart följde andra tillverkare IBM och började använda denna standard i deras egna produkter. Den första ATA-standarden definierades 1994 och är känd såsom ANSI X3,T9,2 standarden. Denna definierade en 16 bitars gränssnittsstandard för användning hos hårddiskenheter.
Standarden stödjer två hårddiskar på varje kabel.
Standarden har två olika dataöverföringslägen, via pro- grammerad I/U (PIU) eller direkt minnesaccess (DMA). Senare definierades ATA-2, ATA-3 och ATA-4 standarder. Den offi- 15 20 25 30 35 520 126 8 990412 E z \PUBLIC\DOC\P\33l3037s.dOC JA/LJ ciella ATA-standarden följdes av flera populära namn såsom snabb-ATA, ultra-ATA, ATAPI, IDE och EIDE.
EIDE-gränssnittet är inte en formell ATA-standard men definierar en uppsättning utökningar till den ursprungliga ATA-standarden.
Maximal dataöverföringshastighet för EIDE är 13,3 Mb/s. Den nya ATA~standarden är ATA-4-standarden, som innefattar det för närvarande mycket använda Ultra-DMA överföringsprotokollet och ATAPI (ATA Packet Interface) CD- ROM-gränssnittet.
ATA-3 elektriska gränssnittet utgörs av en 40-stifts anslutning plus en ytterligare 4-stifts DC-anslutning.
Standarden definierar 31 gränssnitts-status/datasignaler.
En ATA DMA överföring föregås alltid av en sekvens av PIU-skrivningar i hàrddiskenhetens 8-bitars specialregis- ter. Denna görs för att sätta upp följande DMA-överföring.
När diskenheten är redo för en DMA-överföring säkrar den DMARQ-signalen.
Värden svarar genom att säkra DMACK och DIOR för en DMA-läsning eller DIOW för en DMA-skrivning. Data låses pà varje fallande flank hos DIOR/DIOW och skall vara giltig under ett väldefinierat tidsintervall. En DMA-överföring avslutas av periferienheten genom att negera DMARQ före värden negerar DIOR/DIOW under den sista överföringen. ATA- cykeltiden är definierad såsom tiden mellan två fallande flanker hos DIOR/DIOW. ATA-3-tillståndet 2 stödjer en cykeltid av 120 ns. Ultra-ATA-protokollet skiljer sig från standard ATA DMA-överföringen på ett sådant sätt att disk- enheten medges att styra en överföring. Detta görs genom att lägga till fyra kontrollsignaler till gränssnittet: HDMARDY Host DMA Ready (värd DMA redo); HSTROBE Host Strobe (värdavsökare); DDMARDY Device DMA Ready (enhet DMA redo); DSTROBE Device Strobe I traditionell ATA styr värden dataavsökningssignalen (enhetsavsökare).
(DIOR/DIOW). I ultra-ATA styr hårddiskenheten dataavsökaren 10 15 20 25 30 35 520 126 9 990412 E z \PUBLIC\DOC\P\33l3037S .dOC JÅ/LJ (DSTROBE) under en DMA-läsningsskur, medan värden styr dataavsökaren (HSTROBE) under en DMA-skrivningsskur. Detta medger högre överföringshastighet. Data låses på både stigande och fallande flank hos avsökningssignalen, som dubblerar dataöverföringshastigheten jämfört med traditio- nella ATA DMA-överföringar.
Den minimala cykeltiden i Ultra-ATA specificeras till 55 ns (läge 2). I ett 100 MHz system skulle detta motsvara 5,5 klockcykler.
En I/U-processor enligt uppfinningen skall vara om- programmerbar till varje generellt I/U-protokoll. De häri beskrivna protokollen är endast exempel. Konstruktionsmålet för RS-232 är fyra oberoende 1 Mbit/s kanaler. Detta kräver åtta oberoende processer eftersom varje kanal består av en transmitter och en mottagare. Synkroniseringen av signaler- na måste vara ganska exakt vid högre överföringshastig- heter. Det máste finnas sätt att skapa pulser med en speci- fik längd och sätt att sampla en signal vid en specifik tidpunkt. Dessutom måste det finnas någon sorts UART (Uni- versal Asynchronous Receiver Transmitter)-krets för att konvertera seriell till parallell data och vice versa.
IEEE-1284-protokollet använder en 8-bitars buss, varvid en bussarkitektur används för att uppnå en över- föringshastighet av 10 Mb/s. Kommunikationen är dubbelrik- tad och databussen skall därför alltså vara dubbelriktad.
Förekomsten av de olika lägena och multipla lägesföränd- ringarna kräver någon sorts kommandon mellan huvudsystemet (CPU) och I/U-processorn.
ATA-protokollet har en cykeltid av omkring 60 ns och en hög klockfrekvens hos I/U-systemet skall underlätta implementationen av ATA-stöd. Användningen av en 16-bitars dubbelriktad dataledning kräver en 16-biltars I/U-buss. För att öka prestandan hos hela systemet skulle det vara bra med ytterligare funktioner såsom automatisk adressuppräk- ning för att öka hastigheten hos PIO-överföringar. I andra 10 15 20 25 30 35 520 126 990412 E:\PUBLIC\DOC\P\3313037S.dOC JA/LJ lO protokoll, såsom i SCSI-protokollet, är vissa dataöver- föringar väldigt tidskritiska. När data överförs i synkront tillstànd från den perifera enheten signalerar en avsökare att data är giltig och skall låsas. Data är endast giltig en kort tid och I/U-processorn måste därför omedelbart anta det rätta tillståndet för att låsa data oavsett vilka processer som kör parallellt. SCSI byggs runt olika faser och gränssnittet lyssnar ofta på en kombination av två eller flera signaler. Detta löses av någon sorts buss- arkitektur men det skulle vara ännu bättre att tillåta konstruktionen att kontrollera eller vänta på olika kom- binationer av signaler.
I den följande beskrivningen tillhandahålls flera bussbredd, steg i metoden etc i detalj för att ge en mer grundlig specifika detaljer, såsom adresstorlekar, antal beskrivning av föreliggande uppfinning. Det är uppenbart för fackmannen inom området att föreliggande uppfinning kan realiseras utan dessa specifika detaljer. En del välkända egenskaper är inte beskrivna i detalj för att inte göra uppfinningen oklar.
FIG 2 visar ett schematiskt blockdiagram av arkitek- turen för en utföringsform av I/U-processorn och dess /IU- processorkärna 12 i FIG 1.
Kärnan 12 är försedd med fyra FIFO styrenheter 16 använda för att hantera FIFO-köerna ll. FIFO-styrenheterna 16 uppdaterar FIFO-statusregister. De läser och skriver också datablock, där ett block kan vara 8, 16, 24 eller 32 bitar. För att göra det möjligt att kontrollera om det finns fler än ett visst antal block att läsa eller till- räckligt utrymme för ett visst antal att skriva, innefattas också två register. Ett av dessa register används för att lagra ett värde, mot vilket mängden fria block jämförs.
Detta görs kontinuerligt och resultatet visas i FIFO- statusregistren gt_free bit (värdet större än free). Det andra registret används för att lagra ett värde, mot vilket 15 20 25 990412 E;\PU'BLIC\DOC\P\33l3037S . doc JA/LJ ll antalet tillgängliga block för läsning jämförs. Resultatet från denna jämförelse visas i ett lt_avail bit (värdet mindre än avail). Instruktionerna till dessa funktioner visas i tabell 1.
Tabell 1.
Instruktion Beskrivning LFF (ladda värde till FIFO Lada värdet som är jämfört free, större än) med (större än) antalet fria block i FIFO.
LFA (Ladda värde till FIFO Ladda det värde som är Avail, mindre än) jämfört med (mindre än) antalet tillgängliga block i FIFO.
“ALU 18 I/U-processorkärnan 12 är en 16-bitars RISC-konstruk- tion. Kärnan 12 är byggd som en rörledningsprocessor med två steg, beskrivna sedan. Antalet rörledningssteg är en kompromiss mellan klockhastigheten och antalet klockcykler det tar för en instruktion att slutföras.
FIG 3 är ett schematiskt blockdiagram av en I/U- processorkärna enligt uppfinningen. En PC-hanterare 17 (PC = Program Counter = programräknare) används för att hantera alla avbrott och händelser. Alla adresser för avbrotts- och händelserutinerna lagras i PC-hanteraren 17. Dessa adresser sätts av instruktionerna LIR (Load Interrupt Register = och LER Alla adresser i I/U-processor- ladda avbrottsregister) (Load Event Register = ladda händelseregister). kärnan 12 är 11 bitar breda; detta medger 2k instruktions- Detta är tillräckligt för att implementera 14 och 15.
För att starta villkorliga hoppinstruktioner har I/U- minne pá chipet. åtminstone de beskrivna protokollen 13, processorkärnan 12 två flaggor: en ordinär nollflagga (Z- flag) (X-flag). om resultatet är lika och en utökad flagga Z-flaggan sätts av en (Arithmetic and Logic Unit) 10 15 20 25 520 126 990412 E:\PUBLIC\DOC\P\33l3037s .dOC JA/LJ med noll. X-flaggan sätts av ALU shift-instruktionen men sätts också när ett generellt I/U-stift känns av och när en timerbuffert läses. Tabell 2 beskriver fem villkorliga hoppinstruktioner. Det skall noteras att pga den logiska rörledningen har alla villkorliga hoppinstruktioner en Denna fördröjningslucka (instruktionen utförs alltid och fördröjningslucka. efter den villkorliga hoppinstruktionen) skall, om möjligt, användas.
Tabell 2.
Villkorlig hoppinstruktion Beskrivning BRA (BRanch Always) Alltid hopp, inte villkorligt BEQ (Branch if EQual) Hopp om Z-flaggan = l BNE (Branch if Not Equal) Hopp om Z-flaggan = O BXE (Branch if X-flag Equal) Hopp om X-flaggan = 0 BXN (Branch if X-flag Not Hopp om X-flaggan = l Equal) PC-hanteraren 17 har även tre ytterligare instruk- tioner: l. RTI (ReTurn from Interrupt = återgång från avbrott) instruktionen, som används vid slutet av en avbrottsrutin. Den återlagrar PCn med returadressen; den àterlagrar också Z- och X-flaggan. 2. CRA som tillåter användaren att ändra avbrottsreturadressen, (Change Return Address = ändra returadress) vilket är användbart när ett avbrott indikerar att något fel har inträffat. 3. WTE (WaiT for Event) processorn tills en händelse eller ett avbrott inträffar. instruktionen som ”pausar” Notera att det inte är att rekommendera att använda en WTE- instruktion inuti en avbrottsrutin.
Registerbanken 19 i I/U-processorkärnan innefattar 10 generella 16-bitars breda register. Eftersom många proto- (l byte) koll endast använder 8 bitar kan registren delas 15 20 25 30 35 520 126 990412 E: \PUBLIC\DOC\P\33l3037S .dOC JA/IJ 13 så att ett 16-bitars register kan användas såsom 2 8-bitars Detta görs i ALUn 18 med SWP (SWaP)-instruk- som byter ut de övre 8 och lägre 8 bitarna. Alla register. tionen, ALU-instruktioner kan sedan utföras antingen per byte (de (alla 16 bitarna).
Data in till lägre 8 bitarna) Register- banken 19 hanterar också data in till ALUn 18.
ALUn 18 kan antingen vara från registerbanken 19 eller från eller per ord en av de följande källorna: Instruktionskod, direkt data, LRI (Load Register med Immediate); FIFO-data, F2R (FIFO till register) och R2F (register till FIFO); FIFO_status, varvid varje FIFO_styrenhet har ett 16- bitars brett statusregister, som både kan skrivas (SFS, Set FIFO-status) och läsas (CFS, Check FIFO-status); Bussdata, BZR (buss till register) och R2B (register till buss); Kommandoregister 20, och skriv med SCR Läs med CCT (Set Command registret mot CPUn.
(Check Command Register) Register); och Stiftregister, ett register med 14 stift, använt för att kontrollera/känna av flera stift samtidigt. 16 bitar, kommandon mellan CPUn 1 och I/U-processorn 2 och omvänt.
Kommandoregistret 20, används för att byta Detta register är de facto två register, ett i vilket CPUn skriver och ett i vilket I/U-processorn 2 kan skriva. När CPU-kommandoregistret ändras (exempelvis när CPUn ger ett genereras ett avbrott till I/U-processorn 2. Ett (baudhastighet) kommando) exempel på ett kommando är baudrate när en RS-232 kanal sätts upp.
ALUn 18 vanliga ALU-instruktioner. har de flesta Enligt vad som beskrivits ovan (Arithmetic and Logic Unit) angående registerbanken 19 kan ALUn 18 behandla både byte (8 bitar) (16 bitar). är lika med noll. Alla ALU-operationer finns i tabell 3. och ord Z-flaggan sätts om resultatet W Ü 520 990412 E. : \PUBLIC\DOC\P\33l3037s _ dOC JA/LJ 126 14 Tabell 3.
Instruktion Beskrivning INC (INCrease) Ökar med l DEC (DECrease) Minskar med 1 CMP (CoMPare) Sätter Z-flaggan om lika AND Ordinärt OCH OR Ordinärt ELLER NOT Ordinärt ICKE ROR (Rotate Right) Skifta i X-flaggan från vänster. Den utskiftade byten placeras i X-flaggan.
SWP (SWaP) Växla de övre 8 bitarna med de lägre 8 bitarna.
MOV (MOVe) Kopiera ett register I/U-processorarkitekturen byggs runt 16 avbrott och 4 händelser. Det finns flera sätt att generera avbrott och händelser, se tabell 4.' Tabell 4.
Källa Avbrott Händelse Timer Ja, varje varv Ja, varje varv Styrenhet Ja Ja Instr. Kod Ja Nej Flera stift = bit- Nej Ja mönster bara instruktionsadresser, Alla avbrott och händelser har sina egna programmer- exempelvis subrutinadresser.
Eftersom det inte finns någon kö för avbrott eller händelser måste signalenheten behålla signalen ända tills den tar emot en kvittens. Att köa signaler är inte väsentligt eftersom rutinerna som utförs ofta är väldigt W ß 20 25 30 35 520 126 990412 E;\PUBLIC\DOC\P\33l3037S.dOC JA/LJ korta (4-5 instruktioner). Istället används prioritet för att välja bland avbrott eller händelser. Avbrott O har den högsta prioriteten och avbrott 15 har den lägsta. Händelser arbetar på en lägre nivå och har lägre prioritet än alla avbrott.
När ett avbrott inträffar lagras flaggorna och åter- hoppsadresserna och exekveringen fortsätter vid motsvarande avbrottsadress. Inuti avbrottsrutinen är det möjligt att ändra återhoppsadressen om så önskas; detta är användbart om ett fel inträffar och det är nödvändigt att avbryta och starta om igen.
Om ett avbrott inträffar fortsätter exekveringen vid den motsvarande händelseadressen. Händelserna har ingen àterhoppsadress och lagrar inte flaggan. Händelser aktive- ras inte förrän processorn är i sitt vänttillstånd, genom användning av WTE (Wait Event = vänta på händelser)- instruktionen.
Händelserna förväntas användas tillsammans med avbrott med mycket hög prioritet, vilka inte behöver stängas ute av några kritiska händelser. Mindre viktig signalering skall hanteras av händelsehanteraren, som medger att viktiga avbrott hanteras omedelbart. Ett bra exempel är protokoll där periferienheten driver en krav- signal hög för att indikera att data är giltig och kan låsas in. Om detta är ett mycket snabbt protokoll (dvs tidskritiskt) måste I/U-processorn 2 omedelbart gå in i det lämpliga avbrottet och läsa databussen.
Avbrottsrutinadresserna lagras i l6 ll-bitars av- Dessa laddas av LIR (ladda avbrotts- instruktionen. Avbrottskällan och prioritetsord- brottsregister. register) ningen visas i tabell 5. Avbrottet 13 är ett speciellt avbrott och det aktiveras av instruktionskoden INT.
Användningen av detta avbrott kan exempelvis ske om man vill dra fördel av det faktum att I/U-processorn inte tillåter avbrott i avbrotten. Om en väldigt tidskritisk 15 52o 126 ;»«~f.»».«@ ;~» 990412 E:\PUBLIC\DOC\P\33l3037S.doc JA/LJ f' '_- _ ; ; _' j , j* ' L _. Q 16 operation sålunda skall utföras kan INT-instruktionen användas för att gå in i en avbrottsrutin och göra arbetet där.
Tabell 5.
Prioritet, 0 = högst Källa O Timer O 1 Styrenhet O 2 Timer 1 3 Styrenhetl 4 Timer 2 5 Styrenhet 2 6 Timer 3 7 Styrenhet 3 8 Timer 4 9 Styrenhet 4 10 Timer 5 ll Styrenhet 5 12 Timer 6 13 INT (Instruktionskod) 14 Timer 7 15 CPU De fyra händelseadresserna lagras i fyra 11-bitars Dessa laddas av LER (Load Event Register händelseregister. = ladda händelseregister)-instruktionen. De fyra händelser- na kan väljas från 6 styrenheter, 7 klockregister (timer) eller två stiftmasker av LES (Load Event Select = ladda händelseval) instruktionen. Såsom med avbrotten är det händelse O som har den högsta prioriteten.
Enligt vad som framgår av FIG 4 har I/U-processorn 2 två 8-bitars stift-maskregister 21, och dessa register används tillsammans med klockregistrets stiftvalsregister 22. Maskregistren 21 används för att välja en kombination av stift medelst en OCH-grind 23, jämförelsekomponent 24, med två 8-bitars stiftmaskjämförar- som jämförs, medelst en 15 20 25 990412 E: \PUBLIC\DOC\P\33l3037S .dOC JÅ/ §2o 126 17 register 25. Denna lösning gör det möjligt att vänta på en kombination av flera signaler och sedan generera en händelse. Denna egenskap behövs inte i de tre grundläggande protokollen 13, 14 och 15, men i andra protokoll (dvs SCSI) är den väldigt användbar.
I/U-processorarkitekturen innefattar 8 speciella 15- visade i FIG 2. Värdet hos klock- registret 21 lagras i ett 16-bitars register 27 (klock- visat i FIG 5, varvid den 16:e byten används för att indikera om klockregistret 26 är aktivt eller inaktivt. bitars klockregister 26, register), Ett klockregister räknar kontinuerligt ända tills det stoppas och genererar ett avbrott eller en händelse varje varv. Det är tillåtet att ändra ett klockregisters värde under en räkning; under nästa varv laddas det nya värdet i klockregistret. Ett klockregister kan startas av en styrenhet eller från instruktionskoden.
Ett andra register, ett 8-bitar brett utökat klock- register 28, används för speciella funktioner för klock- registren. Med detta register är det möjligt att utföra olika egenskaper vid varje varv. msb i detta register används för att välja om en händelse (msb = 1) eller ett avbrott (msb = O) skall genereras. Det finns fyra tillstånd för varje klockregister (timer), se tabell 6; olika till- stånd väljs i det utökade klockregistret 28. En funktionell vy av ett klockregister illustreras i FIG 6.
Tabell 6.
Tillstånd Beteende hos klockregistret, vid sidan av alstring av IRQ eller händelse O Ingen, ordinärt klockregister 1 Sampla ett stiftvärde och lagra dess värde för senare användning 2 Sätter det valda stiftet lågt 3 Sätter det valda stiftet högt W Ü 20 25 990412 E:\PUBLIC\DOC\P\3313037S . dOC JÅ/LJ 18 Ett exempel på både klockregistren och styrenheterna beskrivs senare.
I/U-processorarkitekturen innefattar också 6 spe- cialiserade stiftstyrenheter 29, visade i FIG 2. En styr- enhet känner kontinuerligt av en av 32 stift i en stift- väljare för hög eller låg. Om det valda stiftet går högt eller lågt, kontrollerat i en väntkrets 31, genererar styr- enheten 29 ett avbrott 32 och/eller händelse 33. Styr- enheten 29 kan också starta en I/U-processor-timer 34. En styrenhet stoppar sig själv när det programmerade till- ståndet är uppfyllt. FIG 7 visar principen för en styr- enhet.
Beteendet hos styrenheterna sätts i dess 13-bitars styrenhetsregister 35. Olika tillstånd beskrivs i tabell 7.
Tabell 7.
Tillst. Beteende O Ingen effekt (inte använd) 1 Starta timer (inget IRQ) 2 Generera IRQ 3 Starta timer + Generera IRQ 4 Generera händelse 5 Starta timer + Generera händelse 6 Generera händelse + Generera IRQ 7 Generera händelse + Starta timer + Generera IRQ Konfigurerbar logik tar hand om synkroniseringen av inkommande signaler och gör det möjligt att dela stift mellan olika protokoll. Logiken arbetar såsom ett gräns- snitt mellan RISC-kärnan och de fysiska stiften. Men hur skall denna korfigurerbara logik konstrueras? Ett första angreppssätt kan vara att göra anslutningarna så flexibla som möjligt. Detta innebär att varje stift kan definieras 5:20 1:26 ikkïïf tiïšriy. KÉ;": W U 20 25 30 35 520 126 990412 E z \PUBLIC\DOC\P\33l3037S .dOc JA/LJ såsom ett generellt I/U-stift. För att öka hastigheten vid bussoperationer såsom en skrivoperation till ATA-data- stiften skall någon sorts buss definieras. En ideal lösning skulle vara att ha möjlighet att konfigurera något stift att tillhöra en buss i en speciell ordning. Detta skulle olyckligtvis kräva att orealistiskt stora register och multiplexrar skulle byggas. Att definiera fyra 16-bitars I/U-bussar på ett chip med 128 I/U-pinnar skulle ta upp till 1500 minneselement (exempelvis vippor) plus stora multiplexrar.
En mera realistisk lösning kan vara att ha ett antal fördefinierade bussar, som gör R/W från flera stift paral- lellt möjligt. Dessa skulle kunna vara anslutna till för- definierade stift. Förutom bussarna finns ett antal gene- rella I/U-stift klara att användas för handskakning och/eller signaldataledningar. Logiken kan frigöra en hel buss eller ett signal~I/U-stift, som kommer att resultera i ett Tristate-tillstånd och göra inmatning möjlig.
I/U-processorn 2 har 32 generella I/U-stift, två 8- bitars bussar 36 och två 16-bitars bussar 37. Alla stift (för att starta inmatning) med och TRB För att konfigurera ett och bussar kan vara Tristate instruktionerna TRP (Tristate pin = Tristate stift) (Tristate bus = tristatebuss). stift eller en buss för utmatning används instruktionerna NTP (Not Tristate pin = inte Tristatestift) och NTB (Not Tristate bus = inte Tristate-buss).
För att möjliggöra snabb dataöverföring mellan bussarna 36, 37 och FIFO-köerna ll medger I/U-processor- enligt vad som visas i (buss till FIFO) Det är också möjligt att modifiera arkitekturen direkta överföringar, FIG 9.
FZB (FIFO till buss). data genom att leda data genom registerbanken 19, De använda funktionerna är B2F och såsom beskrivits ovan.
Några protokollproblem är beskrivna och en lösning på som beskriver proto- problemet är presenterad. Programmet, 10 20 25 30 35 520 126 20 990412 E : \PUBLIC\DOC\?\33l3037s .dOC JA/LJ kollet, skrivs med assemblerinstruktioner. I/U-processor- assemblern konverterar sedan denna ordinära textfil till en binär fil. I/U-processorassembler kan hantera etiketter för att underlätta programskrivning. I de följande sektionerna löses och diskuteras ett flertal olika problem.
I denna sektion löses ett problem med styrenheter och klockregister, som visar fördelen med dessa block. Exemplet som följer är en del av mottagningsproceduren hos RS-232.
Konstruktionsmålet var fyra dubbelriktade RS-232 kanaler på samma gång.
Problem: När RS-232 tas emot väntar man på att en startbit 38 skall komma, varvid man efter startbyten måste sampla varje databit 39 i mitten av byten. Slutligen skall (#7) användas såsom en paritetsbit, men i detta lilla exempel en stoppbit detekteras 40. Den sista databyten kan visas inte hur en paritetskontroll implementeras.
Metod: Ladda värdet skall sättas till det antal I/U-processorcykler lika med 1.5 RS-232 bitar.
RS-232, RxD-signalen. Det samplade värdet hos RxD-signalen (starta inte) en timer, varvid timer- Timern skall också sättas att sampla lagras i ett speciellt l-bitars brett register, som kan läsas i avbrottsrutinen.
En I/U-processorstyrenhet används sedan för att känna av startbyten 38; varvid styrenheten startar timern och genererar ett avbrott. I avbrottsrutinen sätts ett fritt register upp för att lagra den mottagna byten. I samma avbrottsrutin laddas timern med värdet lika med längden hos en RS-232 bit. Timern samplar alla databitar 39 exakt vid rätt tid. om hand och ökar en räknare för att besluta om 8 databitar I timeravbrottsrutinen tas den samplade byten 39 39 har tagits emot. Eftersom timern själv samplar databyten är tiden för avbrottet inte kritisk. När alla 8 bitar tagits emot skall timern sampla stoppbyten 40 och sedan stoppa. I den sista avbrottsrutinen kan den mottagna byten placeras i FIFO ll till CPUn l. Denna rutin återladdar W 20 25 30 35 520 126 990412 E:\PUBLIC\DOC\P\3313037S . dOC JA/LJ (med 1,5) känna av en ytterligare startbit, också timervärdet och startar styrenheten för att som indikerar en ytter- ligare byte som skall tas emot.
I detta avsnitt löses ett problem med händelser.
Exemplet som kommer att följas är en förhandling från kompatibilitetstillstånd till nibbeltillstånd i IEEE-l284- protokollet.
Exempel: svårigheterna vid kommunicering i IEEE-1284 är det stora antalet stift (8) använda vid handskakning.
Detta exempel följer strikt tidsdiagrammet visat i FIG ll.
Numren som står till vänster om stiftnamnen är stiftnummer.
Bokstaven H och P indikerar om signalen är värd- eller periferidriven. I detta exempel arbetar AJAX som en värd.
Slutligen är Tp den minimala pulsen för detta protokoll.
Denna tid är 500 ns. Om vi antar att I/U-processorn klockas vid 200 MHz är detta lika med 100 klockcykler. Notera att numren vid bottenraden indikerar de olika tidpunkterna.
Metod: Placera 0000 0000 på databussen (buss 0) (punkt 0), ladda sedan en timer att vänta i Tp-sekunder.
Sätt sedan en nSelectin hög och en nAutoFd låg (punkt 1); dessa signaler är en begäran till periferienheten om det är en IEEE-1284 kompatibel enhet. nFault och Börja att känna av stiften PError, nAck, Select för svarssignaturen i IEEE-1284. Vid denna punkt måste även en timer starta för att räkna en tid förut- bestämd om periferienheten inte svarar. Denna maximala svarstiden IEEE-1284 är 35 us (lika med 7 000 000 I/U- processorcykler) men i detta exempel sätts timern till att vänta 7 000 cykler (lika med 35 ps).
Om periferienheten svarar korrekt (punkt 3,4). för en viss förutbestämd tid. (punkt 2), pulsas nstrobesignalen Timerräkningen stoppas också Vänta på nAck att gå hög (punkt 6), vilket indikerar att periferienheten har accepterat det begärda tillståndet.
W 20 25 30 35 520 126 990412 E: \PUBLIC\DOC\P\33l3037s .doc JA/IJ I/U-processorn är huvudsakligen implementerad i ett enfasklocksystem, men utrymmeskrävande registerbankar har implementerats såsom låskretsar i ett 2-fassystem. Hela konstruktionen är avsedd att klockas vid 200 MHz. 1-fas- systemet valdes eftersom klockperioden är väldigt kort och logiken ofta svår att dela in i två lika fördröjda delar.
Givetvis kunde tidsdelning mellan faser ha använts i ett 2- fassystem, men skulle ha krävt avancerade klockanalyser.
Vår strategi underlättar logikkonstruktionsarbetet, men tidsrestriktionerna hos registren är mera komplexa eftersom skrivsignaler till 2-faslàskretsar måste vara stabila vid den andra fasen. En andra nackdel är att de två faserna inte drabbas lika. Detta ökar risken för klockförskjutning men moderna teknologier har en väl fungerande klockträds- arkitektur, som ofta löser dessa problem.
Instruktionerna i I/U-processorarkitekturen är valda till 24-bitars ord för att hålla generell instruktionskod- ning plus generell instruktionskodning.
Instruktionsminnet är företrädesvis implementerat såsom ett på chipet integrerat RAM-minne. Storleken kan vara upp till 2048 ord. För att stödja en av RS-232, IEEE- l284 eller ATA-protokollen är den totala storleken som behövs mindre än 512 ord. Synkroniseringen hos RAMet 3 måste få plats inom en cykel, exempelvis mindre än 5 ns.
RAMet 3 kan laddas seriellt av CPUn 2 eller genom att definiera nödvändiga stift i arkitekturen till att vara både RAM-programmerings och generella I/U-stift.
I/U-processorkärnan 12 implementeras såsom en två illustrerad i FIG 12.
(Instruction Fetch = hämta instruktion) Det första steget steget 41, Det stegs rörledning, är IF där instruktionerna läses in från det interna RAMet 3. andra och sista steget är EX (Execution = exekvering) steget 42, där operander hämtas och exekveras i ALUn 14.
Alla funktioner såsom stiftàtkomst, FIFO-åtkomst placeras också i detta andra steg 42.
W U 20 25 30 35 520 126 990412 E:\PUBL|IC\DOC\P\33l3037S.dOC JA/LJ Instruktionsminnet är placerat mellan två a-fasvippor 43, 44. EX-steget 42 är lite speciellt, eftersom de gene- rella registren är implementerade såsom b-låskretsar för att spara yta. FIG 13 illustrerar olika faser i EX-steget 42.
Exekveringen är placerad mellan två b-faser 45, 46, exempelvis registerbanken 19 och flaggregistren och delas av en a-fas 47 (låskretsar). Registren uppdateras 1,5 cykler efter IF-steget 41, som tillåts eftersom registren 19 inte anropas förrän 0,5 cykler efter IF-steget 41.
Instruktionerna passerar en första och andra instruktions- avkodare 48, 49 i EX-steget 42 för att styra olika kom- ponenter hos EX-steget 42.
Villkorliga hoppbeslut tas i den andra fasen hos EX- steget. Detta är en av de mest kritiska delarna hos I/U- processorkärnan 12. PC-hanterarlogiken 17 måste besluta om ett villkorligt hopp skall tas eller inte och välja den lämpliga PCn inom mindre än 2,5 ns.
PC-hanteraren 17 är delad i två olika delar. En första PC-hanterardel kontrollerar PCn och de Villkorliga hoppen och en andra PC-hanterardel är avbrotts- och händelsehanteraren. Avbrotts- och händelseadressregistren implementeras såsom b-låskretsar, återigen för att spara dyrbar yta. Logiken som hanterar prioriteten mellan avbrott och händelser är ganska komplex men gömd i PDS-kod. IRPn (Interrupt Return Pointer = avbrottsåterhoppspekare) är en 11-bitars vippa och inryms i PC-hanteraren 17. Valet av PC delas in i två steg 50 och 51, illustrerat i FIG 14, för att säkerställa att synkroniseringskraven skall vara upp- fyllda.
Direkt- och avbrottsadresserna en egen multiplexer 51. Dessa är de mest tidskritiska måste väljas av signalerna. PC++signalen är den uppräknade PCn och väljs som grundvärde vid normala instruktioner. RTI-instruktionen väljer IRP-adressen vid den första multiplexern 50 och den N Ü 20 25 “ 520 126 990412 s.\vus1.1c\:>oc\1=\a31so3v=.aoc .m/w : i A ~ i I' Ü ~ 24 normala vid den andra. Stoppadressen är helt enkelt samma PC som i den sista cykeln. När en händelse inträffar väljer väljlogiken händelseadressen. Konstruktionen kan återställas till varje adress, skickad via kommandoregist- ret från CPUn.
Registerbanken implementeras av b-låskretsar för att spara yta. Varje 16-bitarsregister delas in i två separata 8-bitarsregister. Dessa medger instruktionerna att skriva tillbaka resultatet till det lägre 8-bitarsfältet utan att påverka det övre 8-bitarsfältet hos ett register. Alla externa registerkällor är direkt tillgängliga såsom regis- ter enligt tabell 8. Höger FIFO-data och externa bussdata väljs av externa 4xl6 multiplexrar.
Tabell 8.
Register # Källa 10 direkt ll FIFO data 12 FIFO status l3 extern bussdata 14 kommandoregister 15 stiftvektor ALUn implementeras som både BDS-kod och manuellt konstruerad logik. Resultatet måste beräknas inom 2,5 ns, men detta är inte huvudproblemet. Uppdateringen av Z- flaggan är den mest kritiska delen. Det var inte möjligt att bygga en uppräknare eller nedräknare och därefter kontrollera om det producerade resultatet skulle resultera i en Z-flagga. Lösningen är att kontrollera om operanden som skall räknas upp (eller räknas ned) är lika med Oxffffffff (eller OxOOOOOOOl för nedräkningsoperationen).
Dess värden skall resultera i en att Z-flagga och testen UI är bara en 8-bitars OCH-grind plus inverterare. Detta är en W Ü 20 25 520 126 990412 E z \PUBLIC\DOC\P\3313037s _ dOC JA/LJ mycket snabbare test än uppräkningen plus jämförelseopera- tioner.
Den slutgiltiga implementationen av I/U-processorn 2 innefattar 8 klockregister (timer). Klockregistren är byggda som separata block, visade i FIG 6. Klockregister- blocken innefattar två register i varje klockregister, registren är implementerade såsom vippor. Ett klockregister är implementerat mellan två a-faser. Klockregisterhändelser och avbrottssignalerna är kopplade till PC-hanteraren. Om klockregistret är satt att sampla en bit lagras det samplade resultatet i en vippa. Denna vippa kan läsas av instruktionen RTB (Read Timer Buffer = läs klockregister- buffert). Det av det utökade klockregistret valda stiftet är kopplat till stiftregistret i registerbanken 19, men också till maskregistret 21. Tabell 9 visar stiften i stiftvektorn 22.
Det finns sex stiftstyrenheter 29 i I/U-processor- implementationen. Liksom för klockregistren är styrenheter- na byggda såsom separata block, mellan två av-faser.
Styrenheten innefattar styrenhetsregister, som är implemen- terade med vippor. En beskrivning av en styrenhet är illustrerad i FIG 7. Stiftet valt i styrenheten inkluderas i stiftvektorn i registerbanken, se tabell 9.
Tabell 9 Stiftregisterbit Källa Stiftregisterbit Källa 0 Timer O 8 Styrenhet 0 l Timer l 9 Styrenhet 1 2 Timer 2 10 Styrenhet 2 3 Timer 3 ll Styrenhet 3 4 Timer 4 12 Styrenhet 4 5 Timer 5 13 Styrenhet 5 6 Timer 6 7 Timer 7 10 520 126 26 990412 E : \PUBLIC\DOC\P\3313037S .dOC JA/LJ Alla stift och bussar kan vara individuella Tristate.
Tristatedata och stiftvärden lagras i speciella register såsom i FIG 15.
En nolla i Tristateregistret medför att stiftet arbetar såsom en utgång och en etta såsom en ingång.
Det är uppenbart att föreliggande uppfinning till- handahåller ett förbättrat in/utmatningsstyrsystem, som stödjer olika protokoll. Även om uppfinningen har beskri- vits i samband med en specifik utföringsform, är denna uppfinning tillämplig på utföringsformer i olika former, med förståelsen att den aktuella beskrivningen skall betraktas såsom en exemplifiering av principerna för upp- finningen och är inte avsedd att begränsa uppfinningen till den illustrerade specifika utföringsformen.

Claims (9)

W Ü 20 25 30 35 520 126 990412 E : \PUBLIC\DOC\P\33l3037S .dQC JA/LJ PATENTKRAV
1. Integrerad I/U-processor för styrning och kommuni- kation med periferienheter, kännetecknad av en I/U-pro- cessorkärna (12), (29) för läsning och inställning av fysiska I/U-stift (6), innefattande åtminstone en stiftstyrenhet för att starta klockregister och generera avbrott för I/U- processorkärnan (12), åtminstone ett klockregister (26) för sampling av I/U-stiften (6), inställning av I/U-stiften (6) och generering av avbrott för I/U-processorkärnan (12) vid väldefinierade tidpunkter, varvid I/U-processorkärnan (12) tillhandahåller instruktioner för att styra nämnda (26) och I/U- som lagrar instruktioner stiftstyrenhet (29), nämnda klockregister stift (6), ett integrerat RAM (3), för I/U-processorkärnan (12), åtminstone ett register (4) för att utbyta information mellan I/U-processorn (2) och en ansluten CPU(1) på samma chip och omvänt, konfigurerbar logik (5), kopplad mellan kärnan (12) och I/U-stiften (6), för synkronisering av inkommande och/eller utgående signaler.
2. Integrerad I/U-processor enligt krav 1, att den konfigurerbara logiken dessutom anslutet till stiftnivå- (33), (FIG 7). kännetecknad av innefattar stiftväljarorgan (30) (31), eller klockregisterstartsignaler (34) jämförande organ för att generera händelser avbrott (32)
3. Integrerad I/U-processor enligt något av före- 32 I/U-stift (6) samt två 8-bitars och två 16-bitars bussar (37) och FIFO-köerna (11) (FIG 2). gående krav, kännetecknad av anslutna till den konfigurerbara logiken (5) bussar (36) anslutna till kärnan (12)
4. Integrerad I/U-processor enligt krav 3, kännetecknad av av en I/U-processorarkitektur som möjlig- gör snabb dataöverföring genom att medge direkt överföring mellan bussarna (36, 37) och FIFO-köerna (11) (FIG 9). W U 20 25 30 520 126 990412 E: \PUBLIC\DOC\P\)3 130375 .dOC JA/LJ
5. Integrerad I/U-processor enligt något av före- gående krav, kännetecknad av att RS-232 (13), IEEE-1284 (14), ATA (15) och scsl-protokoll stöds (FIG 1).
6. Integrerad I/U-processor enligt nàgot av före- att bitars stiftmaskregister (21) och att dessa register (22), maskregistren (21) används för att välja en kombination av stift (6), medelst en OCH-grind (23), vilka (24), med 8-bitars stift- maskjämförarregister (25), vilket möjliggör för I/U- gàende krav, kännetecknad av I/U-processorn (2) har 8- används tillsammans med stiftväljarregister varvid jämförs, medelst en jämförande komponent processorn att vänta på en kombination av flera signaler och sedan generera en händelse (FIG 4).
7. Integrerad I/U-processor enligt något av före- (12) är en tvàstegs logisk rörledning, varvid det första steget (41), interna RAMet (3), och det andra steget är ett EX-steg gående krav, kännetecknad av att I/U-processorkärnan är ett IF-steg där instruktionerna läses in från det (42), varvid operanderna hämtas och exekveras i ALUn (18) (FIG 12).
8. Metod för styrning av periferienheter som använder I/U-processorn enligt något av föregående krav, kännetecknad av att mottagningsförfarandet av RS-232- signaler innefattar stegen att: ladda ett klockregister (26) med antalet I/U-proces- sorcykler och ett värde för att sampla RS-232, RxD-sig- nalen; lagra samplingsvärdet av RXD-signalen i ett speciellt 1 bitars brett register, läsbart i en avbrottsrutin; 10 15 20 25 30 520 126 29 använda en I/U-processorstyrenhet (29) för att känna av en startbit (38), varvid styrenheten (29) startar klockregistret (26) och genererar ett avbrott; sätta upp ett fritt register för att lagra byten som tas emot; ladda klockregistret (26) med värdet lika med längden av en RS-232-bit; sampla alla databitar (39) vid rätt tidpunkt med (26); stega upp en räknare för att besluta om det förut- (39) när alla databitar tagits emot sampla stoppbyten (40) klockregistret bestämda antalet databitar har tagits emot; och sedan stoppa; i den sista avbrottsrutinen placera den mottagna byten i FIFO-kön (ll) för CPUn (l); äterladda klockregistervärdet; och starta styrenheten för att känna av en ytterligare startbit, som indikerar ytterligare en byte som skall tas emot (FIG 10).
9. Metod för styrning av periferienheter som använder I/U-processorn enligt något av krav l~7, kännetecknad av att en förhandling från kompabilitets- tillstànd till nibbeltillstånd i IEEE-1284-protokollet (84) innefattar stegen att: placera 0000 0000 pà databussen (buss 0) (punkt 0); ladda ett klockregister att vänta i Tp sekunder; sätta nSelectin hög och en nAutoFd låg (punkt 1); känna av stiften Perror, nAck, nFault och Select för svarssignaturen för IEEE-1284; starta ett klockregister för att räkna en förut- bestämd tid om periferienheten inte svarar; (punkt 2), om periferienheten svarar korrekt pulsa nStrobe-signalen (punkt 3, 4); 990412 E:\PUBLIC\DOC\P\33l3037S.d0c JA/LJ 5 2 Ü 1 2 6 30 stoppa klockregisterräkningen för en förutbestämd tid, och vänta på att nAck går hög (punkt 6), vilket indikerar att periferienheten har accepterat det begärda tillståndet 5 (FIG 11).
SE9704627A 1997-12-11 1997-12-11 I/U-Processor och metod för styrning av periferienheter SE520126C2 (sv)

Priority Applications (4)

Application Number Priority Date Filing Date Title
SE9704627A SE520126C2 (sv) 1997-12-11 1997-12-11 I/U-Processor och metod för styrning av periferienheter
US09/204,212 US6189052B1 (en) 1997-12-11 1998-12-02 On-chip i/o processor supporting different protocols having on-chip controller for reading and setting pins, starting timers, and generating interrupts at well defined points of time
JP10352666A JPH11238028A (ja) 1997-12-11 1998-12-11 入出力プロセッサ
JP2009259255A JP2010033614A (ja) 1997-12-11 2009-11-12 入出力プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9704627A SE520126C2 (sv) 1997-12-11 1997-12-11 I/U-Processor och metod för styrning av periferienheter

Publications (3)

Publication Number Publication Date
SE9704627D0 SE9704627D0 (sv) 1997-12-11
SE9704627L SE9704627L (sv) 1999-06-12
SE520126C2 true SE520126C2 (sv) 2003-05-27

Family

ID=20409354

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9704627A SE520126C2 (sv) 1997-12-11 1997-12-11 I/U-Processor och metod för styrning av periferienheter

Country Status (3)

Country Link
US (1) US6189052B1 (sv)
JP (2) JPH11238028A (sv)
SE (1) SE520126C2 (sv)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9805486D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Adapter
US6738821B1 (en) * 1999-01-26 2004-05-18 Adaptec, Inc. Ethernet storage protocol networks
US6532533B1 (en) * 1999-11-29 2003-03-11 Texas Instruments Incorporated Input/output system with mask register bit control of memory mapped access to individual input/output pins
DE10056198A1 (de) * 2000-11-13 2002-02-14 Infineon Technologies Ag Kommunikationssystem zum Austausch von Daten unter Verwendung eines zusätzlichen Prozessors
JP4832635B2 (ja) * 2000-12-05 2011-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーション データ伝送システム、データ伝送方法、データ記録装置およびコンピュータシステム
US7032038B1 (en) * 2001-03-22 2006-04-18 Xilinx, Inc. Configurable peripheral devices
US6961790B2 (en) * 2001-06-29 2005-11-01 Motorola, Inc. Self-extracting re-configurable interface used in modular electronic architecture
US7318112B2 (en) * 2001-10-11 2008-01-08 Texas Instruments Incorporated Universal interface simulating multiple interface protocols
US7206989B2 (en) * 2002-11-20 2007-04-17 Intel Corporation Integrated circuit having multiple modes of operation
US7543085B2 (en) * 2002-11-20 2009-06-02 Intel Corporation Integrated circuit having multiple modes of operation
US7093033B2 (en) * 2003-05-20 2006-08-15 Intel Corporation Integrated circuit capable of communicating using different communication protocols
US7502883B2 (en) * 2003-07-23 2009-03-10 Silicon Labs Cp, Inc. USB integrated module
US7506133B2 (en) * 2003-08-20 2009-03-17 Seiko Epson Corporation Method and apparatus for high speed addressing of a memory space from a relatively small address space
GB2411013B (en) * 2004-02-10 2006-05-31 Sendo Int Ltd Electronic device and methods of interrupting a processor therein
US20050210166A1 (en) * 2004-03-17 2005-09-22 Raymond Chow Dual function busy pin
US7484027B1 (en) * 2004-09-20 2009-01-27 Cypress Semiconductor Corporation Apparatus and method for configurable device pins
US8719112B2 (en) * 2009-11-24 2014-05-06 Microsoft Corporation Invocation of accessory-specific user experience
US7865629B1 (en) * 2009-11-24 2011-01-04 Microsoft Corporation Configurable connector for system-level communication
CN103329115B (zh) * 2010-10-04 2015-12-16 阿沃森特亨茨维尔公司 具有通信协议自动感测特征的远程访问装置
US9870337B2 (en) * 2013-02-28 2018-01-16 E3 Embedded Systems, Llc Method and apparatus for the processor independent embedded platform
CN104615388B (zh) * 2013-11-01 2017-12-22 精工爱普生株式会社 打印控制系统
IN2014DE02931A (sv) 2013-11-01 2015-06-26 Seiko Epson Corp
DE102015119201A1 (de) 2015-05-11 2016-11-17 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zum Konfigurieren einer Schnittstelleneinheit eines Computersystems
GB202100601D0 (en) * 2021-01-18 2021-03-03 Raspberry Pi Trading Ltd Interface and microcontroller
EP4187395A1 (de) * 2021-11-26 2023-05-31 Göpel electronic GmbH Verfahren und einrichtung zur emulation von übertragungsprotokollen zur ansteuerung von elektronischen bausteinen an einem bussystem

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6379444A (ja) * 1986-04-30 1988-04-09 Toshiba Corp シリアルデ−タ受信装置
US5426759A (en) * 1989-12-21 1995-06-20 Microchip Technology Incorporated On-chip/off-chip memory switching using system configuration bit
JPH0438154A (ja) * 1990-05-31 1992-02-07 Honda Motor Co Ltd 円筒状電機子巻線の製造方法
JPH04205192A (ja) * 1990-11-30 1992-07-27 Hitachi Ltd 半導体集積回路
US5423014A (en) * 1991-10-29 1995-06-06 Intel Corporation Instruction fetch unit with early instruction fetch mechanism
JP2864824B2 (ja) * 1991-12-19 1999-03-08 ヤマハ株式会社 データ伝送速度変換装置
US5535417A (en) * 1993-09-27 1996-07-09 Hitachi America, Inc. On-chip DMA controller with host computer interface employing boot sequencing and address generation schemes

Also Published As

Publication number Publication date
JPH11238028A (ja) 1999-08-31
JP2010033614A (ja) 2010-02-12
SE9704627L (sv) 1999-06-12
US6189052B1 (en) 2001-02-13
SE9704627D0 (sv) 1997-12-11

Similar Documents

Publication Publication Date Title
SE520126C2 (sv) I/U-Processor och metod för styrning av periferienheter
US6829660B2 (en) Supercharge message exchanger
JP2539614B2 (ja) ポインタアドレスを発生するための装置および方法
US7529862B2 (en) System for providing access of multiple data buffers to a data retaining and processing device
US5459839A (en) System and method for managing queue read and write pointers
JP7247213B2 (ja) デバッグコントローラ回路
TWI338835B (en) Method and apparatus for controlling a data processing system during debug
US5379386A (en) Micro channel interface controller
WO2004012091A2 (en) On chip network
US5812875A (en) Apparatus using a state device and a latching circuit to generate an acknowledgement signal in close proximity to the request signal for enhancing input/output controller operations
EP1032880A1 (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple agent processing system
US5388223A (en) 1-bit token ring arbitration architecture
JPH0865341A (ja) パケット・サイズの伝送速度を指定する方法及びシステム
US6330631B1 (en) Data alignment between buses
US6085261A (en) Method and apparatus for burst protocol in a data processing system
US5418930A (en) Circuit for interfacing asynchronous to synchronous communications
EP0772831A1 (en) Bidirectional parallel signal interface
WO1993024887A1 (en) High speed ieee 488 bus interface system and method
US6693914B1 (en) Arbitration mechanism for packet transmission
EP1793314B1 (en) Data transfer operations and buffer memories
US5708852A (en) Apparatus for serial port with pattern generation using state machine for controlling the removing of start and stop bits from serial bit data stream
JPH07182271A (ja) データ処理システムおよびロングワード・アドレスをサイクルする方法
JPH05324268A (ja) データ転送方式
GB2341468A (en) Serial port for a host adapter integrated circuit using a single designated terminal
JPH07129528A (ja) マルチプロセッサシステムにおける割込み処理方法及びその方式

Legal Events

Date Code Title Description
NUG Patent has lapsed