MBY kåserar: Vår bortglömda följeslagare

Permalänk
Avstängd

MBY kåserar: Vår bortglömda följeslagare

PCn är fantastisk och dess långa historia av kompatibilitet överträffas bara av ett annat datorsystem - som jag berättar om någon annan gång. Den första IBM PC kom som bekant 1981, och alla program skriven för denna går utmärkt att köra på dagens PC, må vara att vissa spel går "lite" för snabbt. Detta tack vare x86-arkitekturen. Detta kåseri ska dock inte handla om x86, utan om en annan arkitektur. En processor som är så okänd att den inte ens tas för givet.

På ett PC-moderkort från 1981 finns faktiskt en CPU till, som även återfinns i praktiskt taget helt oförändrat skick även på den nyaste planka som tänkas kan. Denna heter Intel 8042 och ägnar hela sin tillvaro att lyssna till våra tangentbord. Den omvandlar tangentbordets seriella bitström av "scancodes" till bytes som hamnar i dess buffertminne. Den talar också om för huvudprocessorn - varesig det är en 8088, 486 eller Dual Operton att den grymme användaren ytterligare har några summariska och godtyckliga nerslag som måste tas tillvara.

8042 är en processor ur Intels MCS-48-familj, och är en nerbantad variant av 8048. Denna familj av processorer och enchipsdatorer kom 1976 och tillverkas alltjämt ännu. Liksom processorns förebild, Fairchild F8, har den används i diverse spelkonsoler, hushållsmaskiner och bilar. Nintendos "Donkey Kong"-arkad styrdes av en medlem ur 8048, liksom spelkonsolen "Magnavox Odyssey²" eller "Philips Videopac G7000" från slutet av 1970-talet. Denna hade för övrigt en klocka på 0,1 MHz. Det är smått otroligt att man kan ha färggrafik 100 kHz!

8042an, idag djupt inbäddad i chipsetkretsarna och trots att den inte längre är en enskilt skönjbar krets, är inte helt osynlig från användaren, utan kan nås via porten 60h, därifrån även våra tangenttryck hämtas. Även på en halvgammalt moderkort (fram till Pentium och tidiga PII) kan kretsen ses i närheten av tangentbordskontakten. Den misstas lätt för ett gammalt BIOS-chip, men bor vanligen i en 40-pinnars svart DIL-kåpa. Efterföljaren till MSC-48 är familjen MCS-51 som omfattar de mer kända enchipsdatorerna 8031 och 8051.

Vad är då 8042 för en kuf? Det är en processor med Harvardarkitektur, dvs program och data lever åtskilda, och utför en instruktion i genomsnitt var 12:te klockcykel. Den är 8-bitars, och del flesta instruktionerna är en byte långa. En typisk hastighet är 12 MHz, vilket givet CPIn ger en exekveringshastighet på 1 MIPS. Processorn har inbyggt ROM-minne (1K) och 64 bytes RAM, varav 16 som standard används i dess interna tangentbordsbuffert. Den är inte släkt med x86 på något sätt, men inspirerades av F8.

Tack Intel 8042, för att du gör så att vi kan skriva på våra tangentbord!

9531 - en variant från American Megatrends på ett av mina Pentium-moderkort.

...tänkte ni ville veta...

Edit:
Länkar:
http://panda.cs.ndsu.nodak.edu/~achapwes/PICmicro/keyboard/at...
http://www.pcguide.com/ref/kb/const/opInterfacing-c.html
(Det verkar som mitt minne sviker på några smärre faktauppgifter. Nåja, huvudkonceptet är riktigt.)

Visa signatur

http://www.theatlantic.com/national/archive/2012/05/how-the-p...
"If there's a simple lesson in all of this, it's that hoaxes tend to thrive in communities which exhibit high levels of trust. But on the Internet, where identities are malleable and uncertain, we all might be well advised to err on the side of skepticism."

Permalänk
Medlem

trevligt skrivet. hoppas de blir fler liknande saker..
Keep up the good work

Permalänk
Medlem

Mycket trevlig läsning såhär på söndagsmorgonen. Hade ingen aning om detta och det är ju alltid kul att lära sig lite mer.

Permalänk
Hedersmedlem

En av de bästa posterna jag läst på Sweclockers på länge

Permalänk
Hedersmedlem

Intressant läsning!

Visa signatur

Numera nöjd med en Chromebook.

Permalänk
Medlem

Används den även till USB-tangentbord?

Visa signatur

Opteron 146 CABYE 0540 FPMW@2740Mhz | NCP 2x1GB | Asrock Dual Sata II | 6800GT@Ultra | Big Tyhpoon | Antec Trueblue 480W | NEC 3520 | WD 180GB

Permalänk
Hedersmedlem

