sa-1100 · wearable computers d, 10p sonja carlsson [email protected] 1 sa-1100 ett kapitel för...

25
Wearable Computers D, 10p Sonja Carlsson [email protected] 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105 Handledare: Lars Karlsson Björne Lindberg Ulf Brydsten

Upload: others

Post on 26-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

1

SA-1100

Ett kapitel för kursen Wearable Computers D 10 p

Namn: Sonja Carlsson Datum: 021105 Handledare: Lars Karlsson Björne Lindberg Ulf Brydsten

Page 2: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

2

Innehållsförteckning INLEDNING .................................................................................................................................................4

INTEL 4004 ..................................................................................................................................................4 SA-110 ........................................................................................................................................................4

SA-1100 ..........................................................................................................................................................5 ANVÄNDNINGSOMRÅDEN ............................................................................................................................5 BLOCKDIAGRAM ..........................................................................................................................................6

Block 1 - Processor .................................................................................................................................6 Block 2 - MPCM (Memory and PCMCIA Controller Module) ...............................................................6 Block 3 - PCM (Peripheral Control Module) .........................................................................................6 Block 4 - SCM (System Control Module) ................................................................................................6

PROCESSORN................................................................................................................................................7 ARM™V4................................................................................................................................................7 StrongARM-registren ..............................................................................................................................8 Instruktionsuppsättningen .......................................................................................................................9 Skrivbufferten ........................................................................................................................................11 Läsbuffert ..............................................................................................................................................11 Datacach ...............................................................................................................................................11 Instruktionscach ....................................................................................................................................11 MMU.....................................................................................................................................................12

MEMORY AND PCMCIA CONTROLLER MODULE ......................................................................................12 Minneskarta ..........................................................................................................................................12

PERIPHERAL CONTROL MODULE (PCM)....................................................................................................13 Serieportar ............................................................................................................................................14 Peripherial Pin Controller (PPC).........................................................................................................14

SYSTEM CONTROL MODULE (SCM) ..........................................................................................................15 General-Purpose I/O.............................................................................................................................15 Avbrottshanteraren ...............................................................................................................................15 Realtidsklockan (RTC) ..........................................................................................................................16 OS-klockan (OST) .................................................................................................................................16 Spänningshanteraren ............................................................................................................................16 Resethanteraren ....................................................................................................................................16

EXEMPEL – INITIERA DISPLAY....................................................................................................................17 FRAMTIDEN..............................................................................................................................................18

SA-1110 ....................................................................................................................................................18 APPENDIX A – KÄLLFÖRTECKNING.................................................................................................19

APPENDIX B – ORDLISTA......................................................................................................................20

APPENDIX C – SA-1100.H........................................................................................................................23

Page 3: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

3

Tabellförteckning TABELL 1 – PRODUKTINFORMATION SA-1100 ................................................................................................5 TABELL 2 – PPC-REGISTER ...........................................................................................................................14 TABELL 3 – GPIO-REGISTER .........................................................................................................................15 TABELL 4 – JÄMFÖRELSE MELLAN SA1100 OCH SA1110 .............................................................................18

Figurförteckning FIGUR 1 – INTEL 4004, 12 MM2........................................................................................................................4 FIGUR 2 – BLOCKDIAGRAM ÖVER SA-1100.....................................................................................................6 FIGUR 3 – REGISTERUPPSÄTTNINGEN FÖR ARM-ARKITEKTUREN ...................................................................8 FIGUR 4 – MINNESKARTAN ÖVER SA-1100 ...................................................................................................12 FIGUR 5 – PCM-HANTERAREN ......................................................................................................................13

Page 4: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

4

Inledning Det här kapitlet ägnas åt en överskikt över SA-1100 som är en mikroprocessor från Intel. Vissa områden kommer att behandlas mer ingående än andra och kapitlet ska ses som en introduktion över de största delarna. Den som önskar veta mer om SA-1100 rekommenderas läsa Intel® StrongARM® SA-1100 Microprocessor Developers’s Manual, på 388 sidor. För över 30 år sedan utvecklades världens första mikroprocessorn, Intel 4004, och sedan dess har nya och ständigt förbättrade processorer utvecklats av Intel.

Intel 4004 1971 kom Intel 4004, den bestod av en 4-bitarsprocessor, 2300 transistorer, en 4-bitarsbuss och en svindlade arbetsrymd på hela 640 bytes. Den drevs med 15 V och hade en klockfrekvens på imponerande 0,108 MHz vilket resulterar i 0,006 MIPS. Intels 4004:a kunde utföra ungefär 100 000 instruktioner per sekund och genom de 46 instruktionerna kunde bland annat addition och subtraktion beräknas.

FIGUR 1 – INTEL 4004, 12 MM2

SA-110 Ungefär 25 år senare, 1996, kom den första medlemmen i Intel StrongARM-familjen, SA-110. StrongARM står för den arkitekturlicens som upprättades mellan Digital Equipment Corporation (DEC) och ARM i februari 1995. SA-110 kombinerar ARM:s låga strömförbrukningsarkitektur, vilket resulterar i att processorn kan drivas med vanliga AA batterier, med DEC:s kraftfulla processordesign tillsammans med CMOS processexpertis. SA-110 riktar sig mot marknaden för bärbara inbyggda elektronikprodukter och finns i tre olika klockfrekvenser, 100 MHz, 160 MHz, och 200 MHz. Mikroprocessorn drivs med 1,65V upp till 2,0V beroende på klockfrekvens. Genom att använda små och billiga plastkapslar kunde priset på SA-110 hållas nere och produkten göras mer lättåtkomlig för den stora massan. SA-110 finns fortfarande i produktion, SA-1100 är en vidareutvecklig på SA-110.

Page 5: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

5

SA-1100 1998 kom den andra mikroprocessen från StrongARM-familjen, SA-1100. Precis som sin föregångare är den strömsnål, billig och har hög prestanda. SA-1100 är en 32-bitars RISC mikroprocessor med 16 Kbyte instruktionscache och 8 Kbyte datacache, den har även skrivbuffert, läsbuffert och MMU. Processorn är helt statisk och prestandan uppgår till ungefär 230 MIPS, SA-1100 ses som en av världens mest kraftfulla processorer med hänsyn på prestanda och effektförbrukning. SA-1100 finns i fyra utföranden: Namn DE–S1100–CA (LQFP)

DE–S1100–CB (mBGA) DE–S1100–DA (LQFP) DE–S1100–DB (mBGA)

Processorhastighet 160 MHz 220 MHz Kärnans spänningsförsörjning

Vss = 0.0 V dc Vdd = 2.0 V dc ± 5%

Vss = 0.0 V dc Vdd = 2.0 V dc ± 5%

I/O spänningsförsörjning

Vss = 0.0 V dc Vdd = 2.0 V dc ± 5%

Vss = 0.0 V dc Vdd = 3.3 V dc ± 10%

Typisk energiförlust (systemberoende)

< 430 mW < 550 mW

Temperatur Min : 0°C Max: 70°C.

Min : 0°C Max: 70°C

Förvaringstemperatur -20°C till +125°C -20°C till +125°C Kapsel 208-pin LQFP

