1 van 1
Elementaire computerinstructies.
Geplaatst: wo 19 nov 2008, 19:24
door Bert F
Sinds een paar weken ben ik een boek aan het lezen over de 80386 architectuur, hierin behandeld men zaken zoals paging virtueel, reële en protected mode. Ook al de mogelijk register kommen naar voor kortom het geen ik op het eerste gezicht als computer architectuur zou beschrijven.
Echter toevallig botste ik op een artikel waarin stond uitgelegd hoe dma werkt, dynamisch memory acces, tot mijn verbazing vind ik hier niets van terug in een boek die de 80386 architectuur zou willen beschrijven.
Behoort dit dan niet tot de architectuur? En bestaan er complete referentie, normen wat voor hardware componenten in een bepaalde architectuur verborgen zitten met bijhorende wijze van aansturing?
Kortom als ik een normale computer heb en ik wil die op hardware niveau bestuderen zonder enige vorm van software (dus zonder een bestaand besturingssysteem) waar vindt ik dan al de mogelijkheden, eventueel in machine taal of assembly, van aansturing van die hardware.
Groeten.
Re: Elementaire computerinstructies.
Geplaatst: wo 19 nov 2008, 19:48
door Cycloon
Kortom als ik een ‘normale’ computer heb en ik wil die op hardware niveau bestuderen zonder enige vorm van software (dus zonder een bestaand besturingssysteem) waar vindt ik dan al de mogelijkheden, eventueel in machine taal of assembly, van aansturing van die hardware.
Alle hardwarefabrikanten maken natuurlijk info over de instructies die ze aan boord hebben. De vraag is alleen of die fabrikant die ook wil delen met Jan van de straat. Hier en daar zal je dus wel info over specifieke hardware vinden, maar je zal er zeker voor op zoek moeten gaan.
Re: Elementaire computerinstructies.
Geplaatst: wo 19 nov 2008, 20:00
door Bert F
Dus een grootte jongen zoals micosoft koopt die informatie? Of wordt die niet zomaar vrijgegeven? Als je een product verkoopt, bvb een moederbord dan wil je toch dat je klant er mee kan werken. Ik weet wel dat, dat werken in de meeste gevallen gebruik maken van standaard besturingssystemen is maar als je dat nu net niet wilt en iets anders doen met die hardware kan je dan die informatie niet krijgen? Groeten.
Re: Elementaire computerinstructies.
Geplaatst: wo 19 nov 2008, 21:57
door Cycloon
Microsoft doet niet aan het laten werken van hardware. Het is vooral de producent van de hardware zelf die zorgt dat zijn hardware kan aangesproken worden en dan kom je bij de drivers uit. Het makkelijkste voorbeeld is misschien wel een grafische kaart. De reden dat bv heel veel nvidia kaarten niet werken onder linux is omdat er geen driver voor handen is die aanroepen van Linux vertaalt naar de specifieke aanroepen die de hardware vereist. Vaak komt de open-source community dan om de hoek kijken die met vallen en opstaan zelf een driver in mekaar probeert te futselen (in de vorm van trial and error). Nu, stel dat de kaart wel werkt (bv onder windows) dan zal er software zijn die bepaalde dingen vraagt aan de GPU om te verwerken. Nu is het zo dat deze software de driver zal aanspreken en niet de hardware op zich. Microsoft komt hier dus helemaal niets bij zoeken, het OS zorgt enkel voor het beheer van het systeem (in de vorm van dat processen correct worden afgehandeld, dat ieder stukje software een deel van de resources krijgt enz...) en niet voor de werkelijke interactie met de hardware, want die levert de hardwareproducent zelf. De reden dat dit alles kan werken is omdat er op voorhand wordt vastgelegd wat de functie-aanroepen zijn die de driver moet kunnen beantwoorden (bv de kaart is DirectX compatibel), hoe de hardware die functie-aanroep dan verwerkt maakt het OS niet meer uit. Je zal dus nauwelijks iets te zien krijgen van de werking van de hardware. De enigste mensen die toegang krijgen tot zulke zaken zijn de personen die de drivers maken of bepaalde instellingen die bv de hardware willen gebruiken voor bepaalde specifieke zaken en zelf hun eigen driver in mekaar willen steken.
Re: Elementaire computerinstructies.
Geplaatst: do 20 nov 2008, 10:43
door acronica
DMA (wat overigens staat voor
Direct Memory Access) staat niet in een x86 boek omdat het niets met de CPU te maken heeft. Het idee achter DMA is dat een apparaat direct naar het geheugen kan lezen/schrijven, zonder tussenkomst van de CPU.
Overigens heeft Wikipedia een goed artikel over DMA:
Wikipedia - DMA
DMA wordt geïmplementeerd in de hardware bus (ISA, PCI) en het apparaat zelf (netwerkkaart, videokaart), en de beschrijving hiervan staat dus in de handleiding van de hardware bus en van het apparaat. Met wat googlen kun je waarschijnlijk wel een handleiding vinden van ISA of PCI.
Overigens is de x86 architectuur volledig gedocumenteerd, en is alle documentatie ook
Gratis beschikbaar!
Re: Elementaire computerinstructies.
Geplaatst: do 20 nov 2008, 11:27
door Bert F
Bedankt voor de reacties.
DMA wordt geïmplementeerd in de hardware bus (ISA, PCI) en het apparaat zelf
En dus heeft het niets te maken met de cpu?
Overigens is de x86 architectuur volledig gedocumenteerd, en is alle documentatie ook
Bedankt voor de link. ik kende die al, maar nieuwere procesoren hebben toch meerdere mogelijkheden? zijn die ook zo ergens beschreven of zijn die identiek en alleen sneller?
Re: Elementaire computerinstructies.
Geplaatst: do 20 nov 2008, 11:37
door Rogier
Bedankt voor de link. ik kende die al, maar nieuwere procesoren hebben toch meerdere mogelijkheden? zijn die ook zo ergens beschreven of zijn die identiek en alleen sneller?
De nieuwe mogelijkheden omvatten vooral SIMD dingen, zoals de MMX en SSE(2/3/enz) registers en bijbehorende instructies. Die staan op talloze plaatsen beschreven, hier
MMX bijvoorbeeld.
Re: Elementaire computerinstructies.
Geplaatst: do 20 nov 2008, 12:58
door Bert F
hoe zit het met de hard drve cd rom en floppy disk bestaan daar specifieke afspraken rond, deze worden al tijdens het booten aangesproken dus toch zonder driver?
Vind ik ergens wat uitleg hoe drivers werken en hoe je ze eventueel zelf maakt?
Re: Elementaire computerinstructies.
Geplaatst: do 20 nov 2008, 13:41
door qrnlk
De meeste hardware wordt tegenwoordig via
Memory-mapped I/O aangesproken.
Re: Elementaire computerinstructies.
Geplaatst: do 20 nov 2008, 13:57
door Rogier
Bert F schreef:hoe zit het met de hard drve cd rom en floppy disk bestaan daar specifieke afspraken rond, deze worden al tijdens het booten aangesproken dus toch zonder driver?
Vind ik ergens wat uitleg hoe drivers werken en hoe je ze eventueel zelf maakt?
Ik heb er weinig ervaring mee (ooit in een grijs DOS-verleden met boot sectors lopen klooien), maar ik denk dat je wel wat vindt als je googled op de termen IDE, ATAPI, boot, "boot sector", "master boot record", e.d.