Mycket trevlig läsning MBY

Visa signatur

|| SWECLOCKERS.COM || oskar@sweclockers.com || OSkar000.se || Fototråden ||
|| Gundeman || Bartonofix || GundemanX2 || Obelinux || Nexofix || Filofix || Ircofix ||
|| Tillse att hjärnan är inkopplad innan fingrarna vidrör tangentbordet ||
|| D300 | D700 | 24/2,8 | 28/2,8 | 35/2 | 50/1,8 | 55/2,8 | 85/1,8 | 105/2,5 | 200/4 | 300/4,5 | 10-20 | 24-70/2,8 | 75-150/3,5 | 80-200/2,8 ||

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av apanove
Används den även till USB-tangentbord?

Vet faktiskt inte. Det finns en del som talar emot det, och en del som talar för.

USB har ju en direktkanal in i datorn, och en 8042 har givetvis ingen möjlighet att sköta all annan möjlig USB-kommunikation. Så: antagligen nej.

Däremot kan det hända att USB-tangenborden själva hyser en MCS-48, eller någon form av mjukvaruemulering via någon annan µC - t.ex. AVR, PIC eller dylikt.

Det som talar för är ju att just tangenbord har en mer lågnivåkommunikation med datorn, annars hade ett USB-tangentbord inte kunnat användas innan OS drar igång. Exakt hur det sköts, och "vem" som sköter det vet jag ej, men jag skulle gissa att den lilla 8042-klonen i chipsetet inte styr bitar i detta fall.

Tangentborden själva innehåller ofta en mikroprocessor. Förut vanligen just en 8042, men vilken µC som helst duger. Dennes uppgift är att översätta tangentbordets "proprietära" rad- och kolumnindeling av tangenterna till standard 8042-scancodes.

Så, eftersom även ett USB-tangentbord genererar scancodes så finns säkert 8042 som "koncept" någonstans i kedjan, men troligen inte en 8042 själv (rent fysiskt finns den i chipset, men är gör nog ingen nytta). Antagligen på mjukvarunivå. T.ex. en lågnivådrivrutin för USB i BIOS.

Nåja, det var ett långt inlägg som egentligen bara kan sammanfattas: Jag vet faktiskt inte, men jag hoppas!

...
Edit: Låt oss anta att 8042 spelat ut sin roll om och när PS/2-kontakten försvinner och alla tangentbord kör USB. Hur länge kommer 8042 rent fysiskt att finnas i chipsetet? Faktiskt, antagligen ett bra tag till. Vi kan jämföra med ISA-bussen. Inget nytt moderkort på flera år har haft ISA-platser. Dock, verkar det finnas hårdvarumässigt stöd för dessa, och virtuella PCI<>ISA-bryggor finns alltjämt.

PCn är fullproppad med fossil, blindtarmar och svanskotor. Mycket som man helt enkelt inte blir av med. De ROM-adresser som tidigare innehöll en BASIC-tolk (om man postar nästan vilken IBM-dator som helst utan hårddisk eller diskettstation bootar den in i BASIC) är mig veterligen ännu ej allokerade av något annat. Rent fysiskt så kan moderna BIOS-flashminnen hålla några megabyte, trots att det ursprungliga PROM bara hade 64 kB rutiner och 64 kB BASIC. Textlägesgrafikminnet börjar fortfarande på B800:0000h, och är nödvändigt för att datorn ska kunna visa text när den postar (eller är i DOS). Detta är en del i den berömda 640 kB-gränsen. Fortfarande är PC-arkitekturen beroende av s.k. realläge (fullt 8086-stöd), och detta kräver att hela datorn är det för att kunna starta. BIOS läste, läser och kommer att läsa tangentbordet via port 60h, och kommer att "tro" att det är en 8042 bakom. I själva verket kanske det i stället är någon annan, modernare, del av BIOS som emulerar 8042 och har ett gränssnitt mot USB (eller virtuell PS/2 via en faktisk 8042).

Kanske kan man inte plocka bort den integrerade tangentbordsprocessor hur som helst om annat är beroende av denna. T.ex. så måste ju något trigga tangentbordsinterrupten hos huvudprocessorn, och något måste peka ut och minnas tangentbordsbufferten.

Möjligt är att USB-hård- och mjukvara snackar med 8042 som snackar med BIOS och CPU.

Edit2: Observera de alla "kanske" och "möjligt är...". Jag vet således inte, utan spekulerar bara. Om någon har stenkoll på vad en modern PC gör när den vaknar, så skriv gärna (då kan jag jämföra med hur det går till på riktiga datorer ).

Visa signatur