256 mBGA 208-pin LQFP 256 mBGA

Processteknologi 0,35 µm, 3-lagers metall 0,35 µm, 3-lagers metall Antal transistorer 2,5 miljoner 2,5 miljoner TABELL 1 – PRODUKTINFORMATION SA-1100

Användningsområden Precis som SA-110 är SA-1100 en mikroprocessor speciellt framtagen för att undvika externa hjälpkretsar. Istället har dessa kretsar byggts in i processorn för att på så vis minska antalet chip och därmed spara både plats och kraft, följden av detta blir att systemet drar väldigt lite ström, men är föga uppgraderbart. SA-1100 kombinerar strömsnålheten med att även vara prestandastark och ha ett rimligt pris. Detta har lett till att mikroprocessorn har en bred marknad och finns i allt från enkla inbyggda system till avancerade datorer i satelliter. Det nederländska universitetet TUDelft (Delft University of Technology) har utvecklat en liten inbyggd dator, kallat LART (Linux Advanced Radio Terminal) vilken använder SA-1100. Att använda sig av LART:en i utvecklingssyfte ger en god inblick i SA-1100:s kapacitet. SA-1100 kan portas mot en mängd operativsystem, exempelvis Linux, NetBSD, pSOS och Windows CE.

Page 6: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

6

Blockdiagram SA-1100 består av fyra huvudsakliga block: processor, MPCM, PCM samt SCM.

FIGUR 2 – BLOCKDIAGRAM ÖVER SA-1100

Block 1 - Processor Processorn som används i SA-1100, har en 16 Kbyte instruktionscache och en 8 Kbyte datacache. Data- och instruktionsströmmarna översätts via oberoende IMMU:s respektive DMMU:s. Lagringen och laddningen av data sker via en skriv- respektive läsbuffert.

Block 2 - MPCM (Memory and PCMCIA Controller Module) MPCM stödjer 32-bitars EDO DRAM, Flash och ROM-minne med 16- eller 32-bitars bredd samt 32-bitars SDRAM.

Block 3 - PCM (Peripheral Control Module) Enheterna som kontrollerar kringutrustning är en LCD-hanterare med support för både passiva och aktiva displayer och en DMA-hanterare med sex kanaler, de tillhandahåller hjälp till följande enheter:

• USB-hanterare • SDLC kommunikationshanterare • Serieportshanterare som stödjer 115 Kbps och 4 Mbps IrDA protokoll • UART som stödjer 230 Kbps • CODEC-gränssnitt som stöder SPI, µWire, TI, UCB1100 och UCB1200

Block 4 - SCM (System Control Module) SCM är ansluten till kringutrustningsbussen och innehåller ett antal block som är avsedda för generella systemfunktioner:

• 28 st GPIO-pinnar • Realtidsklocka samt OS-klocka • Avbrottshanterare • Spänningshanterare • Resethanterare

Page 7: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

7

Processorn Processorn i SA-1100 är en ARM SA-1 kärna som är uppbyggd med ARM™V4-arkitekturen.

ARM™V4 ARM är en mikroprocessor med RISC-arkitektur, vilket innebär att processorn har en reducerad instruktionsuppsättning till skillnad mot CISC-processorerna. Fördelen med reducerad instruktionsuppsättning blir att hastigheten ökar då man exempelvis använder pipor (pipelining). Dessutom kan instruktions- och adresseringstillstånden (modes) göras liknande för de flesta instruktioner. ARM är en arkitektur som bygger på att ladda och spara data utan att direkt komma åt minnesinnehållet, istället används datahanteringsoperationer vilka enbart kan verka på registerinnehållet. ARM Ltd är det företag som ligger bakom ARM-processorarkitekturen och har sedan mitten av 80-talet (då gick företaget under namnet Acorn Computer Group) utvecklat RISC-processorer. Vid ett samarbete med Apple Computer, 1990, genereras företaget Advanced RISC Machines (ARM). Genom åren har sex olika versioner av instruktionsuppsättningar producerats av företaget. Version 1 ARMv1 kom våren 1985 och hade en 26-bitars instruktionsuppsättning. ARM1 var den enda implementation som gjordes och den innehöll bland annat enkla datahanteringsinstruktioner som kunde ladda och spara data. ARM1 var den första RISC-processorn som nådde den kommersiella marknaden men den kom enbart att finnas i ett fåtal utvärderingssystem. Version 2 Även den andra versionen av ARM:s arkitekturer hade en 26-bitars instruktionsuppsättning. Skillnaden från den tidigare versionen var exempelvis stödet för coprocessor samt stöd för multipla instruktioner. Version 2 implementerades i ARM2 samt ARM3. Version 3 Med den tredje versionen utökades instruktionsuppsättningen till 32-bitar samt ytterligare implementeringar av förändringar för att förnya arkitekturen, bland annat lades två nya processortillstånd till. ARMv3 var bakåtkompatibel med 26-bitars arkitekturerna. Huvudimplementationerna för denna version döptes till ARM6 (-91) och ARM7 (-93). Thumb (T- varianten) Från och med version 3 finns en omarbetad delmängd i ARM, kallat Thumb, denna delmängd görs gällande genom att ett ”T” läggs till, exempelvis ARMv4T. Thumb används för att öka prestandan för ARM-implementationer som använder en 16-bitars databuss, detta verkställs genom att sätta en specifik flagga som genererar en 16-bitars instruktionsuppsättning istället för en 32-bitars sätts. StrongARM-arkitekturen använder inte Thumb. Long multiply support (M- varianten) Den tredje versionen förde även med sig ett stöd för extra instruktioner som hanterar 32 x 32 -> 64 multiplikationer samt 32 x 32 + 64 -> 64 multiackumulationer. Från och med version 4 är long multiply support standard i ARM-arkitekturer, StrongARM-arkitekturen har därför M-variation implementerad. Version 4 1995 släppte ARM ytterligare en version med implementationerna ARM8 och ARM9, samt StrongARM. Det nya med version 4 var bland annat att arkitekturen även kunde ladda och spara halva word (16 bitar). Även den här versionen är till största delen bakåtkompatibel med 26-bitars versionerna. 1998 kom ARM910 samt ARM920 för Windows CE-lösningar.

Page 8: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

8

Processortillstånd med särskilda privilegium 5 st undantagstillstånd

Version 5 ARM10 släpptes 1998 och dess arkitektur utgjordes av den femte versionen av ARM:s arkitekturer. Version 5 är en utveckling av den fjärde versionen och innehåller bland annat fler instruktioner för coprocessorhanteringen samt utvecklig av Thumb-funktionen. Enhanced DSP (E-varianten) Från och med version 5 finns ytterligare en delmängd i ARM-arkitekturen som görs gällande med ett ”E” i namnet. Denna delmängd anger att det finns ett antal extra instruktioner som ökar prestandan vid DSP-applikationer (Digital Signal Processing). E-varianten kräver att Thumb finns implementerat, därför finns inget stöd för Enhanced DSP i StrongARM-arkitekturen. Jazelle (J-varianten) År 2000 introducerades Jazelle-teknologin i ARM:s arkitektur för att ge stöd åt Java Virtual Machine (JVM). StrongARM stödjer inte J-varianten. Version 6 2001 lanserades den senaste versionen av ARM:s arkitekturer, ARMv6. Denna version stödjer bland annat Thumb, Enhanced DSP samt Jazelle.

