William Sandqvist Databuffer Omvandlar mellan olika storlekar på dataobjekt Anpassar mellan olika dataöverföringshastigheter Databuffer.

Slides:



Advertisements
Liknande presentationer
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Advertisements

Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Programstruktur: C för enchipsdatorer
Många studenter använder en LCD-display till sin programmeringsuppgift
Funktioner och programorganisation
Algoritmer och data strukturer -Länkade listor
William Sandqvist Störskydd William Sandqvist
För utveckling av verksamhet, produkter och livskvalitet. Rekursiva algoritmer, en annan sort tänkande -Hur -När -Bra/Dåligt (kap 7)
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
#include void fun(char s[]) { int i=-1; while(s[++i]!=0) { if('a'
William Sandqvist System Management functions S Burd, Systems Architecture ISBN Figure 11-2 CPU Management Memory Management.
©annax1 PC-teknik Minnen. 2 MINNEN Segmenterat minne 16 bits segmentregister + 32 bits offset = 64k*4Gbyte = 512Tb obs! Ofta används inte alla 16 bitarna.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - Lite mer rekursivitet -Sorterrings algoritmer -- Kapitel 8 Algoritmer.
William Sandqvist Programmet onoffred.c.
Arrays Indicerade variabler.
C-programmering ID120V William Sandqvist Länkad lista
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Föreläsning 11 Arrayer.
William Sandqvist Funktion som byter plats på två variabler /* swap1.c first attempt at a swaping function */ /* from Stephen Prata, C Primer.
Sid 1 CD5250 OOP med C++ Daniel Flemström MDH/IDT CD5250 OOP med C++
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar.
William Sandqvist C:s minnesmodell.
Operativsystem Vad är det för något ? Varför har man operativsystem ?
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Anders Sjögren Mer om datatyper. Anders Sjögren const det finns ett elegantare sätt att skapa konstanter i C än sättet med makro som vi använt tidigare.
Rekursiva algoritmer Hur När Bra/Dåligt (kap 7).
Modulär programutveckling
6558/G558 DATAKOMMUNIKATION Kapitel 3: Nätverk, ruttning.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
William Sandqvist Melodispelaren Denna demonstrationslaboration visar, steg för steg, hur man skriver ett kort program i programspråket.
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 3
Problemlösningsmetodik
 Installation av Windows Vista (Kapitel 9)  Haidar Al Attar (IT lärare)  Jensen Education.
TILLÄMPAD DATALOGI (TILDA) Övning 3
William Sandqvist Övning 8 Minnessystem Lokalitet Cacheminnen William Sandqvist
William Sandqvist C-programmering ID120V Stack och Kö William Sandqvist
William Sandqvist Polling och Interrupt Antag att Du sitter i en skön fåtölj och läser en bok. Plötsligt blir Du avbruten av att telefonen.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
William Sandqvist Sluten strömkrets? Man har två glödlampor för 220 V och två strömbrytare. Nu vill man ansluta de båda lamporna till 220.
Språket för inbyggda system 2
Anders Sjögren Filer - långtidslagring. Anders Sjögren Filtyper i DOS talet ett ( intx=1; ) lagrat i en –textfil, (en sekvens av tecken ( bytes )) enligt.
F6 - Pekare 1 Programmeringsteknik, 4p vt-00 Pekare & adresser Alla variabler är knutna till en viss adress i minnet int i; adressen till denna fås med.
William Sandqvist Melodispelaren Denna demonstrationslaboration visar, steg för steg, hur man skriver ett kort program i programspråket.
Köer -- Kapitel 16. Principen med en kö Köer är FIFO datastrukturer  First In – First Out  enqueue() Lägg till data i kön (först)  dequeue() Hämta.
Anders Sjögren Deklarationsområde och funktioner.
William Sandqvist Flera saker samtidigt? /* Blink1: 1s ON - 1s OFF */ /* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */
William Sandqvist DA-omvandling, oftast PWM.
William Sandqvist Övning 6 Seriekommunikation - serieport William Sandqvist
William Sandqvist Binärkod och Graykod 7 Bitars Kodskiva för avkodning av vridningsvinkel. Skivans vridnings-vinkel finns tryckt som binära.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
TILLÄMPAD DATALOGI (TILDA) Övning 2
TILLÄMPAD DATALOGI (TILDA) Övning 2
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 10.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
William Sandqvist Är Du bra på for-loopar? Ge triangelns höjd: 12 1> * > *** > *****
William Sandqvist Distributed Computing Client – Server. En skrivarserver kan vara ett exempel på en Client-Server arkitektur. S Burd, Systems.
William Sandqvist Funktionsbibliotek När man utvecklat en funktion så långt att den är "färdigutvecklad" kan man lika gärna spara den på.
William Sandqvist PWM Sinusoidal Hur tillverkar man en sinusformad spänning? En PWM-signal kan ge en sinusapproximation. Efter filtrering.
Kronljusströmställaren 0, 1, 2, 3
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
DA-omvandling, oftast PWM William Sandqvist En DA-omvandlare tar stor plats på processor- chippet. Den vanligaste DA-lösningen är i stället.
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
Anders Sjögren Funktioner något in och något annat ut.
Presentationens avskrift:

William Sandqvist Databuffer Omvandlar mellan olika storlekar på dataobjekt Anpassar mellan olika dataöverföringshastigheter Databuffer vid dataöverföring

William Sandqvist Buffertminnet är en ring En cirkulär buffer är som ett dataminne. Tar adresserna slut, börjar det om från början, dvs. slår runt – som vägmätaren på en bil

William Sandqvist C-funktioner void Putbuffer(char c) { buffer[tail] = c; if (tail == LENGTH) tail = 0; else tail++; } char Getbuffer(void) { char c; c = buffer[head]; if (head == LENGTH) head = 0; else head++; return c; }

William Sandqvist C-testprogram #include #define LENGTH 3 void Putbuffer(char); char Getbuffer(void); char buffer[LENGTH]; int head = 0; int tail = 0; int main(void) { Putbuffer('1'); Putbuffer('2'); Putbuffer('3'); Putbuffer('4'); Putbuffer('5'); printf("LENGTH = %d\n", LENGTH); printf("%c\n", Getbuffer()); system("PAUSE"); return 0; }

William Sandqvist LENGTH 3 eller 6 ?

William Sandqvist Buffertens storlek bufferten måste vara rätt dimensionerad, dvs talet LENGTH måste vara tillräckligt stort om ”tail” hinner upp ”head” blir det overflow overflow kan accepteras vid tex video och musik, men i allmänhet måste man ta hand om overflow tex. genom att ”stoppa” Putbuffer() eller ”dynamiskt öka” LENGTH

William Sandqvist Anpassa dataöverföringshastigheter Modem med buffer 56 Kbps Dator systembuss 400 Mbps Bufferten ger interrupt när den blir full och stoppar dataöverföringen från datorn Datorn kan göra annat nyttigt när överföringen stoppats

William Sandqvist Bufferstorlekens påverkan Bufferstorleken påverkar antalet Interrupt/Context switch. Ryms hela datamängden i bufferten blir det inga interrupt! (64 kByte buffer)

William Sandqvist Sifferexempel: Buffer Size = 4B (  Burd, table 6-4) Antag att datamängden 64 Kbyte (65536) ska överföras över en 32 bitars buss, dvs. med 4 Byte /T BUS /4 = T BUS Med Buffer Size 4 Byte blir det ett Off och ett On avbrott efter var fjärde överförd byte! Operativsystemet gör då ”Context switch” för att processorn ska kunna göra annat. Vi antar att detta tar 10 busscykler, 10 T BUS. (65536/4)*(10+10) = T BUS Totalt: = T BUS !

William Sandqvist Buffer Size = 1024 Byte (  Burd, table 6-4) Samma datamängd 64 Kbyte (65536) ska överföras över en 32 bitars buss, dvs. med 4 Byte /T BUS /4 = T BUS Bufferstorleken ökas nu till 1024 Byte. Det blir ett Off och ett On avbrott efter var 1024 överförd byte! Antag att ”Context switch” som tidigare tar 10 T BUS. (65536/1024)*(10+10) = 1280 T BUS Totalt: = T BUS ! Förbättring med 95%!