http://www.theatlantic.com/national/archive/2012/05/how-the-p...
"If there's a simple lesson in all of this, it's that hoaxes tend to thrive in communities which exhibit high levels of trust. But on the Internet, where identities are malleable and uncertain, we all might be well advised to err on the side of skepticism."

Permalänk
Hedersmedlem

Det här var så trevlig läsning att jag tycker att tråden kan få vara klistrad en liten stund (en vecka).

Permalänk
Medlem

Kul att läsa en tråd där man lär sig något nytt (eller gammalt... ), till skillnad från det vanliga käbblet. Två tummar upp.

Permalänk
Medlem

Sällar mig till skaran av belåtna läsare.
Bra skrivet!

Visa signatur

Solen i africa! Hjälp snabbt. Tävling i klassen!
Det var High noon.
Om solen i Africa en truckförare kommer från East till Weast på huvudvägen. och exact vid eqvatorn vid Africa. Landskapet är totalt slät. På en tidpunkt var solen så ett par telestolpar gjorde så att det blev skugga.
3 gissar jag på, men kan inte förklara?

Permalänk
Medlem

Nice Kul med annat att läsa än de vanliga frågor/svaren. Blir ju nästan nostalgisk. Bra gjort !

Visa signatur

Don´t do this, don´t do that. Do this and think that.
Serious, do you really think I give a shit?

Permalänk
Medlem

Ahh, Underbar läsning.. Tackar.. En liten nostalgi trip igen

Visa signatur

"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."
-Kristian Wilson, Nintendo Inc, 1989

Permalänk
Medlem

trevligt!!

Permalänk
Medlem

mycket intressant och lärorikt! Bra att ha en sån allmänbildad person här inne på sweclockers

Visa signatur
Permalänk
Medlem

Nice...
Ganska intresant att så "gammla" kretsar fortfarande används när allt skall gå så fort som möjligt.

Visa signatur

CPU: Phenom 2 X6 1100T BE @4.0GHz by Corsair Hydro H100i RAM: 16GB 1866Mhz Corsair Vengance GPU: Zotac GTX 670 MB: MSI 990XFA GD65 HDD: Corsair Force 3 120GB PSU: Corsair VX550 Chassi: Corsair Obsidian 550D
"Filserver": Chieftec Mesh AMD Athlon x2 5200+ 4GB RAM HDD: 4x1TB 2X320GB +40GB SSD Power by Corsair HX750

Permalänk
Medlem

MBY, jag har genomskådat dig. Du försöker bara göra ÖA av hela forumet

Tack för det, mer intressanta artiklar och kåserier efterfrågas.

Faktum är att det borde vara möjligt att göra ÖÄ fast att en moderator läste igenom trådarna och godkände dessa innan de publicerades. borde inte vara några större problem.

Visa signatur

Error 412: Precondition Failed - You need to use a real browser in order to view this signature!

Permalänk
Medlem

Trivsamt nästan lite sagostund för oss sweclockare ;P

"och så levde 8042 och tangentbordet lyckliga i alla sina dagar."

Visa signatur

Var med och vik proteiner med Sweclockers du också!

Permalänk
Medlem

Ganska trevlig läsning på min ära Man lär sig något nytt varje dag.

Permalänk
Medlem

MBY, kan du inte börja spela in egna program med en DV-kamera när du sitter i en fotölj vid en öppen brasa och berättar sånna här saker?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Icetec
MBY, kan du inte börja spela in egna program med en DV-kamera när du sitter i en fotölj vid en öppen brasa och berättar sånna här saker?

haha. Sedan vill vi att du tänder ett ljus, knäpper händerna och försöker likna Arne Weise så mycket som det bara går.

Tackar och bockar för trevlig läsning:)

Permalänk
Avstängd

Tackar för uppskattningen!

Jag kan tillägga, att processorn faktiskt även har en egen display att husera med. Tre lysdioder! När användaren trycker på Caps-, Num-, eller Scroll-Lock så tänder eller släcker 8042 respektive lysdiod. Port 60h är som sagt därifrån vi får våra tecken. Om man snällt frågar 8042 via BIOS-interrupt 16h, funktion 02, så får man svar om statusen på "Lock"-tangenterna. Man kan även kommendera processorn att tända eller släcka de samme. Ja, om man vill kan man göra en 3-positions "knight rider".

En arkitektonisk detalj jag glömde nämna var att MCS-48-familjen använder s.k. minnesmappad IO, dvs portar adresseras på samma sätt som minnet. I själva verket delar huvudprocessorn och 8042 på små delar av minnet, just bl.a för att tangentbordsbufferten ska vara synlig i sin helhet. Detta minne ligger i segment 40h, dvs 0040:XXXX. Om t.ex. man tar värdet i 0040:0017, och gör en logisk "OR" med 64 (40h - en slump) och skriver tillbaka till samma adress, så tänds 'Caps Lock'.
Detta är PCn i sitt esse - en intim samlevnad mellan x86, MCS-48 och de små kodsnuttar som gjorde att datorn fick sin själ - det grundläggande in/ut-systemet, BIOS.