StrongARM-registren Den här rapporten behandlar StrongARM-arkitekturens uppbyggnad. Arkitekturen har 37 register, 31 stycken 32-bitars general-purpose register samt 6 stycken statusregister. Av dessa general-purpose register är bara 16 synliga, R0 till R15, de övriga registren används för att öka hastigheten vid undantagshantering. StrongARM-arkitekturens register är ordnade i olika banker, med en bank för varje processortillstånd. Det finns sju stycken processortillstånd: usr (user), svc (supervisor), abt (abort), irq (interrupt), fiq (fast interrupt) samt ett odefinierat tillstånd, se figur 3.

User System Super-visor

Abort Un-defined

Interrupt FIQ (Fast Interrupt)

R0 R0 R0 R0 R0 R0 R0 R1 R1 R1 R1 R1 R1 R1 R2 R2 R2 R2 R2 R2 R2 R3 R3 R3 R3 R3 R3 R3 R4 R4 R4 R4 R4 R4 R4 R5 R5 R5 R5 R5 R5 R5 R6 R6 R6 R6 R6 R6 R6 R7 R7 R7 R7 R7 R7 R7 R8 R8 R8 R8 R8 R8 R8_fiq R9 R9 R9 R9 R9 R9 R9_fiq

R10 R10 R10 R10 R10 R10 R10_fiq R11 R11 R11 R11 R11 R11 R11_fiq R12 R12 R12 R12 R12 R12 R12_fiq

R13 (sp) R13 (sp) R13_svc R13_abt R13_und R13_irq R13_fiq R14 (lr) R14 (lr) R14_svc R14_abt R13_und R14_irq R14_fiq R12 (pc) R12 (pc) R12 (pc) R12 (pc) R12 (pc) R12 (pc) R12 (pc) CPSR CPSR CPSR CPSR CPSR CPSR CPSR

SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq

FIGUR 3 – REGISTERUPPSÄTTNINGEN FÖR ARM-ARKITEKTUREN

Page 9: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

9

General-purpose register Register R0 till R7 är obankade register vilket innebär att de refererar till samma fysiska register i processorns alla tillstånd (mode). De har inget speciellt användningsområde och kan användas fritt så länge en instruktion har behov av ett general-purpose register. Register R8 till R14 är bankade register vilket innebär att de refererar till olika fysiska register beroende på vilket tillstånd processorn befinner sig i. I alla fall utom fast interrupt-tillståndet kan register R8 till R12 (se figur 3) användas på samma vis som R0 till R7. Register R13 till R14 är normalt reserverade för speciella syften men kan även användas som vanliga general-purpose register: R13 – stackpekare (sp) R14 – länkregister (lr) R15 – programräknare (pc) Register R13 används som stackpekare, StrongARM-arkitekturens stack kommer att växa mot de lägre minnesadresserna, således kommer sp peka på den sista posten som skrevs till, detta kallas ”full descending stack” (ungefär ”rakt nedstigande stack”). Länkregistret, R14 även kallat lr används för att lagra subrutiners returadress. Då en subrutins returadress returneras görs detta genom att kopiera värdet i lr till programräknarregistret (R15, pc). Program statusregister Det finns två 32-bitars programstatusregister, CPSR (Current Program Status Register) samt SPSR (Saved Program Status Register). CPSR kan nås från processorns alla tillstånd, SPSR kan dock ej nås från user mode samt system mode eftersom dessa tillstånd inte är undantagstillstånd (se figur 3). CPSR innehåller data om det tillstånd processorn befinner sig i för tillfället (4 bitar) samt 8 bitar information angående systemstatusen. Då ett avbrott inträffar kommer dessa värden att sparas i SPSR.

Instruktionsuppsättningen StrongARM har precis som andra RISC-processorer en fast längd på instruktionerna, i det här fallet 32-bitar. Det finns sex olika typer av instruktioner:

• hoppinstruktioner (branch) • ladda och spara instruktioner (load and store) • överföringsinstruktioner för statusregistret (status register transfer) • databehandlingsinstruktioner (data-processing) • undantagsgenererade instruktioner (exception-generating) • coproccessor instruktioner

De instruktioner som presenterats i detta avsnitt är ett urval från den kompletta listan som finns representerade i ARM Architecture Reference Manual - Issue D, 2000 Advanced RISC Machines LTD.

Page 10: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

10

Det finns 6 olika typer av hoppinstruktioner:

• B<cond> <mål_adress> tillåter ett ovillkorligt hopp bakåt eller framåt, upp till 2KB stora hopp

• B <mål_aderss> tillåter ett villkorligt hopp bakåt eller framåt, upp till 256 Byte stora hopp

• BL <mål_aderss> tillåter subrutins hopp bakåt eller framåt, upp till 4MB stora hopp

• BLX <mål_aderss> tillåter hopp till en adress i ett register och möjliggör byte till ”ARM code execution”

• BX <register> tillåter subrutins hopp och möjliggör byte till ”ARM code execution”

• BLX <register> tillåter hopp till en adress i ett register och möjliggör byte till ”ARM code execution”

Överföringsinstruktioner för statusregistret De instruktioner som hanterar överföringar i statusregistren transporterar innehållet i CPSR eller SPSR till eller från GPIO-registren. Databehandlingsinstruktioner Databehandlingsinstruktioner använder följande format: <mnemonic> <destination> <operator 1> (<operator 2>) destination är alltid ett register, och operator 1 och operator 2 kan vara ett register, ett skiftregister eller ett värde. Ett par exempel:

Addition (add) : add R1, #65 ;R1 = R1 + 65 Subtraktion (sub) : sub R1, R2, R3 ;R1 = R2 – R3 Logisk AND (and) : and R0, R1, R2 ;R0 = R1 AND R2 Logisk OR (orr) : orr R1, R2 ;R1 = R1 OR R2 Förflyttning (mov) : mov R0, R1 ;R0 = R1

Ladda och spara instruktioner Det finns flera olika instruktioner som kan ladda och spara, de kan alla hantera 32-bitars word, 16-bitars word eller 8 bitar. Genom att följa nedanstående syntax kan ett register laddas från minnet:

ladda 32 bitar: ldr RX, <adress> ladda 8 bitar: ldrb RX, <adress> Det finns givetvis även instruktioner som sparar registren i minnet:

spara 32 bitar: str RX, <adress> spara 8 bitar: strb RX, <adress>

ARM-arkitekturen tillåter även sparande och laddande av multipla register.

Page 11: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

11

Undantagsgenererade instruktioner Det finns två typer av instruktioner för att generera specifika avbrott:

• Mjukvaruavbrottsinstruktioner (swi) genererar undantag för mjukvaruavbrott

• Mjukvarubrytpunktsinstruktioner (bkpt) genererar undantag vid abort

Coproccessor instruktioner För att förhöja och förstärka ARM-arkitekturen finns coprocessor 15 implementerad. Coprocessor 15 Det är inte möjligt att lägga till externa coprocessorer till SA-1100 vilket beror på att mikroprocessorn saknar bussar för coprocessorer. Istället finns en intern coprocessor som betecknas coprocessor 15. Coprocessor 15 används för att kontrollera MMU:n, cacher, klockor och brytpunkter. Den ansvarar även för att läs- och skrivbuffertarna fylls och töms via kontrollregistret för buffertarna. Det finns tre typer av instruktioner som hanterar coprocessorn:

• Databehandlande instruktioner vilka startar en intern coprocessor-operation • Dataöverföringsinstruktioner vilka överför data mellan coprocessor och minne • Registeröverföringsinstruktioner vilka tillåter att värden från coprocessorn överförs till och från

StrongARM-arkitekturens register.

Skrivbufferten SA-1100 har en åtta raders skrivbuffert där varje rad innehåller upp till 16 byte. Då data skrivs till externa minnesenheter av CPU:n kommer skrivbufferten att buffra mellan CPU-frekvensen och den aktuella busshastigheten, allt för att öka effektiviteten.

Läsbuffert Läsbufferten består av fyra rader som kan ladda 1, 4 eller 8 word av data per rad. Genom mjukarukontroll av bufferten går det att tillåta att data laddas in i bufferten i förväg för att på så vis undvika att piporna (pipeline) blockeras under tiden de externa minnena avläses. Mjukvaran tillåts även tömma en eller alla rader på en gång.

Datacach SA-1100 har en datacache på 8 Kbytes, mikroprocessorn tillhandahåller även en minicache på 512 byte för att förhindra att stora periodiska dataöverföringar förstör datacachen.

Instruktionscach 16 Kbyte instruktionscache finns tillgänglig på mikroprocessorn och precis som datacachen är den implementerad som ett 32-byte block.

Page 12: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

12

MMU Intel SA-1100 använder sig av ARM™:s standard MMU-funktioner som använder två stycken 32-raders översättningsbuffertar (translations buffers, TB). Den ena används för dataåtkomst medan den andra nyttjas för instruktionsåtkomst. MMU, instruktionscache, datacache och skrivbuffert kan tas ur drift, respektive sättas i drift, i stort sett helt oberoende av varandra.

Memory and PCMCIA Controller Module SA-1100 innehåller en flexibel minneshanterare som kan nå olika typer av EDO RAM, DRAM, Flash, ROM och SROM.

Minneskarta Minneskartan för SA-1100 är uppdelad i fyra huvudsektioner om 1,024 Gbyte, se figur 4.

FIGUR 4 – MINNESKARTAN ÖVER SA-1100

Adress 0h0000 0000 till 0h3FFF FFFF Sektionen D är tillskriven statiska minnesenheter såsom Flash, RAM och ROM samt PCMCIA. Sektionen är uppdelad i fyra stycken 128 Mbyte-block för de statiska enheterna och två stycken 256 Mbyte-block som är tillägnade PCMCIA. Adress 0h4000 0000 till 0h7FFF FFFF C-sektionen är reserverad plats, alla försök att nå sektionen kommer att resultera i undantaget ”data abort”.

Page 13: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

13

Adress 0h8000 0000 till 0hBFFF FFFF Sektionen B är i sin tur uppdelad i fyra delar om 256 Mbyte. De tre nedersta delarna är tillskrivna kontrollregistren för MPCM, SCM, PCM (de största blocken i processorn). Den översta delen ockuperas enbart av PCM:ens LCD- och DMA-hanterare. Adress 0hC000 0000 till 0hFFFF FFFF I den översta sektionen, A, finns DRAM-minnet placerat i fyra block. Varje block tillhandahåller 128 Mbyte av adresserbar yta och ska stödja både nutida och framtida minnesenheter. DRAM-hanteraren stödjer även CBR och self-refresh DRAM. Här finns ytterligare en sektion om 128 Mbyte som används för att förenkla snabba cacheflushar genom att inte kräva att en extern minnesåtkomst laddar in data i cachen. Att skriva till detta block ger ingen verkan. De resterande, och översta 384 Mbyte, är reserverade och alla försök att nå blocket kommer att resultera i undantaget ”data abort”.

Peripheral Control Module (PCM) För att kommunicera med och styra periferienheter har SA-1100 en periferienhetsbuss som styrs av en DMA med sex kanaler vilken fungerar som en inkörsport till mikroprocessorn. DMA:ns sex självständiga kanalerna kan alla hantera fyra asynkrona serieportar, vilka stöder olika serieportsprotokoll, samt en synkron serieport. Det finns även en LCD-hanterare som har en egen DMA-hanterare för att ta hand om displayer med storlekar upp till 1024x1024 pixlar. LCD-hanteraren har tre olika typer av displayer:

• Passive Color Mode som stödjer totalt 3375 möjliga färger • Active Color Mode som stödjer upp till 65536 färger • Passive Monochrome Mode vilken har 15 gråskalor

LCD-hanteraren stöder STN samt TFT-skärmar.

FIGUR 5 – PCM-HANTERAREN

Page 14: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

14

Serieportar SA-1100 tillhandahåller sex serieportar, fem av dessa använder sig av genuina serieportsgränssnitt medan den sjätte kan, via GPIO-pinnarna, representera en serieport. Via serieportarna kan mikroprocessorn kommunicera med externa gränssnitt. Serieport 0 På serieport 0 finns USB-bussens slavprotokoll implementerat, UDC, vilken stödjer 12 Mbps halv duplex. Serieport 0 kan ej tas över av PPC. Serieport 1 På SA-1100 serieport 1 kan antingen SDLC eller UART implementeras. Hastigheter upp till 230 Kbps stöds. Serieport 2 Via serieport 2 erhålls stöd för IrDA på antingen 115 Kbps eller 4 Mbps. Serieport 3 Den tredje serieporten på mikroprocessorn har stöd för UART med hastigheter från 56,24 bps till 230 Kbps. Serieport 4 På den sista serieporten finns stöd för både multimediakommunikation eller synkron serieportsöverföring via MCP/SSP. Via serieport 4 erhåller man gränssnitt mot bland annat tangentbord, pekskärmar och CODEC:s.

Peripherial Pin Controller (PPC) SA-1100 erbjuder en PPC som kan ta kontroll över LCD-hanterarens pinnar (ben) samt serieport 1 till 4, detta leder till att användaren själv kan bestämma över och kontrollera önskade periferienheter. Då dessa ben hanteras av PPC:n fungerar de i stort som ett GPIO-ben, skillnaden blir dock att periferipinnarna inte kan utföra någon form av detektion av flanker eller generera avbrott. PPC-register Till sin hjälp har PPC fem register som når varje ben var för sig, se tabell 2 nedan. Adress(0h) Namn Registernamn Läs/skriv Beskrivning 9006 0000 PPDR PPC Pin Direction Write only Sätter ett periferiben som ingång eller

utgång 9006 0004 PPSR PPC Pin State Read/Write Kontrollerar/sätter tillståndet för ett

periferiben 9006 0008 PPAR PPC Pin

Assignment Write only För kontroll av UART på serieport 0

och SSP på serieport 4 9006 000C PSDR PPC Sleep Mode

Pin Direction Write only Hanterar PPC-benen vid sleep-