Citat:

Ursprungligen inskrivet av Icetec
MBY, kan du inte börja spela in egna program med en DV-kamera när du sitter i en fotölj vid en öppen brasa och berättar sånna här saker?

Citat:

Ursprungligen inskrivet av Olegh

haha. Sedan vill vi att du tänder ett ljus, knäpper händerna och försöker likna Arne Weise så mycket som det bara går.

Tackar och bockar för trevlig läsning:)

Haha, då skulle ni må va? Iförd morgonrock sittandes med pipa i en viktoriansk fåtölj och en dödskalle, ett mikroskop och en liten burk med en i4004 i formalin i bokhyllan? Vinjettmusik i stil med "Alfred Hitchcock presents"...

...

Edit:
Jag hittade en bra sida: http://www.pcguide.com/ref/kb/const/opInterfacing-c.html

8042 (eller dennes chipsetintegrerade klon) hanterar inte bara tangentbordet, utan även PS/2-musen! Detta är inte helt underligt; att koppla en mus via ett gränssnitt fysiskt och elektriskt identiskt med tangentbordet var en bra lösning för IBM när det introducerade sin PS/2 1987. PS/2, personal system 2 (för att distansiera från IBM PC) är ju ett namn som hängt med sedan dess. Liksom kontakterna.

Edit2: En teknisk beskrivning av 8042 finns här: http://panda.cs.ndsu.nodak.edu/~achapwes/PICmicro/keyboard/at...

Visa signatur

http://www.theatlantic.com/national/archive/2012/05/how-the-p...
"If there's a simple lesson in all of this, it's that hoaxes tend to thrive in communities which exhibit high levels of trust. But on the Internet, where identities are malleable and uncertain, we all might be well advised to err on the side of skepticism."

Permalänk

Mycket trevlig läsning må jag säga.
Tack för det....

Permalänk
Medlem

Grymt intressant! Läser själv en kurs i datorteknik på universitet där vi kikar på lite olika mikroprocessor främst Motorolas 68k som vi även skriver en hel del assembler för! Så jag tycker detta var kul att läsa här! Mer sådant!

Visa signatur

"People who invent random theories which only defend the vendor must have
been beaten as children. Beaten with sticks."
- Theo de Raadt

Permalänk

Vänta nu ! Vems fel är det att man inte kan trycka på fler än 3 tagenter i taget ? Är det den lilla 8042ans ?

Visa signatur

hollywoodstar

Permalänk
Medlem
Citat:

En processor som är så okänd att den inte ens tas för givet.

hehe, får man ens hylla Intel på denna nivå nu?

Citat:

Man kan även kommendera processorn att tända eller släcka de samme.

en trevlig funktion som kan användas för att signalera nytt meddelande för IM också. (plugin finns till Miranda bla) konstigt att inte fler drar nytta av detta.

Visa signatur

Operativsystemet som löser nästan alla problem: Mint

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Opteron
Grymt intressant! Läser själv en kurs i datorteknik på universitet där vi kikar på lite olika mikroprocessor främst Motorolas 68k som vi även skriver en hel del assembler för! Så jag tycker detta var kul att läsa här! Mer sådant!

Säger dig ordet Tutor något?
Annars kan jag säga att Tutor är mycket nära ren ondska...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av AndreaX

en trevlig funktion som kan användas för att signalera nytt meddelande för IM också. (plugin finns till Miranda bla) konstigt att inte fler drar nytta av detta.

Vad heter det ? letade men hittade inte, vore perfekt om man kollar på film när nån messar en.
EDIT:

sorry, sökte och fann

http://miranda-im.org/download/details.php?action=viewopinion...

Visa signatur

K6-2 350@450 mhz +Golden Orb kylare +Voodoo 5500 PCI

Permalänk
Medlem

måste vara lite tråkig... men som alla andra redan sagt, Väldigt trevlig läsning! ser fram mot mer!

Visa signatur

XP2800 @2250
9700np upplåst 5430 3dmark03

Permalänk
Medlem

Nyhetstorka på Sweclockers-redaktionen?

Visa signatur

Solen i africa! Hjälp snabbt. Tävling i klassen!
Det var High noon.
Om solen i Africa en truckförare kommer från East till Weast på huvudvägen. och exact vid eqvatorn vid Africa. Landskapet är totalt slät. På en tidpunkt var solen så ett par telestolpar gjorde så att det blev skugga.
3 gissar jag på, men kan inte förklara?