tillståndet för att spara ström 9006 0010 PPFR PPC Pin Flag Write only Bestämmer vilka ben som ska lyda

under PPC TABELL 2 – PPC-REGISTER

Page 15: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

15

System Control Module (SCM) SCM kontrollerar ett antal generella systemfunktioner: GPIO, avbrottshanteraren, de två kristalloscillatorerna, resethanteraren samt spänningshanteringen.

General-Purpose I/O SA-1100 erbjuder 28 GPIO-pinnar där användaren kan välja alla eller enbart vissa av GPIO-pinnarna för att nå den funktionalitet som krävs. Det är möjligt att generera avbrott på uppåt- och/eller nedåtgående flank för att ytterligare öka funktionaliteten. Alla pinnar kan agera in- eller utgångar, men efter en reset av processorn sätts pinnarna automatiskt till ingångar och kommer så att förbli till dess de uttryckligen sätts som utgångar. GPIO-register Det finns totalt åtta register för GPIO som alla når varje ben var för sig, se tabell 3. Adress(0h) Namn Registernamn Läs/skriv Beskrivning 9004 0000 GPLR Pin-Level Read only Kontrollerar ett bens tillstånd 9004 0000 GPDR Pin Direction Write only Sätter ett ben till in- resp. utgång 9004 0000 GPSR Pin Output Set Write only Sätter ett ben som är satt till utgång 9004 0000 GPCR Pin Output Clear Write only Rensar ett ben som är satt till utgång 9004 0000 GRER Rising-Edge

Detect Write only Sätter ett ben att detektera

nedåtgående flank 9004 0000 GFER Falling-Edge

Detect Write only Sätter ett ben att detektera en

uppåtgående flank 9004 0000 GEDR Edge Detect

Status Read only Kontrollerar ett ben satt att detektera

flankförändringar 9004 0000 GAFR Alternative

Funktion Write only Sätter ett ben i ett alternativt tillstånd

TABELL 3 – GPIO-REGISTER Alla GPIO-pinnarna, förutom ben 1 och 2, har en alternativ funktion, dessa funktioner nås genom att sätta det motsvarande benet i GAFR-registret. Exempelvis fungerar ben 2 till 9 som LCD-hanterare då GAFR sätts, andra exempel på alternativa funktioner är mottagning respektive sändning via UART och sampling av externa klockpulser. Då ett ben försätts i det alternativa tillståndet kan benet ej användas som GPIO.

Avbrottshanteraren Det finns två typer av avbrott som kan inträffa på en SA-1100, det ena är vanliga IRQ och den andra typen, kallat FIQ, är unik för ARM-arkitekturen. FIQ har högre prioritet än IRQ och kommer att tas om hand betydligt snabbare än vanliga IRQ:s och kan även avbryta ett pågående IRQ. Det finns två olika nivåer för att ta hand om ett avbrott, den första nivån talar om för användaren eller OS:et vilken modul som gett upphov till avbrottet medan den andra nivån berättar vilken händelse i den specifika modulen som flaggat avbrottet. Det finns 110 olika avbrott av den senare nivån. Det finns sex olika register ämnade åt avbrottshanteraren, två av registren hanterar IRQ-avbrott respektive FIQ-avbrott.

Page 16: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

16

Realtidsklockan (RTC) Det finns en kristalloscillator på SA-1100 som genererar en frekvens på 32,768 KHz och det är genom den som RTC:n klockas. Efter ett hårdvarureset kommer RTC:n att nollställas och användaren måste själv ange det önskade värde på realtidsklockan. Realtidsklockan ger en noggrannhet på +/- 5 sekunder per månad och tillhandahåller fyra register som bland annat kan trimma RTC:n eller sätta olika alarm.

OS-klockan (OST) Via kristalloscillatorn på 3,686 MHz erhålls OS-klockan, den är liksom RTC:n en 32-bitars timer, men till skillnad från realtidsklockan nollställs den inte vid reset. OS-klockan har fyra register varav det ena används specifikt som en watchdogtimer för att generera avbrott då mjuk- eller hårdvara hamnat i en okontrollerad loop. De resterande registren står disponibla som intervalltimrar eller som andra användardefinierade klocktimrar.

Spänningshanteraren En viktig del i SCM är spänningshanteraren, den här delen kontrollerar övergången mellan tre olika inställningar; run-, idle- och sleepmode. Genom att använda idle och sleep reduceras SA-1100:as strömförbrukning då vissa funktioner inte behövs för tillfället. Det finns åtta olika register som kontrollerar och ser över de olika tillstånden. Run mode Det normala tillståndet för SA-1100 är run mode, det innebär att alla spänningskällor och klockor är igång samt att alla enheter fungerar tillfredställande. I de allra flesta, normala, fall kommer processorn att hamna i run mode vid start. Idle mode Det här tillståndet nås genom implementation i mjukvaran och tack vara ett SA-1100 är statisk kommer all CPU-information att sparas då processorn befinner sig i idle mode. Då processorn väcks upp med hjälp av ett avbrott kommer SA-1100 att fortsätta exakt på den plats där idle-tillståndet ingicks. Alla enheter kommer, tillsammans med externa minnen, att vakna upp som om ingenting har hänt och fortsätta med vad de höll på med. Sleep mode Sleep-tillståndet nås genom att två ben, som är satta till ingångar, indikerar att något fel uppstått på spänningstillförelsen, det går även att generera tillståndet via mjukvara. Genom att använda sig av kristalloscillatorn på 32,768 KHz kan sleep-tillståndet hålla koll på en eventuell wake-up händelse som gör att processorn vaknar till liv igen.

Resethanteraren Systemkontrollmodulen har ytterligare en hanterare som bevakar olika former av reset på processorn. Resethanteraren tar reda på var de senast kända resetet inträffade oavsett om det var mjukvaran, hårdvaran, watchdogen eller sleep-tillståndet som genererade resetet. Det finns två register som hanterar de olika reseten.

Page 17: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

17

Hårdvarureset Genom att använda nReset-pinnen går det att starta om alla enheter i SA-1100. Enheterna kommer då att försättas i ett definierat tillstånd. Mjukvarureset Ett mjukvarureset erhålls genom att en flagga i ett av resethanterarens register sätts. Vid en mjukvarureset kommer DRAM-minnet att bestå. Watchdog-reset Genom att sätta en flagga i ett av OS-klockans register kan SA-1100 försättas i detta reset. Ett reset av den här typen är likställd med ett mjukvarureset, men uppväckandet av processorn sker istället genom att en specifik flagga i OS-klockans register matchar OS-klockans timer. Sleep-reset Då mikroprocessorn försätts i sleep-tillstånd kommer ett sleep-reset att genereras. Ett sleep-reset kommer aldrig åt att nollställa realtidsklockan eller GPIO-wake-up-registret.

Exempel – initiera display Det exempel som följer visar hur de åtta första GPIO-pinnarna används för att användaren själv ska kunna kontrollera en display utan LCD-hanteraren. I exemplet nedan används ett antal definitioner hämtade ur SA1100.h (se Appendix C), //GPIO #define GPDR 0x90040004 //PPC #define PPDR 0x90060000 #define PPSR 0x90060006 #define PPFR 0x90060010 void enableLCD(void) { //sätter alla 28 GPIO-pinnar till utgångar

GPDR = 0xfffffff; //tar kontroll över GPIO-pinnarna via PPFR PPFR = 0x01 | (&PPFR && 0xfffffffE); //sätter de 8 första pinnarna som utgångar i PPDR (för LCD:n) PPDR = 0xFF | (PPDR & 0xffffff00);

----------------------------------------------------------------- TODO: Gör de inställningar som displayen kräver ------------------------------------------------------------------

}//enableLCD Genom att sätta PPFR:s första bit till 1 kommer mikroprocessorns egen LCD-hanterare tas ur funktion och användaren kan själv styra displayen efter sina egna önskningar.

Page 18: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

18

Framtiden Sommaren 2001 togs SA-1100 ur produktion och kom att ersättas av nästa medlem i Intel StrongARM-familjen, SA-1110.

SA-1110 Precis som SA-1100 är SA-1110 en 32-bitars RISC mikroprocessor med en 16 Kbyte instruktionscache och 8 Kbyte datacache. Instruktionsuppsättningarna för det två processorerna är identiska och även periferiuppsättningen är den samma. För jämförelse se tabell 4. SA-1100 SA-1110 Prestanda 150 Dhrystone 2,1 MIPS vid

133MHz 220 Dhrystone 2,1 MIPS vid 190MHZ

150 Dhrystone 2,1 MIPS vid 133MHz 235 Dhrystone 2,1 MIPS vid 206MHZ

Kärnans spänningsförsörjning

133 MHz Vss = 0.0 V dc Vdd = 1,5 V dc ± 5% 190 MHz Vss = 0.0 V dc Vdd = 1,5 V dc ± 5%

133 MHz Vss = 0.0 V dc Vdd = 1,55 V dc ± 5% 206 MHz Vss = 0.0 V dc Vdd = 1,75 V dc ± 5%

I/O spänningsförsörjning 133 MHz Vssx = 0.0 V dc Vddx = 3.3 V dc ± 10% 190 MHz Vssx = 0.0 V dc Vddx = 3.3 V dc ± 10%

133 MHz Vssx = 0.0 V dc Vddx = 3.3 V dc ± 10% 206 MHz Vssx = 0.0 V dc Vddx = 3.3 V dc ± 10%

Typisk energiförlust (dock systemberoende)

133 MHz Normalt tillstånd = <240 mW Idle-tillstånd = <75mW Sleep-tillstånd = <50µA 190 MHz Normalt tillstånd = <400 mW Idle-tillstånd = <100W Sleep-tillstånd = <50µA

133 MHz Normalt tillstånd = <240 mW Idle-tillstånd = <75mW Sleep-tillstånd = <50µA 190 MHz Normalt tillstånd = <400 mW Idle-tillstånd = <100mW Sleep-tillstånd = <50µA

Temperatur Min: 0°C Max: 70°C.

Min: 0°C Max: 70°C

Förvaringstemperatur -20°C till +125°C -20°C till +125°C Kapsel 208-pin LQFP 256 PBGA TABELL 4 – JÄMFÖRELSE MELLAN SA1100 OCH SA1110 Det som skiljer mikroprocessorerna åt är framförallt MPCM. SA-1110 har dessutom möjlighet att utnyttja ett extrakort, Intel SA-1111 Companion Chip, som kompletterar SA-1110. SA-1111 tillhandahåller viktiga I/O gränssnitt som bärbara applikationer ofta kräver. Dessutom finns även en USB host-hanterare och direktanslutning till en AC-link.

Page 19: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

19

Appendix A – Källförteckning Intel 4004

http://irobot.org/4004/hist.htm http://irobot.org/4004/i4004-77.pdf

SA-110

http://www.mitronet.com/chipdir/oth/strongarm.txt SA-1100

Intel StrongARM SA-1100 Microprocessor Developer’s manual, augusti 1999 http://www.intel.com/design/pca/applicationsprocessors/1110_brf.htm http://www.hotchips.org/pubs/hc97/pdf_images/hc97_7c_slaton_2up.pdf

SA-1110 http://www.bluewaternz.com/products/SA1110.htm

http://www.intel.com/design/strong/applnots/27834101.pdf http://www.intel.com/design/pca/applicationsprocessors/1110_brf.htm

ARM http://www.altera.com/literature/third-party/ddi0100e_arm_arm.pdf

www.arm.com http://www.arm.com/support/56VF7H/$File/ARMv6_Architecture.pdf http://www.arm.com/aboutarm/587FB5/$File/ARM+Product+Backgrounder.pdf http://www.arm.com/aboutarm/587FCB/$File/ARM+Corp+Backgrounder.pdf http://wheelie.tees.ac.uk/users/a.clements/ARMinfo/ARMnote.htm

Övrigt

http://www.lart.tudelft.nl/ http://www.pagina.se

Page 20: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

20

Appendix B – Ordlista 32-bitars arkitektur

De versioner av ARM:s arkitektur som implementerar ett 32-bitars adressutrymme. Detta gäller för ARM-arkitekturer över version 3.

AA batterier Amerikanskt förkortning för R6 batterier. Arkitektur

Benämning på den organisatoriska uppbyggnaden i ett system vilken redogör för hur olika delar i systemet inbördes är kopplade till varandra samt hur delarna samverkar.

ARM Ltd (Advanced RISC Machines Ltd.)

Företag som utvecklar 32-bitars RISC arkitektur. Startades 1990 som Advanced RISC Machines Limited, 1998 byttes namnet till ARM Ltd.

Bank En logisk del av internminnet, är ett sätt att vid stora internminnen (RAM) dela upp minnet i mindre enheter.

Branch

En instruktion i assembler som resulterar i ett hopp. CBR (Constant BitRate)

Betyder konstant bithastighet. CISC (Complex Instruction Set Computing)

Den traditionella benämningen på en processor som är betydligt kodsnålare än en RISC-processor men upptar en större kiselyta. CISC-instruktionerna kan variera i längd och det finns ett stort antal instruktioner.

CMOS (Complementary Metal Oxide Semiconductor)

En familj av integrerade kretsar med har låg spänningsförlust. CODEC (COmpressor/DECompressor)

En teknik för att komprimera och dekomprimera data. Kan finnas i hårdvara och/eller mjukvara. Vid telekommunikation betyder förkortningen coder/decoder och är den enhet som kodar eller avkodar en signal.

Dhrystone

En måttenhet för att mäta prestationsförmågan hos en processor. Visar inte alltid realtidsprestanda men är användbar för att jämföra hastigheter mellan olika processorer. Testet innehåller ett representativt antal typer av operationer, som används i vardagliga program, exempelvis stränghantering, dock inte flyttalsoperationer. Det slutgiltiga resultatet beräknas på hur lång tid testet tog att genomföra. Dhrystone är baserat på ursprungliga C Dhrystone 2.1 av Reinhold P. Weicker, Siemens AG.

Digital Equipment Corporation Ett amerikanskt företag som tillverkar större (mini-)datorer.

Page 21: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

21

DMA (Direct Memory Access) En teknik som gör det möjligt för enheter att nå arbetsminnet utan att blanda in processorn, dvs. att man får direkt minnesåtkomst.

DMMU (Data Memory Management Unit) Datacachens MMU, se MMU. DRAM (Dynamic Random Access Memory)

Datat lagras dynamiskt som laddningar i kondensatorer. Eftersom minnena läcker måste de laddas upp med strömstötar i lämpliga intervall, detta sker automatiskt via logiska kretsar.

EDO DRAM (Rxtended Data-Out Dynamic Random Access Memory)

En form av DRAM som gör minnesläsningen snabbare gnom att använda speciella läsningsmetoder.

FIQ

En asynkron avbrottshanterare som verkar på låg nivå. Unikt för ARM-arkitekturen. GPIO (General-Purpose I/O)

Pinnar/portar som kan används till varierande uppdrag, detta för att öka funktionaliteten. IMMU (Instruction Menory Management Unit) Minnescachens MMU, se MMU. IrDA (Infrared Data Association) En standard som definierar ett protokoll för infraröd överföring av data. LCD (Liquid Crystal Display)

En skärm innehållande flytande kristaller. Linux

Ett UNIX-liknande operativsystem som släpptes 1997, dess källkod är fri. OS:et kan användas i en mängd datorer.

LQFP (Low-profile Quad Flat Pack) En kapseltyp. MIPS (Million Instructions Per Second)

Mått på en dators arbetshastighet. mBGA (Mini Ball Grid Array)

En kapseltyp.

MMU (Memory Management Unit) Den enhet i en dator som kontrollerar dataförvaringen så att datorn får tillträde till sin minnescache med hög prestanda framför sitt, rätt så långsamma, huvudminne.

MPCM (Memory and PCMCIA control module)

Minne och PCMCIA hanterare. NetBSD

Ett operativsystem som härstammar från UNIX, dess källkod är fri. Är tänkt att vara tillgänglig för så många plattformar som möjligt och vara extremt portabel.

OST (Operating System Timer) Operativsystemets klocka. PCM (Peripherals Control Module) Hanterar periferienheterna.

Page 22: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

22

PCMCIA (Personal Computer Memory Card International Association)

En grupp tillverkare som stödjer en gemensam standard för kortbaserade tilläggsenheter. Finns i Typ I, Typ II och Typ III. Typ I är främst för minneskretsar, exempelvis Flash, RAM och ROM.

PLL (Phase Locked Loop)

En elektronisk krets som kontrollerar en oscillator så att den bevarar en konstant period relativ referenssignalen. PPL används ofta för bit- och symbolsynkronisering.

pSOS (Profiler Surface Observing System) Ett realtidsbaserat operativsystem. RISC (Reduced Instruction Set Computing)

En processortyp som alltid har lika långa instruktioner och är därför snabbare vid exekvering än en CISC-processor. Har ett reducerat antal instruktioner jämfört med CISC, men kan utföra samma funktioner eftersom det går att kombinera flera RISC-instruktioner.

RTC (Real-Time Clock) Realtidsklocka i ett operativsystem. SCM (System Control Module) En modul som kontrollerar ett antal systemfunktioner. SDLC (Synchronous Data Link Control) IBM:s höghastighetsprotokoll för dataöverföring. SDRAM (Synchronized Dynamic Random Access Memory)

Ett DRAM som synkroniseras med processorns klocka vilket leder till att minnet och processorn arbetar synkroniserat. Har två interna enheter för att hantera minnesåtkomst, detta leder till att en ny minnesåtkomst kan förberedas innan den föregående är klar. DDR SDRAM (Double Data Range) arbetar i dubbel takt, minnet kan då utföra operationer på både positiv och negativ flank, dvs. dubbelt så snabbt som processorn som minnet är synkroniserat med.

STN (Super Twist Nematic) En LCD-skärm med passiva matrisskärmar. StrongARM Ett registrerat varumärke som tillhör ARM Ltd. TFT (Thin Filter Transistor) En LCD-skärm med aktiva matrisskärmar. Dyrare än STN. UART (Universal Asynchronous Receiver Transmitter)

En elektronisk krets som sänder och tar emot data över en seriell port. USB (Universal Serial Bus)

Ett seriellt gränssnitt som har full plug & play vilket innebär att datorn känner igen de enheter som kopplas in och kan själv installera lämpliga drivrutiner

Windows CE Ett operativsystem för handdatorer från Microsoft.

Page 23: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

23

Appendix C – SA-1100.h #define Ser3UTSR1 /* Ser. port 3 UART Status Reg. 1 */ \ (*((volatile Word *) io_p2v (_Ser3UTSR1))) #elif LANGUAGE == Assembly #define Ser1UTCR0 ( io_p2v (_Ser1UTCR0)) #define Ser1UTCR1 ( io_p2v (_Ser1UTCR1)) #define Ser1UTCR2 ( io_p2v (_Ser1UTCR2)) #define Ser1UTCR3 ( io_p2v (_Ser1UTCR3)) #define Ser1UTDR ( io_p2v (_Ser1UTDR)) #define Ser1UTSR0 ( io_p2v (_Ser1UTSR0)) #define Ser1UTSR1 ( io_p2v (_Ser1UTSR1)) #define Ser2UTCR0 ( io_p2v (_Ser2UTCR0)) #define Ser2UTCR1 ( io_p2v (_Ser2UTCR1)) #define Ser2UTCR2 ( io_p2v (_Ser2UTCR2)) #define Ser2UTCR3 ( io_p2v (_Ser2UTCR3)) #define Ser2UTCR4 ( io_p2v (_Ser2UTCR4)) #define Ser2UTDR ( io_p2v (_Ser2UTDR)) #define Ser2UTSR0 ( io_p2v (_Ser2UTSR0)) #define Ser2UTSR1 ( io_p2v (_Ser2UTSR1)) #define Ser3UTCR0 ( io_p2v (_Ser3UTCR0)) #define Ser3UTCR1 ( io_p2v (_Ser3UTCR1)) #define Ser3UTCR2 ( io_p2v (_Ser3UTCR2)) #define Ser3UTCR3 ( io_p2v (_Ser3UTCR3)) #define Ser3UTDR ( io_p2v (_Ser3UTDR)) #define Ser3UTSR0 ( io_p2v (_Ser3UTSR0)) #define Ser3UTSR1 ( io_p2v (_Ser3UTSR1)) #endif /* LANGUAGE == C */ #define UTCR0_PE 0x00000001 /* Parity Enable */ @ -1231,6 +1257,17 @@ (*((volatile Word *) io_p2v (_PGSR))) #define POSR /* PM Oscillator Status Reg. */ \ (*((volatile Word *) io_p2v (_POSR))) #elif LANGUAGE == Assembly #define PMCR (io_p2v (_PMCR)) #define PSSR (io_p2v (_PSSR)) #define PSPR (io_p2v (_PSPR)) #define PWER (io_p2v (_PWER)) #define PCFR (io_p2v (_PCFR)) #define PPCR (io_p2v (_PPCR)) #define PGSR (io_p2v (_PGSR)) #define POSR (io_p2v (_POSR)) #endif /* LANGUAGE == C */ #define PMCR_SF 0x00000001 /* Sleep Force (set only) */ @ -1483,6 +1520,17 @@ (*((volatile Word *) io_p2v (_GEDR))) #define GAFR /* GPIO Alternate Function Reg. */ \ (*((volatile Word *) io_p2v (_GAFR))) #elif LANGUAGE == Assembly #define GPLR (io_p2v (_GPLR)) #define GPDR (io_p2v (_GPDR)) #define GPSR (io_p2v (_GPSR)) #define GPCR (io_p2v (_GPCR)) #define GRER (io_p2v (_GRER)) #define GFER (io_p2v (_GFER)) #define GEDR (io_p2v (_GEDR)) #define GAFR (io_p2v (_GAFR)) #endif /* LANGUAGE == C */ #define GPIO_MIN (0) @ -1786,6 +1834,11 @@ #define MDCAS0 (MDCAS [0]) /* DRAM CAS shift reg. 0 */

Page 24: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

24

#define MDCAS1 (MDCAS [1]) /* DRAM CAS shift reg. 1 */ #define MDCAS2 (MDCAS [2]) /* DRAM CAS shift reg. 2 */ #elif LANGUAGE == Assembly #define MDCNFG (io_p2v(_MDCNFG)) #endif /* LANGUAGE == C */ /* SA1100 MDCNFG values */ @ -1872,6 +1925,13 @@ ((volatile Word *) io_p2v (_MSC (0))) #define MSC0 (MSC [0]) /* Static memory Control reg. 0 */ #define MSC1 (MSC [1]) /* Static memory Control reg. 1 */ #elif LANGUAGE == Assembly #define MSC0 io_p2v(0xa0000010) #define MSC1 io_p2v(0xa0000014) #define MSC2 io_p2v(0xa000002c) #endif /* LANGUAGE == C */ #define MSC_Bnk(Nb) /* static memory Bank [0..3] */ \ @ -1897,32 +1957,32 @@ /* First access - 1(.5) [Tmem] */ #define MSC_1stRdAcc(Tcpu) /* 1st Read Access time (burst */ \ /* static memory) [3..65 Tcpu] */ \ (((Tcpu) - 3)/2 << FShft (MSC_RDF)) ((((Tcpu) - 3)/2) << FShft (MSC_RDF)) #define MSC_Ceil1stRdAcc(Tcpu) /* Ceil. of 1stRdAcc [3..65 Tcpu] */ \ (((Tcpu) - 2)/2 << FShft (MSC_RDF)) ((((Tcpu) - 2)/2) << FShft (MSC_RDF)) #define MSC_RdAcc(Tcpu) /* Read Access time (non-burst / \ /* static memory) [2..64 Tcpu] */ \ (((Tcpu) - 2)/2 << FShft (MSC_RDF)) ((((Tcpu) - 2)/2) << FShft (MSC_RDF)) #define MSC_CeilRdAcc(Tcpu) /* Ceil. of RdAcc [2..64 Tcpu] */ \ (((Tcpu) - 1)/2 << FShft (MSC_RDF)) ((((Tcpu) - 1)/2) << FShft (MSC_RDF)) #define MSC_RDN Fld (5, 8) /* ROM/static memory read Delay */ /* Next access - 1 [Tmem] */ #define MSC_NxtRdAcc(Tcpu) /* Next Read Access time (burst */ \ /* static memory) [2..64 Tcpu] */ \ (((Tcpu) - 2)/2 << FShft (MSC_RDN)) ((((Tcpu) - 2)/2) << FShft (MSC_RDN)) #define MSC_CeilNxtRdAcc(Tcpu) /* Ceil. of NxtRdAcc [2..64 Tcpu] */ \ (((Tcpu) - 1)/2 << FShft (MSC_RDN)) ((((Tcpu) - 1)/2) << FShft (MSC_RDN)) #define MSC_WrAcc(Tcpu) /* Write Access time (non-burst / \ /* static memory) [2..64 Tcpu] */ \ (((Tcpu) - 2)/2 << FShft (MSC_RDN)) ((((Tcpu) - 2)/2) << FShft (MSC_RDN)) #define MSC_CeilWrAcc(Tcpu) /* Ceil. of WrAcc [2..64 Tcpu] */ \ (((Tcpu) - 1)/2 << FShft (MSC_RDN)) ((((Tcpu) - 1)/2) << FShft (MSC_RDN)) #define MSC_RRR Fld (3, 13) /* ROM/static memory RecoveRy */ /* time/2 [Tmem] */ #define MSC_Rec(Tcpu) /* Recovery time [0..28 Tcpu] */ \ ((Tcpu)/4 << FShft (MSC_RRR)) (((Tcpu)/4) << FShft (MSC_RRR)) #define MSC_CeilRec(Tcpu) /* Ceil. of Rec [0..28 Tcpu] */ \ (((Tcpu) + 3)/4 << FShft (MSC_RRR)) ((((Tcpu) + 3)/4) << FShft (MSC_RRR)) /* @ -1957,20 +2017,20 @@ #define MECR_BSIO Fld (5, 0) /* BCLK Select I/O - 1 [Tmem] */ #define MECR_IOClk(Tcpu) /* I/O Clock [2..64 Tcpu] */ \ (((Tcpu) - 2)/2 << FShft (MECR_BSIO)) ((((Tcpu) - 2)/2) << FShft (MECR_BSIO)) #define MECR_CeilIOClk(Tcpu) /* Ceil. of IOClk [2..64 Tcpu] */ \ (((Tcpu) - 1)/2 << FShft (MECR_BSIO)) ((((Tcpu) - 1)/2) << FShft (MECR_BSIO)) #define MECR_BSA Fld (5, 5) /* BCLK Select Attribute - 1 */

Page 25: SA-1100 · Wearable Computers D, 10p Sonja Carlsson da98scn@ing.umu.se 1 SA-1100 Ett kapitel för kursen Wearable Computers D 10 p Namn: Sonja Carlsson Datum: 021105

Wearable Computers D, 10p Sonja Carlsson

[email protected]

25

/* [Tmem] */ #define MECR_AttrClk(Tcpu) /* Attribute Clock [2..64 Tcpu] */ \ (((Tcpu) - 2)/2 << FShft (MECR_BSA)) ((((Tcpu) - 2)/2) << FShft (MECR_BSA)) #define MECR_CeilAttrClk(Tcpu) /* Ceil. of AttrClk [2..64 Tcpu] */ \ (((Tcpu) - 1)/2 << FShft (MECR_BSA)) ((((Tcpu) - 1)/2) << FShft (MECR_BSA)) #define MECR_BSM Fld (5, 10) /* BCLK Select Memory - 1 [Tmem] */ #define MECR_MemClk(Tcpu) /* Memory Clock [2..64 Tcpu] */ \ (((Tcpu) - 2)/2 << FShft (MECR_BSM)) ((((Tcpu) - 2)/2) << FShft (MECR_BSM)) #define MECR_CeilMemClk(Tcpu) /* Ceil. of MemClk [2..64 Tcpu] */ \ (((Tcpu) - 1)/2 << FShft (MECR_BSM)) ((((Tcpu) - 1)/2) << FShft (MECR_BSM))