IBM pc-compatibele computer ram. Online configurator (montage) van de systeemeenheid met compatibiliteitscontrole. Bouw de optimale pc-assemblage met behulp van de online configurator

Dus waarom worden moderne desktopcomputers (met uitzondering van Apple-computers) nog steeds IBM-compatibel genoemd, hoewel het aandeel pc's dat rechtstreeks door IBM zelf wordt gemaakt vrij klein is? Het feit is dat alleen IBM aan het begin van de productie van personal computerapparatuur in zijn versie van de computer het principe van "open architectuur" verklaarde. Dit betekende dat IBM, in tegenstelling tot alle andere fabrikanten, niet van plan was een geheim te maken van wat er precies in zijn persoonlijke
computers, en belangrijker nog, ze moedigde andere bedrijven openlijk aan om zowel componenten voor IBM-compatibele computers te produceren als om precies dezelfde computers te produceren, die vanaf dat moment IBM-compatibele computers werden genoemd.

Het is dankzij dit beleid IBM-compatibele computers bezet de markt dicht, alle concurrenten die op dat moment beschikbaar waren, volledig verdrongen, waarvan er veel waren: veel
heel toevallig produceerden bedrijven hun eigen persoonlijke computers wiens architectuur volledig gesloten was - Commodore, Olivetti ...

De paradox was echter dat het bedrijf, nadat het de wereld had gepresenteerd met IBM-compatibele computers, zelf snel zijn leidende positie in de productie ervan verloor. Gebruikmakend van de volledig open en goed gedocumenteerde architectuur van deze machines, begonnen verschillende fabrikanten hun eigen modificaties uit te brengen, die vaak veel beter waren dan de IBM-modellen, waardoor bekende bedrijven als Compaq, Hewlett Packard, Acer, Dell en anderen kwamen de arena binnen.

Daarnaast leidde de openheid van de architectuur tot de opkomst van de zogenaamde Noname (naamloze) computers, die net als een speelgoedcomputer waren samengesteld uit componenten van totaal verschillende, niet erg bekende fabrikanten. Er moet echter worden opgemerkt dat bijna alle zogenaamde merkcomputers zijn samengesteld uit componenten verschillende firma's... En de taak van het bedrijf, dat zijn eigen merk bepaalt, is om te zorgen voor de selectie van deze componenten en een hoge kwaliteitscontrole.

Er is er echter maar één, volledig apart type personal computers die niet IBM-compatibel zijn. Dit zijn Apple-computers, die alleen door Apple worden geproduceerd. Apple-computers worden vaak gebruikt als persoonlijke machines, maar hun hoofddoel is publiceren en afdrukken.




Korte informatie over IBM PC - compatibele computers

In dit essay zullen we proberen kort enkele kenmerken van IBM PC-compatibele computers uit te leggen, en ook enkele basisconcepten introduceren, waarnaar we later meer dan eens zullen verwijzen.

Open architectuur (blok-modulair bouwprincipe)

De aantrekkingskracht van IBM PC-compatibele computers ligt in hun open architectuur. Dit betekent in het bijzonder dat dergelijke computers een modulair constructieprincipe hebben, dat wil zeggen dat hun hoofdeenheden en blokken in de vorm van afzonderlijke modules zijn gemaakt. Het installeren van nieuwe of het vervangen van oude apparaten waaruit de computer bestaat, is dus niet bijzonder moeilijk. De verbetering van dergelijke computers ligt in de macht van de gebruikers zelf.

Als onderdeel van een IBM PC-compatibele personal computer zijn er drie hoofdcomponenten: een systeemeenheid, een monitor en een toetsenbord. De systeemeenheid bevat alle belangrijke elektronische vulling van de computer: de voeding, het moederbord (systeem) en opslagstations (floppydrives) met verwisselbare of niet-verwijderbare media. Het toetsenbord is een standaard invoerapparaat waarmee u bepaalde tekens of tekens naar uw computer kunt sturen.

controle signalen. De monitor (of display) is ontworpen om op het scherm te worden weergegeven in zwart-wit of kleur, symbolisch of grafische informatie... Alle bovenstaande hoofdcomponenten zijn met elkaar verbonden door middel van speciale kabels met connectoren.

Het type behuizing van de systeemeenheid hangt met name af van de grootte en locatie van het gebruikte moederbord, het minimale vermogen van de voeding (dat wil zeggen, het mogelijke aantal aangesloten apparaten) en maximaal aantal geïnstalleerde schijven. Computerbehuizingen zijn verkrijgbaar in tower- en desktopversies. Het belangrijkste verschil tussen dit soort gevallen kan worden beschouwd als een ander aantal montageplaatsen voor schijven en, dienovereenkomstig, het vermogen van de voeding. Overigens kunnen er twee typen montagelocaties (montagevakken) voor schijven zijn: met externe toegang en interne toegang. Dus per definitie kan toegang tot schijven die zijn geïnstalleerd in montagesleuven van het laatste type alleen worden uitgevoerd wanneer: open deksel geval van de systeemeenheid. Deze montagelocaties kunnen alleen worden gebruikt voor schijven met niet-verwijderbare media, zoals harde schijven.

Het moederbord is de basis van een computer en is een vlakke plaat van met folie beklede glasvezellaminaat, waarop de belangrijkste elektronische elementen zich bevinden: een basismicroprocessor, willekeurig toegankelijk geheugen, een kwartsresonator en andere hulpmicroschakelingen.

In overeenstemming met het principe van open architectuur, zijn de meeste

IBM PC-compatibele computers hebben moederborden die alleen de hoofdcomponenten bevatten en er zijn geen communicatie-elementen, bijvoorbeeld met opslagstations, een monitor en andere randapparatuur. In zulke

In dit geval bevinden deze ontbrekende elementen zich op aparte printplaten, die in speciale daarvoor bestemde uitbreidingssleuven worden gestoken moederbord... Deze extra kaarten worden dochterkaarten genoemd en de systeemkaart wordt het moederbord genoemd. Functionele apparaten op dochterkaarten worden vaak controllers of adapters genoemd, en dochterkaarten worden vaak uitbreidingskaarten genoemd.

Microprocessors en systeembussen

bij IBM PC-compatibele computers alleen Intel-microprocessors of hun klonen met een vergelijkbare architectuur worden gebruikt.

De microprocessor is via de zogenaamde systeembus verbonden met de belangrijkste apparaten van de computer. Deze bus wordt niet alleen gebruikt om informatie over te dragen, maar ook om apparaten te adresseren en om speciale servicesignalen uit te wisselen. Meestal is de verbinding extra apparaten Naar systeem bus geproduceerd door middel van uitbreidingsconnectoren.

Om uitbreidingskaarten aan te sluiten op de systeembus van computers op basis van de i8088-microprocessor (IBM PC en IBM PC/XT), worden 62-pins connectoren gebruikt. Deze systeembus bevat in het bijzonder 8 datalijnen en 20 adreslijnen, die de adresruimte van een computer beperken tot een limiet van

1MB. Voor het eerst werd de nieuwe systeembus ISA (Industry Standart Architecture) gebruikt in PC / AT286-computers, waardoor het mogelijk was om 16 databits parallel te verzenden en dankzij 24 adreslijnen directe toegang tot 16 MB systeemgeheugen... Deze systeembus onderscheidt zich van de vorige door de aanwezigheid van een extra 36-pins connector voor de bijbehorende uitbreidingskaarten. Computers op basis van i80386 / 486-microprocessors begonnen speciale bussen voor geheugen te gebruiken, waardoor de prestaties konden worden gemaximaliseerd. Sommige apparaten die via de szijn aangesloten, kunnen echter geen baudsnelheden bereiken die vergelijkbaar zijn met die van een microprocessor. Het gaat hierbij vooral om het werken met storage controllers en video adapters. Om dit probleem op te lossen, begonnen ze de zogenaamde lokale (lokale) bussen te gebruiken, die de microprocessor rechtstreeks verbinden met de controllers van deze randapparatuur. Momenteel zijn er twee bekende standaard: lokale bussen: VL-bus (VESA Local-bus) en PCI (Peripheral Component Interconnect). Er zijn speciale connectoren op het moederbord van de computer om apparaten op dergelijke bussen aan te sluiten.

Poorten, interrupts, directe geheugentoegang

Alle apparaten op de systeembus worden door de microprocessor gezien als adresseerbaar geheugen of I/O-poorten. Over het algemeen wordt een poort opgevat als een soort interfaceschakeling, die meestal een of meer I / O-registers (speciale geheugencellen) bevat.

De microprocessor kan de uitvoering van een bepaalde gebeurtenis achterhalen door een signaal dat een interrupt wordt genoemd. In dit geval wordt de uitvoering van de huidige reeks opdrachten opgeschort (onderbroken) en in plaats daarvan wordt een andere reeks uitgevoerd die overeenkomt met deze onderbreking. Interrupts worden meestal geclassificeerd als hardware, logica en software.

Hardware-interrupts (IRQ's) worden verzonden via speciale lijnen op de systeembus en zijn gekoppeld aan verzoeken van externe apparaten (bijvoorbeeld het indrukken van een toets op het toetsenbord). Logische interrupts treden op tijdens de werking van de microprocessor zelf (bijvoorbeeld deling door nul), terwijl software-interrupts worden geïnitieerd door het uitvoerbare programma en meestal worden gebruikt om speciale subroutines aan te roepen.

De eerste IBM-pc's gebruikten de i8259 (Interrupt Controller) interruptcontroller-chip, die acht interrupt-signaalingangen heeft (IRQ0-IRQ7). Zoals u weet, kan de microprocessor tegelijkertijd slechts één gebeurtenis en in de keuze bedienen deze gebeurtenis hij wordt bijgestaan ​​door een interruptcontroller, die voor elk van zijn ingangen een bepaald prioriteitsniveau instelt. De IRQ0-onderbrekingsverzoekregel heeft de hoogste prioriteit en IRQ7 heeft de laagste prioriteit, dat wil zeggen, de prioriteit neemt af in oplopende volgorde van het regelnummer. In de IBM PC/AT waren acht interruptlijnen niet meer voldoende en werd hun aantal opgevoerd tot 15. In de eerste modellen werd hiervoor cascadering van twee i8259-microschakelingen gebruikt. Het werd uitgevoerd door de uitgang van de tweede controller aan te sluiten op de IRQ2-ingang van de eerste.

Het volgende is belangrijk om hier te begrijpen. Onderbrekingslijnen IRQ8 - IRQ15 (dat wil zeggen, de ingangen van de tweede controller) hebben een prioriteit lager dan IRQ1, maar hoger dan IRQ3.

In de directe toegangsmodus (DMA, Direct Memory Access) wordt het randapparaat rechtstreeks op het RAM-geheugen aangesloten en niet via de interne registers van de microprocessor. Dergelijke gegevensoverdracht is het meest effectief in situaties waarin dit vereist is hoge snelheid delen voor veel informatie. De bijbehorende signalen worden gebruikt om het directe toegangsproces op de systeembus te starten.

In computers die compatibel zijn met IBM PC en PC / XT, wordt één 4-kanaals DMA i8237-chip gebruikt voor directe geheugentoegang, waarvan kanaal 0 bedoeld is voor dynamische geheugenregeneratie. Kanalen 2 en 3 worden gebruikt om gegevensoverdracht met hoge snelheid tussen schijven te regelen. diskettes, harde schijf en RAM, respectievelijk.

IBM PC / AT-compatibele computers hebben 7 DMA-kanalen. In de eerste computers werd dit bereikt door twee i8237-microschakelingen in cascade te schakelen, zoals in het geval van interruptcontrollers.

Computer geheugen

Alle personal computers gebruiken drie soorten geheugen: operationeel, permanent en extern (verschillende opslagapparaten). Het willekeurig toegankelijke geheugen is bedoeld voor het opslaan van variabele informatie, aangezien het de mogelijkheid biedt om de inhoud ervan te wijzigen tijdens de uitvoering van de overeenkomstige bewerkingen door de microprocessor. Aangezien op elk moment toegang kan worden verkregen tot een willekeurig geselecteerde cel, wordt dit type geheugen ook wel random access memory genoemd - RAM (Random Access Memory).

Alle programma's, ook spelprogramma's, worden exact in werkgeheugen... Het permanente geheugen bevat meestal informatie die gedurende een lange periode niet zou moeten veranderen. Permanent geheugen heeft zijn eigen naam - ROM (Read Only Memory), wat aangeeft dat het alleen lees- en opslagmodi biedt.

Logische geheugenorganisatie

Zoals u weet, wordt de PC / XT i8088-microprocessor gebruikt in de IBM-pc en biedt via zijn 20 adresbussen toegang tot slechts 1 MB geheugenruimte. De eerste 640 KB adresseerbare ruimte op IBM PC-compatibele computers wordt gewoonlijk conventioneel geheugen genoemd. De resterende 384 KB is gereserveerd voor systeemgebruik en wordt geheugen genoemd in hogere adressen (UMB, Upper Memory Blocks, High DOS Memory of UM Area - UMA).Dit geheugengebied is gereserveerd voor de locatie van het systeem-ROM BIOS (Read Only Memory Basic Input Output System), voor videogeheugen en ROM-geheugen van extra adapters.

Uitgebreid geheugen

Op bijna alle pc's is de UMB zelden vol. In de regel is het gebied voor het uitbreiden van het systeem-ROM-BIOS of een deel van het videogeheugen en het gebied voor extra modules ROM. Dit is de basis van de EMS (Expanded Memory Specification) specificatie, oorspronkelijk ontwikkeld door Lotus Development, Intel en Microsoft (daarom ook wel de LIM-specificatie genoemd). Deze specificatie maakt het gebruik van meer RAM dan de standaard 640KB voor toepassingsprogramma's mogelijk. Het principe van het gebruik van extra geheugen is gebaseerd op schakelblokken (pagina's) geheugen. In het UMB-gebied, tussen de videobuffer en het systeem RGM BIOS, wordt een onbezet 64K "venster" toegewezen, dat is verdeeld in pagina's. Software en hardware maken het mogelijk om elk segment van extra geheugen toe te wijzen aan een van de toegewezen "venster" (TM)-pagina's. Hoewel de microprocessor altijd toegang heeft tot de gegevens die in het "venster" zijn opgeslagen (adres kleiner dan 1 MB), kunnen de adressen van deze gegevens offset in het extra geheugen ten opzichte van "windows" voor enkele megabytes (zie Fig. 1).

In computers die zijn gebaseerd op de i8088-processor, moeten voor het implementeren van extra geheugen speciale kaarten met hardware-ondersteuning voor het "verwisselen" van geheugenblokken (pagina's) en een bijbehorend softwarestuurprogramma worden gebruikt. Natuurlijk kunnen er ook extra geheugenkaarten worden geïnstalleerd in computers met i80286 of hogere processors.

Uitgebreid geheugen

Computers die de l80286-processor met 24-bits adresbussen gebruiken, kunnen fysiek 16 MB adresseren, en in het geval van de i80386/486-processors, 4 GB geheugen. Deze optie is alleen beschikbaar voor de beveiligde modus van de processor, die: besturingssysteem MS-DOS biedt geen ondersteuning. Uitgebreid geheugen bevindt zich boven het adresgebied van 1 MB (verwar 1 MB RAM en 1 MB adresruimte niet). Om met uitgebreid geheugen te kunnen werken, moet de microprocessor overschakelen van echte naar beveiligde modus en terug. In tegenstelling tot l80286, voeren i80386 / 486 microprocessors deze bewerking vrij eenvoudig uit, daarom heeft MS-DOS een speciale driver voor hen - geheugenbeheerder EMM386 (zie Fig. 2).

Trouwens, met de aanwezigheid van de juiste driver, kan uitgebreid geheugen worden geëmuleerd als extra geheugen. In dit geval moet hardware-ondersteuning worden geleverd door een microprocessor van minimaal i80386 of een extra set speciale microschakelingen (bijvoorbeeld NEAT-kits van Chips and Technologies). Opgemerkt moet worden dat veel geheugenkaarten die de LIM / EMS-standaard ondersteunen ook als uitgebreid geheugen kunnen worden gebruikt.

Uitgebreid geheugen

HMA-gebied

IA-gebied - geheugen

Systeem-ROM BIOS

ROM BIOS-extensie

"EMS-venster"

BIOS van harde schijf

EGA/VGA ROM-BIOS

Video geheugen

CGA-display

Monochroom scherm

EGA / VGA-scherm

EMM.SYS-stuurprogramma

TSR-programma's

Rijst. een Extra geheugen

Rijst. 2 Uitgebreid geheugen

Cachegeheugen

De cache is ontworpen om de snelheid van relatief langzame apparaten aan te kunnen, zoals: dynamisch geheugen met een snelle microprocessor. Het gebruik van cachegeheugen vermijdt wachtcycli in zijn werk, die de prestaties van het hele systeem verslechteren.

Met behulp van cachegeheugen wordt meestal getracht de werking van externe apparaten, bijvoorbeeld verschillende opslagapparaten en een microprocessor, te coördineren. De juiste cachecontroller moet ervoor zorgen dat de instructies en gegevens die de microprocessor op een bepaald moment nodig heeft, zich op dat moment in het cachegeheugen bevinden.

Opslagapparaten

Opslagapparaten kunnen worden geclassificeerd op basis van de volgende criteria:

door het type opbergelementen

door functioneel doel

naar de manier waarop het beroep wordt georganiseerd

door de aard van lezen

door opslagmethode:

bij wijze van organisatie

Door het type opbergelementen

Halfgeleider

Magnetisch

condensor

opto-elektronische

Holografisch

cryogeen

Door functioneel doel

Op type, manier om het beroep te organiseren

Sequentieel zoeken

Directe toegang

adresseerbaar

associatief

Stapel

Winkel

Door de aard van de lezing

Met vernietiging van informatie

Zonder informatie te vernietigen

Door opslagmethode:

Statisch

Dynamisch

Bij wijze van organisatie

Eén-coördinaat

Twee-coördinaat

Driedimensionaal

Twee- driedimensionaal

Bibliografie

Voor de voorbereiding van dit werk werden materialen gebruikt van de site referat2000.bizforum.ru/

Computercompatibiliteit

Parameternaam Betekenis
Onderwerp van het artikel: Computercompatibiliteit
Categorie (thematische categorie) Technologieën

Classificatie van computers.

E generatie (midden jaren '40 - midden jaren '50).

Computergeneraties

De verdeling van computertechnologie in generaties is een zeer voorwaardelijke, niet-strikte classificatie van computersystemen volgens de mate van ontwikkeling van hardware en software, evenals manieren om met een computer te communiceren

Het idee om machines in generaties op te delen is te wijten aan het feit dat computertechnologie in de korte geschiedenis van zijn ontwikkeling een grote evolutie heeft doorgemaakt, zowel in de zin van de elementbasis ( lampen, transistors, microschakelingen en anderen), en in de zin van het veranderen van de structuur, het ontstaan ​​van nieuwe kansen, het uitbreiden van de reikwijdte en de aard van het gebruik.

De ontwikkeling van computers heeft verschillende stadia doorlopen die verband houden met generaties computers. Elke generatie computers onderscheidt zich door zijn elementbasis, architectuur, reikwijdte, interfaces en software voor het oplossen van problemen.

Element basis - elektronische buizen, weerstanden, condensatoren; de architectuur is het eenvoudigst; toepassing - wetenschappelijke berekeningen; communicatiemethoden - direct handmatige bediening computerapparatuur, programmeren in de taal van de machine.

1945-1950 Vooraanstaand wetenschapper J. von Neumann (VS) ontwikkelde het concept en het ontwerp van de EDVAC-computer. De belangrijkste bepalingen van het von Neumann-concept worden nog steeds gebruikt.

1946 . De Amerikaanse ingenieurs D. Eckert en D. Moachley bouwden de eerste werkende computer ENtAC aan de Universiteit van Pennsylvania.

1947-1950 Een groep ingenieurs onder leiding van Acad. S. A. Lebedeva ontwikkelt en stelt de eerste kleine elektronische rekenmachine (MESM) in de USSR in werking.

1948 . Een groep Amerikaanse natuurkundigen heeft een transistor ontworpen - het belangrijkste element van de computer van de 2e generatie.

1949 . In Engeland werd onder leiding van M. Wilkes de eerste computer met het opgeslagen programma EDSAK gemaakt.

Het begin van de jaren 50. In verschillende landen begint de serieproductie van computers van de 1e generatie, waarvan het belangrijkste basiselement vacuümbuizen waren. RAM's werden gebouwd op kwikvertragingslijnen, CRT's en later op ferrietringen.

In de USSR werden, na MESM, het volgende geproduceerd: in Moskou, een grote elektronische rekenmachine BESM-1, BESM-2 (SA Lebedev) en de snelste computer in Europa in die tijd M-10 (L. Lebedev en Yu. A. Basilevsky), Penza -ʼʼUralʼʼ (V.I.Rameev), in Minsk-ʼʼMinsk-1, ʼʼMinsk-14ʼʼ (V.V. Przhislovsky), in Kiev - Kievʼʼ (V.M. Glushkov), in Yerevan - Rozdanʼʼ (F.T. Sargsyan).

De introductie van de eerste computers kon niet plaatsvinden zonder de geavanceerde ontwikkeling van numerieke methoden voor het oplossen van problemen en de basisprincipes van programmeren. Dit werk in de USSR werd geleid door academici A.A. Markov, A.N. Kolmogorov, I.V. Kurchatov, M.A. Lavrent'eva, A.A. Dorodnitsyn, MV Keldysh.

1942-1953 Sovjetwetenschappers A.A. Lyapunov en M.R. Shura-Pura stelden een methode voor operatorprogrammering voor.

1943-1955 Een groep wiskundigen onder leiding van D. Beycus (VS) ontwikkelde de algoritmische taal Fortran.

2e generatie (midden jaren '50-midden jaren '60): halfgeleidertransistors en diodes, weerstanden, condensatoren; meer complexe architectuur; oplossing van wetenschappelijke, technische en nationale economische problemen; het gebruik van besturingssystemen; schepping computercomplexen; collectief gebruik; ontwikkeling van algoritmische talen.

1954-1957 In de VS zal de eerste computer op basis van de NCR 304-transistor worden gemaakt.

Eind jaren 50. Aan het Massachusetts Institute of Technology is de LISP-algoritmische taal ontwikkeld, die werkt aan de problemen van kunstmatige intelligentie in het toegepaste plan - voor expertsystemen).

Het begin van de jaren 60. Serieproductie in de USSR van 2e generatie computers op transistors: M-220, BESM-3, BESG 4, "Ural-11", "Ural-14", "Ural-16", "Minsk-22", "Minsk- 32", "Razdan-2", "Razdan-3", ʼʼDnepr-1ʼʼ, ʼʼDnepr-3ʼʼ en anderen.

1961 . Intel (VS) bracht de eerste geïntegreerde schakelingen (IC's) op de markt.

1966 . In de USSR werd 's werelds snelste (voor die tijd) grote EVG BESM-6 (S.A. Lsbsv) in gebruik genomen. De hogesnelheidsprestaties van BESM-6 werden voor het eerst bepaald door de meervoudig geprogrammeerde werkingsmodus en de pijplijnprocedure voor gegevensverwerking, die in bijna alle moderne computers worden gebruikt.

3e generatie (midden jaren 60 - midden jaren 70) geïntegreerde microschakelingen; de architectuur is geassocieerd met multiprocessor-, multicomputer- en multikanaalcomplexen; het oplossen van een breed scala aan problemen van automatisering van besturing, ontwerp en planning; efficiënte besturingssystemen, applicatieprogramma's en programmeertalen; de opkomst van de eerste computernetwerken.

1965 . In de VS is de productie van de 3e generatie computer van de 360-serie op geïntegreerde schakelingen begonnen.

1966 . Voor het verwerken van commerciële informatie is de algoritmische taal COBOL (VS) ontwikkeld.

1986 . DEC (VS) heeft een minicomputer van de PDP-familie ontwikkeld met een breed scala aan toepassingen: onderzoek, procescontrole, verwerking van experimentele gegevens in realtime, automatisering van engineering, economisch en managementwerk, enz.

Het begin van de jaren 70. In de USSR zijn, samen met specialisten van de NRB, Hongarije, Tsjechoslowakije en de DDR, computers van de derde generatie van een verenigd systeem (ES-computers) ontwikkeld die in de vereiste hoeveelheid worden geproduceerd. Deze computers, compatibel met de IBM 360, dienden als basis voor de organisatie van gedeelde rekencentra en geautomatiseerde controlesystemen in grote organisaties en ondernemingen.

1971 . Intel (VS) heeft een microprocessor uitgebracht op basis van IC-technologie.

1971 . Het Office of Advanced Study van het Amerikaanse ministerie van Defensie heeft de inzet aangekondigd van het eerste deel van het wereldwijde informatienetwerk ARPANET. In 1982 . Het ARPANET werd geïntegreerd met andere netwerken en deze gemeenschap van netwerken werd bekend als internet.

jaren 70 - begin jaren 80. In de VS, Engeland en de USSR komen supercomputers in gebruik: ILLIAC-IV, STATAN-100, Sgau-1 (2, 3, MX), Cyber-205, DAP, Phenix, Connection machine, Elbrus.

1973-1976 Specialisten uit de USSR, Bulgarije, Hongarije, Polen, Tsjechoslowakije, Oost-Duitsland, Mongolië en Cuba hebben een reeks minicomputers ontwikkeld die compatibel zijn met PDP (VS).

4e generatie (midden jaren 70 - 2000 .): grote geïntegreerde schakelingen; complexe architectuur; het oplossen van verschillende problemen op alle gebieden van menselijke activiteit; multitasking en besturingssystemen voor meerdere gebruikers; ʼʼManipulatoren van het persoonlijke type; spraakinvoer- en uitvoerapparaten; multimedia-faciliteiten; effectieve applicaties en talen die kunstmatige intelligentie ondersteunen; ontwikkeling van de infrastructuur van computernetwerken.

1977 . In de Verenigde Staten richtten de jonge ondernemers S. Jobson en S. Voznyak een bedrijf op om goedkope pc's te maken die voor een breed scala aan gebruikers waren ontworpen. Deze pc's, APPLE genaamd, dienden als basis voor de wijdverbreide acceptatie van pc's over de hele wereld.

1979-1980. Japanse specialisten hebben de eerste elektronische woordenboeken-vertalers ontwikkeld en gelanceerd.

1981 . Een groep vooraanstaande specialisten van verschillende elektronische bedrijven in Japan kondigde in de jaren 90 de creatie aan van een computer van de 5e generatie ("Japanse uitdaging voor de wereld").

1982 . Firma IBM (VS), die een leidende positie innam in de productie van mainframes, begon met de productie van de IBM PC. Veel bedrijven in de wereld zijn begonnen met IBM - gezamenlijke pc's.

Midden jaren 80. Een groep wetenschappers onder leiding van K. Sagan (VS) en V.V. Aleksandrova (USSR) ontwikkelde wiskundige modellen van de gevolgen van een "nucleaire winter" en een "nucleaire nacht". Deze conclusies hebben een grote rol gespeeld bij het vormgeven van het beleid van de landen die atoomwapens bezitten.

1988 . In de USSR is de massaproductie begonnen van school-pc's ("Corvette", UKNT's, "Nemiga", enz.) en huishoudelijke pc's (BK 0010, "Partner", "Vector", "Byte", enz.).

Tegenwoordig produceert een groot aantal elektronische bedrijven in de wereld verschillende klassen computers, van huishoudelijke tot supercomputers in stationaire en draagbare versies. Het aantal computers in de wereld van vandaag is ongeveer: 2,5 ‣‣‣ 10 8 pc's; minicomputer-10 6 stuks; manframes - 2 * 10 4 stuks supercomputer - 100 stuks

5e generatie (begin eenentwintigste eeuw). Nu is het moeilijk te voorspellen hoe de 6e generatie computers eruit zullen zien, maar het is wel mogelijk om de algemene trends in de ontwikkeling van computertechnologieën en hun impact op de samenleving aan te geven.

Ontwikkeling is ook onderweg "intellectualisering" computers, waardoor de barrière tussen mens en computer wordt weggenomen. Computers zullen in staat zijn om informatie van handgeschreven of gedrukte tekst͵ van formulieren, van een menselijke stem, de gebruiker met de stem te herkennen, van de ene taal in de andere te vertalen.

Computers van de zesde generatie maken een enorme sprong voorwaarts in de verwerking gegevens te verwerken kennis.

Creatie van een familie van computers met fundamenteel nieuwe mogelijkheden die zullen zorgen voor:

efficiënt gebruik alle beschikbare middelen van het land: materiaal, energie, menselijke informatie;

verbetering van zaken in gebieden met een lage arbeidsproductiviteit;

opname van het land in internationale samenwerking;

verbetering van het gebruik van het intellectuele potentieel van de samenleving;

het concurrentievermogen van goederen op de internationale markt vergroten;

verhoging van de productiviteit van de bevolking;

het bevorderen van een hoog opleidingsniveau.

De elementaire basis van de computer wordt verondersteld:

het bereiken van de maximale pakkingsdichtheid van elementen in op silicium gebaseerde VLSI;

productie van VLSI op basis van galliumarsenide;

het gebruik van cryogene technologie op basis van het Josephson-effect.

Computerarchitecturen worden verbeterd op de volgende gebieden:

· Creatie van een computersysteem met verschillende capaciteiten, uitgebalanceerd in architectuur, waarmee de gebruiker snel, eenvoudig en effectief gebruik kan maken van het enorme potentieel van een dergelijk systeem;

Ontwikkeling van pc's met één processor met: commando controle, op een nieuwe high-speed elementbasis; deze richtlijnen zijn ontwikkeld door die bedrijven die de softwarecompatibiliteit van nieuwe pc's met bestaande pc's willen behouden;

· Ontwikkeling van computers op verschillende snelle processors met commandobesturing, waarvan sommige universeel zijn, en de andere deel - gepijplijnd of parallel met een klein aantal verwerkingselementen;

· Ontwikkeling van krachtige multiprocessorcomputers met pijplijn-, parallelle of matrixinformatieverwerking.

Naast de bekende methoden van informatieverwerking zijn computers gericht op patroonherkenning en gestructureerde kennisverwerking en het nemen van intelligente beslissingen.

Verbetering van intelligente interfaces:

hardware en software voor invoer / uitvoer van verschillende soorten informatie;

communicatie in een probleemgerichte natuurlijke spreektaal;

het gebruik van tekstdocumenten, zowel gedrukt als handgeschreven, en afbeeldingen;

allround ontwikkeling van bekende en nieuwe algoritmische programmeertalen;

toepassing van kunstmatige intelligentietalen: Lisp Prolog, PS, FRL, VALID, OCCAM, etc.

De implementatie van programma's voor het maken van computers van de 5e generatie zal het in een aantal landen mogelijk maken om de zogenaamde informatiemaatschappij op te bouwen.

Er zijn verschillende classificaties van computertechnologie:

door ontwikkelingsstadia (per generaties);

op architectuur;

door prestaties;

volgens bedrijfsomstandigheden;

door het aantal verwerkers;

door consumenteneigendommen, enz.

Er zijn geen duidelijke grenzen tussen klassen van computers... Met de verbetering van de structuren en productietechnologie verschijnen nieuwe klassen computers, de grenzen van de bestaande klassen veranderen aanzienlijk.

Afhankelijk van de bedrijfsomstandigheden zijn computers onderverdeeld in twee typen:

kantoor (universeel);

speciaal.

Office is ontworpen om een ​​breed scala aan taken op te lossen onder normale bedrijfsomstandigheden.

Speciale computers worden gebruikt om een ​​kleinere categorie taken op te lossen of zelfs één taak waarvoor meerdere oplossingen nodig zijn, en werken onder speciale bedrijfsomstandigheden.

De machinebronnen van speciale computers zijn vaak beperkt. Bovendien maakt hun beperkte oriëntatie het mogelijk om de gegeven klasse van taken het meest efficiënt uit te voeren.

Speciale computers besturen technologische installaties, werken in operatiekamers of ambulances, op raketten, vliegtuigen en helikopters, in de buurt van hoogspanningstransmissielijnen of in het werkgebied van radars, radiozenders, in onverwarmde ruimtes, onder water op diepte, in omstandigheden van stof, modder, trillingen, explosieve gassen, enz. Er zijn veel modellen van dergelijke computers. Laten we kennis maken met een van hen.

Ergotouch-computer

De Ergotouch-computer is gehuisvest in een volledig afgedichte behuizing van gegoten aluminium die gemakkelijk te openen is voor onderhoud.

Computerwanden absorberen bijna alles electromagnetische straling zowel binnen als buiten. De machine is uitgerust met een aanraakgevoelig scherm.

De computer kan, zonder uit te schakelen, van een slang afwassen, desinfecteren, deactiveren, ontvetten.

Dankzij de hoogste betrouwbaarheid kan het worden gebruikt als een hulpmiddel voor realtime controle en monitoring van technologische processen. De computer wordt eenvoudig opgenomen in het lokale netwerk van de onderneming.

Een belangrijke richting bij de totstandkoming van industriële computers is de ontwikkeling van "bedieningspaneel"- bedieningspanelen, displays, toetsenborden en aanwijsapparaten in alle mogelijke uitvoeringen. Het comfort en de productiviteit van het werk van de operators is rechtstreeks afhankelijk van deze producten.

Op basis van prestaties en de aard van het gebruik kunnen computers grofweg worden onderverdeeld in:

microcomputers, incl. - persoonlijke computers;

minicomputers;

hoofdframes ( computers voor algemeen gebruik);

supercomputers.

Microcomputers zijn computers waarin: CPU gemaakt in de vorm van een microprocessor.

Geavanceerde microcomputermodellen hebben meerdere microprocessors. De prestaties van een computer worden niet alleen bepaald door de kenmerken van de gebruikte microprocessor, maar ook door de capaciteit van het RAM-geheugen, de soorten randapparatuur, de kwaliteit van ontwerpoplossingen, enz.

Microcomputers zijn hulpmiddelen voor het oplossen van verschillende moeilijke taken... Hun microprocessors verhogen elk jaar het vermogen en hun randapparatuur verhoogt de efficiëntie. Hoge snelheidsprestaties - ongeveer 1 - 10 miljoen bewerkingen per seconde.

Een soort microcomputer is een microcontroller.
Geplaatst op ref.rf
Het is een op een microprocessor gebaseerd gespecialiseerd apparaat dat is ingebouwd in een besturingssysteem of productielijn.

Moderne computertechnologie is als volgt ingedeeld:

· Persoonlijke computers;

· Bedrijfscomputers;

· Supercomputers.

Personal computers (pc's) zijn microcomputers universeel doel ontworpen voor één gebruiker en bediend door één persoon.

De klasse van personal computers omvat verschillende machines - van goedkope thuis- en speelautomaten met een klein RAM-geheugen, met programmageheugen op cassetteband en een conventioneel tv-toestel als display, tot ultracomplexe machines met een krachtige processor, een harde schijf met een capaciteit van tientallen gigabytes, met gekleurde grafische apparaten hoge resolutie, multimedia en andere extra apparaten.

Personal computers zijn computersystemen, waarvan alle middelen volledig zijn gericht op het ondersteunen van de activiteiten van één medewerker.

De meest bekende zijn computers van de IBM PC- en Macintosh-families. Dit zijn twee verschillende richtingen van pc-ontwikkeling, incompatibel met elkaar in termen van hardware en software... Toevallig zijn computers van de Macintosh-familie heel gemakkelijk te gebruiken, hebben ze brede grafische mogelijkheden en worden ze veel gebruikt door professionele kunstenaars, ontwerpers, uitgeverijen en in het onderwijs.

In de familie van IBM-compatibele pc's zijn er ook verschillende soorten computers die aanzienlijk van elkaar verschillen in hun kenmerken en uiterlijk, en toch zijn het allemaal personal computers. Dit zijn in de eerste plaats desktop- en laptop-pc's, die, ondanks aanzienlijke externe verschillen, ongeveer dezelfde kenmerken en mogelijkheden hebben.

Laptop-pc's- dure producten, maar ze zijn compact en transporteerbaar. In wezen verschillend van desktop en laptop - zakcomputers - de zogenaamde organizers, of "draagbare secretaresses". Deze pc-notebooks hebben geen randapparatuur of toetsenborden, de keuze van de commando's wordt rechtstreeks op het miniatuurscherm uitgevoerd met behulp van een aanwijzer - stylus.

Laptopcomputers meestal nodig door bedrijfsleiders, managers, wetenschappers, journalisten die buiten kantoor moeten werken - thuis, bij presentaties of tijdens zakenreizen.

belangrijkste variëteiten laptop computers:

Laptop (kniebeschermer, vanaf ronde- knie en bovenkant- bovenop). Het is qua omvang vergelijkbaar met een gewone portefeuille. In termen van de belangrijkste kenmerken (prestaties, geheugen) komt het ongeveer overeen met een desktop-pc. Nu maken computers van dit type plaats voor nog kleinere.

Notitieboekje (kladblok, notitieboekje). Qua formaat lijkt het meer op een boek op groot formaat. Het heeft een gewicht van ongeveer 3 kg. Past in een aktetas-diplomaat. Het is belangrijk op te merken dat het voor communicatie met het kantoor meestal is uitgerust met: modem... Laptops leveren vaak Cd-rom-stations.

Veel moderne laptops bevatten: verwisselbare blokken met standaard connectoren... Deze modules zijn ontworpen voor zeer verschillende functies. In dezelfde sleuf kunt u indien nodig een cd-rom-station, magnetische schijf, reservebatterij of verwisselbare harde schijf plaatsen.
Geplaatst op ref.rf
Notitieboekje bestand tegen stroomuitval... Zelfs als hij stroom krijgt van een conventioneel lichtnet, schakelt hij bij een storing onmiddellijk over op batterijvoeding.

persoonlijk digitale assistent

Palmtop (handheld) - de kleinste moderne personal computers. Past in de palm van je hand. De magnetische schijven erin worden vervangen door niet-vluchtig elektronisch geheugen. Er zijn ook geen opslagapparaten op schijven - informatie-uitwisseling met gewone computers gaat via communicatielijnen. Als Palmtop wordt aangevuld met een reeks zakelijke programma's die in het permanente geheugen zijn vastgelegd, zal het blijken persoonlijke digitale assistent (Persoonlijke digitale assistent).

Bedrijfscomputers(ook wel minicomputers of main fram genoemd) zijn computersystemen die zorgen voor de gezamenlijke activiteiten van veel medewerkers binnen één organisatie, één project één gebied van informatie-activiteit met dezelfde informatie- en computerbronnen. Dit zijn multi-user systemen met een centrale unit met grote rekenkracht en aanzienlijke informatiebronnen, waarop de groot aantal werkplekken met minimale apparatuur (videoterminal, toetsenbord, muispositioneringsapparaat en eventueel een printapparaat). Personal computers worden in principe ook gebruikt als werkstations die zijn aangesloten op de centrale unit van een bedrijfscomputer. De reikwijdte van bedrijfscomputers is de implementatie van informatietechnologie-ondersteuning managementactiviteiten in grote financiële en industriële organisaties, overheidsinstanties, het creëren van informatiesystemen die een groot aantal gebruikers binnen één functie bedienen (uitwisselings- en banksystemen, boeking en verkoop van tickets, enz.).

Kenmerken van bedrijfscomputers:

Uitzonderlijke betrouwbaarheid;

Hoge performantie;

Groot doorvoer invoer uitvoer.

De kosten van dergelijke computers bedragen miljoenen dollars. De vraag is groot.

Voordelen - Gecentraliseerde opslag en verwerking van gegevens is goedkoper dan het onderhouden van gedistribueerde gegevensverwerkingssystemen die uit honderden of duizenden pc's bestaan.

supercomputers zijn computersystemen met extreme kenmerken? computer kracht en informatiebronnen. Οʜᴎ worden gebruikt bij militaire en ruimtevaartactiviteiten, bij fundamenteel wetenschappelijk onderzoek, wereldwijde weersvoorspellingen, militaire industrie, geologie, enz. Bijvoorbeeld het weer voorspellen of een nucleaire explosie simuleren.

Supercomputerarchitectuur is gebaseerd op ideeën parallellisme en pijplijnberekening.

In deze machines worden parallel, dat wil zeggen tegelijkertijd, veel vergelijkbare bewerkingen uitgevoerd (dit wordt meestal genoemd multiverwerking). ᴏϬᴩᴀᴈᴏᴍ, ultrasnelle prestaties zijn gegarandeerd niet voor alle taken, maar alleen voor taken, vatbaar voor parallellisatie.

Een onderscheidend kenmerk van supercomputers zijn vectorprocessors die zijn uitgerust met apparatuur voor parallelle uitvoering van bewerkingen met multidimensionale digitale objecten - vectoren en matrices. Ze hebben ingebouwde vectorregisters en een parallelle verwerkingsengine met pijplijn. Als de programmeur op een gewone processor om de beurt bewerkingen uitvoert op elk onderdeel van een vector, dan geeft hij op een vectorprocessor onmiddellijk vectorcommando's.

Vectorhardware is erg duur, deels omdat er veel ultrasnel geheugen voor vectorregisters nodig is.

De meest voorkomende supercomputers zijn massaal parallelle computersystemen. Οʜᴎ tienduizenden processors laten samenwerken via een complex, hiërarchisch georganiseerd geheugensysteem.

Denk bijvoorbeeld aan de kenmerken: multifunctionele massaal parallelle supercomputer van de middenklasse Intel Pentium Pro 200... Deze computer bevat 9.200 200 MHz Pentium Pro-processors voor een totaal van (theoretische) prestaties 1.34 Teraflops(1 Teraflop is gelijk aan 10 12 drijvende-kommabewerkingen per seconde), heeft 537 GB geheugen en schijven met een capaciteit van 2,25 Terabyte. Het systeem weegt 44 ton (airconditioners daarvoor - maar liefst 300 ton) en verbruikt 850 kW aan stroom.

Supercomputers worden gebruikt om complexe en grote wetenschappelijke problemen op te lossen (meteorologie, hydrodynamica, enz.), in controle, intelligentie, als gecentraliseerde opslag van informatie, enz.

Elementbasis - microschakelingen met een ultrahoge mate van integratie.

De kosten bedragen tientallen miljoenen dollars.

Doel - het oplossen van die taken waarvoor de pc-prestaties niet voldoende zijn;

Zorgen voor gecentraliseerde opslag en verwerking van gegevens.

Kenmerken: de mogelijkheid om tientallen en honderden terminals of pc's aan te sluiten voor gebruikerswerk; de aanwezigheid van speciale hardware voor driedimensionale modellering en animatie, in dit opzicht is het op hen dat een groot aantal films wordt gemaakt.

Mainframes zijn ontworpen om een ​​brede reeks wetenschappelijke en technische problemen op te lossen en zijn complexe en dure machines. Het is aan te raden ze te gebruiken in grote systemen met minimaal 200 - 300 werkplekken.

Gecentraliseerde verwerking op een mainframe is ongeveer 5 tot 6 keer goedkoper dan gedistribueerde verwerking in een client-serverbenadering.

Beroemde mainframe S / 390 van IBM is meestal uitgerust met ten minste drie processors. De maximale hoeveelheid operationele opslag bereikt 342 Terabytes.

De prestaties van zijn processors, bandbreedte van kanalen en de hoeveelheid operationele opslag maken het mogelijk om het aantal werkplekken te vergroten van 20 tot 200.000 door simpelweg processorkaarten, RAM-modules en schijfstations toe te voegen.

Tientallen mainframes kunnen samenwerken onder één besturingssysteem om één taak uit te voeren.

Deze indeling is nogal willekeurig, aangezien de intensieve ontwikkeling van technologieën voor de productie van elektronische componenten, aanzienlijke vooruitgang in de verbetering van computers en hun belangrijkste samenstellende elementen leiden tot een vervaging van de grenzen tussen de aangegeven klassen van computertechnologie.

Tegelijkertijd houdt de bovenstaande classificatie alleen rekening met het autonome gebruik van computertechnologie. Tegenwoordig is de heersende trend om ze te integreren in computernetwerken, wat het mogelijk maakt om informatie en computerbronnen te integreren voor de meest efficiënte implementatie van informatietechnologieën.

ІВМ РС - compatibele computers - ϶ᴛᴏ ongeveer 90% van alle moderne computers.

Compatibiliteit is:

Softwarecompatibiliteit - Alle IBM PC-software werkt op alle IBM PC-compatibele computers.

Hardwarecompatibiliteit - de meeste apparaten (behalve vijf of tien jaar geleden) voor computers ІВМ РС en nieuwere versies van ІВМ РС ХТ, ІВМ РС АТ en andere zijn geschikt voor ІВМ РС - compatibele computers.

Voordelen van ІВМ РС - compatibele computers:

1) volledige compatibiliteit heeft geleid tot de opkomst van honderdduizenden programma's voor alle gebieden van menselijke activiteit;

2) de openheid van de markt voor ІВМ РС - compatibele computers veroorzaakte hevige concurrentie tussen fabrikanten van computers en hun componenten, wat zorgde voor een hoge betrouwbaarheid, een relatief lage prijs en de snelst mogelijke introductie van technische innovaties;

3) modulair ontwerp en integratie van ІВМ РС componenten - compatibele computers die compactheid, hoge betrouwbaarheid, gemakkelijke reparatie, de mogelijkheid van gemakkelijke upgrades en vergroting van het vermogen van de computer bieden (krachtigere processor of grotere harde schijf).

De brede mogelijkheden van de ІВМ РС - compatibele computers maken het gebruik ervan in verschillende industrieën mogelijk en voor het oplossen van verschillende problemen.

Vragen voor zelfbeheersing

1. Op welke gronden kunnen computers worden onderverdeeld in klassen en typen?

7. Hoe is de basis van computers van generatie op generatie geëvolueerd?

8. Wanneer kwamen microcomputers beschikbaar voor algemeen thuisgebruik?

9. Kun je de begrippen "appel", "garage" en "computer" met elkaar in verband brengen?

10. Op basis van welke technische elementen werden de computers van de eerste generatie gemaakt?

11. Wat is het grootste probleem voor ontwikkelaars en gebruikers door de ervaring met het bedienen van computers van de eerste generatie?

12. Welke elementbasis is typerend voor de tweede generatie computers?

13. Wat is de functie van het besturingssysteem terwijl de computer draait?

14. Op welke basis zijn de machines van de derde generatie ontworpen?

15. Voor welke generaties computers is het typisch? breed gebruik geïntegreerde schakelingen?

16. Welke snelheid is typisch voor de machines van de vierde generatie?

17. Wat wordt bedoeld met "intelligentie" van computers?

18. Welke taak moet de "slimme interface" oplossen in de machines van de vijfde generatie?

19. Welke functies moeten industriële computers hebben?

20. Wat is een operatorcomputerinterface?

21. Wat zijn de belangrijkste kenmerken die mainframes onderscheiden van andere moderne computers?

22. Voor hoeveel gebruikers zijn mainframes?

23. Wat zijn de ideeën achter de architectuur van supercomputers?

24. Op welke soorten problemen worden de mogelijkheden van supercomputers gemaximaliseerd?

Onderwerp 5 ... PC ALS BASIS VAN INFORMATIETECHNOLOGIEN

1. PC-architectuur

2. PC-structuur

3. Functionele kenmerken pc

Computercompatibiliteit - concept en typen. Classificatie en kenmerken van de categorie "Computercompatibiliteit" 2017, 2018.

De basis van architectuur IBM PC-computers het principe van busorganisatie van verbindingen tussen de processor en de rest van de computercomponenten wordt gelegd. Hoewel de gebruikte soorten bussen en hun structuur sindsdien herhaaldelijk zijn veranderd, is de architectuur, het basisprincipe van de interne organisatie van de computer, ongewijzigd gebleven. Het computerapparaat wordt weergegeven in het onderstaande diagram.

De centrale verwerkingseenheid (CPU) is het hart van een computersysteem. De communicatie met de rest van de componenten verloopt via de externe bus van de processor. Binnen in de processor bevinden zich bussen voor de interactie tussen de ALU, de besturingseenheid en de geheugenregisters. De externe bus van de processor bestaat uit lijnen waardoor gegevens worden verzonden, adressen (die aangeven waar deze gegevens vandaan komen en waar deze gegevens worden verzonden) en stuurcommando's. Daarom is de gemeenschappelijke bus onderverdeeld in: databus, adresbus en stuurbus. Elke regel kan één bit data, adres of besturingscommando's bevatten. Het aantal lijnen in een bus wordt de breedte van de bus genoemd. De busbreedte bepaalt het maximale aantal gelijktijdig verzonden bits, wat op zijn beurt de algehele prestatie van de computer bepaalt. Dat wil zeggen, hoe groter de busbreedte, hoe meer gegevens tegelijkertijd kunnen worden verzonden, hoe hoger de prestatie. De tweede parameter die de prestaties beïnvloedt, is de busbaudrate, die wordt bepaald door de buskloksnelheid.

De busfrequentie is een vrij belangrijk kenmerk, maar bepaalt nog steeds niet de prestaties van een computer. De belangrijkste parameters voor de algehele prestaties van uw computer zijn de kloksnelheid en bitbreedte van de CPU. En dit is om vele redenen natuurlijk. Het is de verwerker die de belangrijkste taken van gegevensverwerking uitvoert, vaak initieert en controleert de uitwisseling van gegevens. De klokfrequentie bepaalt de snelheid van bewerkingen en de bitdiepte is de hoeveelheid gegevens die tijdens één bewerking wordt verwerkt.

Vraag 20: Het systeem van structurele elementen van de pc. Vorm factoren.

Computer Ter(Engelse computer, - "calculator") - een apparaat of systeem dat in staat is om een ​​bepaalde, duidelijk gedefinieerde variabele reeks bewerkingen uit te voeren. Dit zijn meestal bewerkingen van numerieke berekeningen en gegevensmanipulatie, maar dit omvat ook I / O-bewerkingen. De beschrijving van een reeks bewerkingen wordt een programma genoemd.

Elektronische rekenmachine,computer- een reeks technische middelen, waarbij de belangrijkste functionele elementen (logisch, opslag, indicatie, enz.) worden gemaakt op elektronische elementen die bedoeld zijn voor automatische verwerking van informatie bij het oplossen van computer- en informatieproblemen.

persoonlijk computer , pc(Engelse pc, pc), pc(persoonlijke elektronische computer) - een desktop-microcomputer met de prestatiekenmerken van een huishoudelijk apparaat en universele functionaliteit.

Vormfactor( van Engels vormfactor) - een standaardspecificatie dimensies technisch product, evenals een beschrijving van aanvullende sets van technische parameters, bijvoorbeeld vorm, soorten aanvullende elementen die in / op het apparaat zijn geplaatst, hun positie en oriëntatie.

De vormfactor (zoals elke andere standaard) is adviserend van aard.

De vormfactorspecificatie definieert de vereiste en optionele componenten. De overgrote meerderheid van fabrikanten geeft er echter de voorkeur aan om aan de specificatie te voldoen, aangezien de prijs van naleving van bestaande normen de compatibiliteit van het moederbord en gestandaardiseerde apparatuur (randapparatuur, uitbreidingskaarten) van andere fabrikanten in de toekomst is.

Een elektronische computer impliceert het gebruik van elektronische componenten als functionele eenheden, maar een computer kan volgens andere principes worden gerangschikt - het kan mechanisch, biologisch, optisch, kwantum, enz. zijn vanwege de beweging van mechanische onderdelen, de beweging van elektronen , fotonen of de effecten van andere fysieke verschijnselen. Bovendien kan een computer, afhankelijk van het type bewerking, digitaal (digitale computer) en analoog (AVM) zijn.

Aan de andere kant impliceert de term "computer" de mogelijkheid om het programma dat wordt uitgevoerd te wijzigen (herprogrammeren). Veel elektronische computers kunnen een strikt gedefinieerde volgorde van bewerkingen uitvoeren, invoer- en uitvoerapparaten bevatten of bestaan ​​uit structurele elementen die vergelijkbaar zijn met die welke in een elektronische computer worden gebruikt (bijvoorbeeld registers), maar impliceren niet de mogelijkheid van herprogrammering. *

Ontwerpkenmerken

Moderne computers gebruiken het hele scala aan ontwerpoplossingen die zijn ontwikkeld gedurende de hele ontwikkeling van computertechnologie. Deze oplossingen zijn in de regel niet afhankelijk van de fysieke implementatie van computers, maar vormen zelf de basis waarop ontwikkelaars vertrouwen. Dit zijn de belangrijkste vragen die computerfabrikanten beantwoorden:

Digitaal of analoog

Een fundamentele beslissing bij het ontwerpen van computers is om te kiezen of het een digitaal of een analoog systeem wordt. Als digitale computers werken met discrete numerieke of symbolische variabelen, dan zijn analoge computers ontworpen om continue stromen van binnenkomende gegevens te verwerken. Tegenwoordig hebben digitale computers een veel breder scala aan toepassingen, hoewel hun analoge tegenhangers nog steeds voor een aantal speciale doeleinden worden gebruikt. Er moet ook worden vermeld dat hier andere benaderingen mogelijk zijn, bijvoorbeeld in pulsed en quantum computing, maar tot nu toe zijn het zeer gespecialiseerde of experimentele oplossingen.

Voorbeelden van analoge computers, van eenvoudig tot complex, zijn: nomogram, rekenliniaal, astrolabium, oscilloscoop, televisie, analoge geluidsprocessor, stuurautomaat, hersenen.

Onder de eenvoudigste discrete rekenmachines is het telraam of het gewone telraam bekend; het meest complexe van deze systemen is de supercomputer.

Nummersysteem

Een voorbeeld van een computer gebaseerd op het decimale getalsysteem is de eerste Amerikaanse computer, de Mark I.

De belangrijkste stap in de ontwikkeling van computertechnologie was de overgang naar de interne representatie van getallen in binaire vorm. Dit heeft het ontwerp van computerapparatuur en randapparatuur sterk vereenvoudigd. De adoptie van het binaire getalsysteem als basis maakte het mogelijk om rekenkundige functies en logische bewerkingen eenvoudiger te implementeren.

De overgang naar binaire logica was echter geen onmiddellijk en onvoorwaardelijk proces. Veel ontwerpers hebben geprobeerd computers te ontwikkelen op basis van het voor mensen meer bekende decimale getalsysteem. Ander constructieve beslissingen... Dus een van de vroege Sovjetmachines werkte op basis van het metronummersysteem, waarvan het gebruik in veel opzichten winstgevender en handiger is dan het binaire systeem (het ontwerp van de ternaire computer Setun werd ontwikkeld en geïmplementeerd door de getalenteerde Sovjet ingenieur NP Brusentsov).

Onder leiding van academicus Ya. A. Khetagurov werd een "zeer betrouwbare en beschermde microprocessor van een niet-binair coderingssysteem voor realtime-apparaten" ontwikkeld, met behulp van een coderingssysteem 1 van 4 met een actieve nul.

In het algemeen verandert de keuze voor een intern gegevenspresentatiesysteem echter niets aan de basisprincipes van de werking van een computer - elke computer kan een andere emuleren.

Programma's en gegevens opslaan

Tijdens het uitvoeren van berekeningen is het vaak nodig tussentijdse gegevens op te slaan voor later gebruik. De prestaties van veel computers worden grotendeels bepaald door de snelheid waarmee ze waarden kunnen lezen en schrijven naar (uit) het geheugen en de totale capaciteit ervan. Aanvankelijk werd computergeheugen alleen gebruikt voor het opslaan van tussenliggende waarden, maar al snel werd voorgesteld om de programmacode op te slaan in hetzelfde geheugen (von Neumann-architectuur, ook bekend als "Princeton") als de gegevens. Deze oplossing wordt tegenwoordig in de meeste computersystemen gebruikt. Voor besturingscontrollers (microcomputers) en signaalprocessors bleek een schema waarin gegevens en programma's in verschillende geheugensecties worden opgeslagen (Harvard-architectuur) echter handiger.

Het grootste deel van de pc, inclusief:

    elektronische apparaten die de werking van een pc regelen (inclusief - "centrale processor", "coprocessor", "RAM", "controllers" ("adapters"), "bus");

    een voeding die de wisselspanning van het net omzet in een constante spanning van de vereiste lage waarde en deze levert aan elektronische schakelingen en andere pc-eenheden;

    externe geheugenapparaten ontworpen voor het schrijven en lezen van programma's en gegevens en bestaande uit een harde schijf (HDD) en een of twee diskettestations (HDD).

Het ontwerp van de pc-systeemeenheid bestaat uit een behuizing, verschillende elektronische kaarten (voornamelijk het "systeem"- of "moederbord" -bord), uniforme connectoren (slots), flexibele meeraderige verbindingskabels, een aan / uit-schakelaar en een klein aantal schakelaars (knoppen ) voor het aansturen van pc-bedrijfsmodi ...

De behuizing van de PC-systeemeenheid is in de volgende varianten uitgevoerd:

    Horizontaal (bureaublad) incl. in zijn verkleinde (Mini-footprint, Slimline) en kleine versie (Ultra-slimline);

    Verticaal ("toren"), incl. in zijn vergrote vorm, geschikt voor installatie op de vloer - "Big Tower", klein - "Small Tower" en middelgrote versie - "Medium Tower";

    "Alles in één" - Desktop met een combinatie van een systeemeenheid en een monitor in één geval;

Draagbaar of draagbaar, inclusief hele regel verschillende opties, waaronder - "knie" en "notebook" (zie - Laptop of Pocketbook). In deze gevallen integreert de behuizing van de systeemeenheid ook een monitor, toetsenbord, trackball en, in sommige modellen, een cd-rom-station.

    deling door nul tijdens runtime

    geheugenfout tijdens het schrijven van resultaten

Vandaag processors met consistente implementatie er zijn bijna geen instructies meer - ze zijn vervangen door processors met parallelle uitvoering van instructies, die, als alle andere dingen gelijk blijven, hogere prestaties leveren. De eenvoudigste processor met parallelle uitvoering van opdrachten is de processor met een instructiepijplijn. Een instructiepijplijnprocessor kan worden afgeleid van een sequentiële instructieprocessor door elke stap in een instructiecyclus onafhankelijk te maken van voorgaande en volgende stappen.

Hiervoor worden de resultaten van elke fase, behalve de laatste, opgeslagen in hulpgeheugenelementen (registers) die zich tussen de fasen bevinden:

Het ophaalresultaat - de gecodeerde instructie - wordt opgeslagen in een register dat zich tussen de ophaal- en decodeerstappen bevindt

Het decoderingsresultaat - het type bewerking, de waarden van de operanden, het adres van het resultaat - worden opgeslagen in registers tussen de fasen van decodering en uitvoering

De resultaten van uitvoering - de nieuwe waarde van de instructieteller voor de voorwaardelijke tak, het resultaat van een rekenkundige bewerking berekend in de ALU, enzovoort - worden opgeslagen in registers tussen de uitvoeringsfasen en het opnemen van de resultaten

In de laatste fase worden de resultaten al naar registers en/of geheugen geschreven, dus er zijn geen hulpregisters nodig.

Vector onderbreken

Met een dergelijke organisatie van het interruptsysteem identificeert de VC die de service heeft aangevraagd zichzelf met behulp van de interruptvector - het adres van de cel van het hoofdgeheugen van de microcomputer, die ofwel het eerste commando van de interruptservice-subroutine van de gegeven VU opslaat, of het adres van het begin van een dergelijke subroutine. De processor, die de onderbrekingsvector heeft ontvangen, schakelt dus onmiddellijk over naar de uitvoering van de vereiste onderbrekingsverwerkingsroutine. In een microcomputer met een vector-interruptsysteem moet elke VU zijn eigen interruptafhandelingsroutine hebben.

Met de ondersteuning van de SD-kaart rezen er meteen twee grote vragen: hardware-ondersteuning voor de SPI-bus en het protocol voor interactie met de kaart zelf.

In principe kan SPI volledig in software worden geïmplementeerd, maar ik wilde ook wat plezier hebben met hardware, dus begon ik heldhaftig aan het tekenen van een byte-transceiver in een circuitontwerp. Tot mijn verbazing was hier niets ingewikkelds aan, en al snel zag ik op het oscilloscoopscherm al snel 8-bit pakketten draaien die precies bevatten wat ik wilde. Trouwens, hier waardeerde ik voor het eerst het vermogen van de nieuwe oscilloscoop om niet alleen een heleboel signalen weer te geven, maar ook om ze logisch te combineren in de juiste bus. Het is veel prettiger om te zien dat de oscilloscoop zich realiseert dat het de A5 byte is die wordt uitgezonden, en niet handmatig kijkt of de overgangen van 0 naar 1 en vice versa op de goede plek zitten.

Om de taak te vereenvoudigen, heb ik niet geprobeerd me aan te passen aan alle soorten en soorten kaarten, maar me beperkt tot de originele SD-kaart (niet SDHC of een andere variant). Een beetje programmeren en nu werd de inhoud van de 0-sector van de kaart op het scherm weergegeven. Meteen daarna bracht ik deze functies enigszins op INT 13h, voegde INT 19h (bootload) in een embryonale vorm toe en zag het volgende op het scherm:

Omdat op dat moment bij het lezen altijd alleen de 0e sector werd gelezen, vond de bootloader (die zich net in deze sector bevindt) het besturingssysteem niet om op te starten, wat hij meldde. Maar dit zijn kleinigheden - het belangrijkste is dat mijn circuit langzaam in een echte computer is veranderd en zelfs heeft geprobeerd op te starten!

Vervolgens kwam de strijd tegen hertelling fysieke sectoren in logische blokken. Hier raakte ik ook in paniek en in plaats van de parameters (afbeelding) van de schijf te definiëren, heb ik eenvoudig de nummers voor een specifiek exemplaar van de afbeelding hardgecodeerd. Ik moest aan dit onderdeel sleutelen - berekeningen leidden om de een of andere reden tot volledig onverwachte resultaten (ik hield helemaal niet van rekenen in assembler). Desalniettemin, na enige kwelling, begonnen fysieke sectoren / cilinders / koppen regelmatig te worden vertaald in logische blokken, en het was tijd om te proberen op een serieuze manier op te starten.

Natuurlijk ging de download niet meteen door, en dit had ik niet verwacht. Omdat ik van tevoren wist dat een heleboel functies niet in mijn BIOS waren geïmplementeerd, plaatste ik stubs op alle interrupts en bij toegang tot een niet-gerealiseerde functie, de hele de nodige informatie- welke interrupt en welke argumenten worden behandeld. Dan was er het proces van het schrijven van een handler voor de corresponderende functie (en nog vaker - slechts een tijdelijke stub), en het proces ging verder. Plotseling stopte het allemaal bij een functie die de originele pc helemaal niet had - een van de gebeurtenisafhandelingsfuncties van INT 2F. Ik zag dat DOS het type pc detecteert en het lijkt erop dat het geen onderbrekingen zou moeten veroorzaken die op dit type afwezig zijn, maar desalniettemin gebeurde dit en het proces stopte. Een simpele stub hielp niet, en ik wilde uit principe niet de hele functie implementeren.

Nu herinner ik me de hele gedachtegang niet meer (ik heb op dat moment veel dingen bekeken in de DOS-broncode en tijdens het opstartproces), maar nogmaals op deze "hang" besloot ik een aantal interrupts te bellen (op dat moment had ik een timer uitgeschakeld op INT 08h ) en drukte op de Shift-toets. Plots gebeurde er een wonder:

Om eerlijk te zijn, overspoelde me nogal wat emoties - van een breadboard met een paar microschakelingen naar het laden van DOS in een maand, en zelfs met korte uitstapjes (door chronisch tijdgebrek) lijkt het best cool (sorry voor het opscheppen )!

Overigens heb ik met dit bericht een nog onopgelost raadsel. Het feit is dat na het voltooien van de timer-interrupt, DOS begon op te starten zonder te bevriezen op deze plaats, maar om de een of andere reden wordt het bericht over het kopiëren door Microsoft niet weergegeven. Het lijkt erop dat het ook niet op een echte computer wordt weergegeven (helaas valt er niets te proberen). Wat is de oorzaak - een mysterie gehuld in duisternis. Ik probeerde de logica te begrijpen door: broncodes DOS, maar zag het niet meteen en wilde er niet veel tijd aan besteden. Toch kwelt de vraag stiekem nog steeds...

Na het starten van DOS was het de beurt om andere programma's te starten. Je kunt waarschijnlijk raden wiens beurt het eerst was - natuurlijk, zoals ze zeggen, de goede oude Norton-commandant. Vreemd genoeg was er veel meer ophef met hem dan met DOS. NC riep bij het opstarten een wild aantal functies op, en in sommige gevallen was het niet mogelijk om rond te komen met simpele stubs, was het noodzakelijk om op zijn minst een minimum aan functionaliteit te schrijven.

De problemen waren echter meer kwantitatief dan kwalitatief, en al snel was het mogelijk om het NC-opstartproces tot zijn logische conclusie te brengen:

Zo interessant" verschijning om verschillende redenen:
- de videoadapter ondersteunde de attributen op dat moment niet
- Ik had niet het tweede deel van de tekengenerator, die pseudo-graphics bevat, dus op de juiste plaatsen waren er tekens uit de onderkant van de codetabel
- sommige INT 10h-functies zijn niet geïmplementeerd.

Over het algemeen was ik periodiek verrast door hoe precies bepaalde functies zijn geïmplementeerd in verschillende programma's (en zelfs in DOS). Het CLS-commando (clear screen) riep bijvoorbeeld de INT 10h-functie op om het venster omhoog te bewegen. In dit geval werd het volledige beschikbare schermgebied aangeduid als een venster en verschoven met het aantal lijnen gelijk aan het aantal lijnen op het scherm. Aangezien ik niet had verwacht dat iemand vensterfuncties zou gebruiken, had ik geen haast om ze te implementeren. Het resultaat was duidelijk (of beter gezegd, op het scherm). We komen echter wat verder terug op de eigenaardigheden van sommige programma's ...

Na de lancering van NC had ik een natuurlijk verlangen om het in een goddelijke vorm te brengen. Bovendien is dit deel van het werk soms zelfs leuker dan proberen een meestal dood apparaat te starten. Met pseudo-graphics speciale problemen er was geen - gewoon behoorlijk veel tijd voor het handmatig tekenen van symbolen (ik had de karaktergenerator rechtstreeks in de vorm van VHDL-code). Maar met de attributen moest ik een beetje spannen.

Eerder in het proces begon ik enkele VHDL-elementen te gebruiken. In het begin, bijna met geweld - er was tenslotte een verlangen om opnieuw te proberen deze taal onder de knie te krijgen, en toen omdat het in bepaalde gevallen handiger bleek te zijn dan het gebruik van een circuitontwerp. Zelfs in de videoadapter zelf moest ik in de code duiken - aanvankelijk werden 43 (of iets dergelijks) regels ondersteund, maar ik moest het opnieuw doen met 25 regels. En in eerste instantie probeerde ik attributen te ondersteunen door schematisch te ontwerpen, maar plotseling begon ik te beseffen dat het misschien makkelijker zou zijn om VHDL hiervoor te gebruiken. Natuurlijk ging alles met grote moeite en met behulp van de eenvoudigste taalconstructies, maar ik begon plotseling de essentie van VHDL te begrijpen - nog steeds nogal wat, maar genoeg om er bewust iets op te creëren, en niet alleen aan te passen wat al beschikbaar was.

Mijn gehannes met VHDL was niet tevergeefs, en na een tijdje kon ik iets lang en vertrouwds zien:

Ja, je kon daar nog steeds enkele onvolkomenheden zien (zoals een kenmerk dat met één teken is verschoven), maar over het algemeen werkte de 80x25-kleurentekstmodus zoals het hoort.

De volgende in de rij was de interruptcontroller 8259. In eerste instantie ontstond het idee om te proberen een bestaand exemplaar van een project te gebruiken, maar om verschillende redenen vond ik geen van hen leuk (ofwel te primitief, of, integendeel - ik begreep niet hoe ze werken, maar er was geen documentatie). Er was zelfs een poging om een ​​commerciële IP te kopen (in in dit geval IP is geen internetprotocol, maar intellectueel eigendom), maar fabrikanten wilden niet de moeite nemen om één heel stuk te verkopen ...

Uiteindelijk moest ik een stuk papier pakken en zoiets schetsen als een (blok)controllercircuit, dat ik toen begon te implementeren in VHDL. Ik streefde niet naar volledige compatibiliteit - ik had (in dit stadium) ondersteuning nodig voor één hoofdmodus van prioriteitsonderbrekingen, de mogelijkheid om onderbrekingen te maskeren (lees ook het onderbrekingsmasker) en het uitvoeren van de EOI-opdracht (End Of Interrupt). Naar mijn mening zou dit voldoende moeten zijn voor de overgrote meerderheid van de programma's om er normaal mee te werken. Vooruitkijkend, zal ik zeggen dat ik tot op de dag van vandaag geen enkel programma heb gevonden dat zou proberen iets met de interruptcontroller te doen buiten de functionaliteit die ik heb vastgelegd.

Waarschijnlijk was de interruptcontroller mijn eerste echte (zij het kleine) VHDL-project - van begin tot eind. Ik heb het zorgvuldig geschreven, ik was zelfs niet te lui (weer voor de eerste keer in mijn leven) om een ​​testbank te maken (ik weet niet zeker hoe ik het correct in het Russisch moet vertalen - in feite een reeks signalen om de correcte werking van het apparaat). Modellering in de ModelSim-simulator toonde aan dat de controller volledig operationeel was, waarna er een andere werd gegenereerd. grafisch symbool en toegevoegd aan mijn apparaat.

Ik had nog geen normale 8254 timer; om interrupts op 18,2 Hz te genereren werd een gewone teller gebruikt, die ik op de interruptcontroller aansloot. Het gedrag van de computer toonde aan dat alles leek te werken - DOS werd geladen zonder een toets in te hoeven drukken, en de klok ging uiteindelijk in NC. Het leek erop dat de volgende fase voorbij was en je veilig verder kunt.

Zoals later bleek, was ik al vroeg blij - op dit moment werd misschien wel het grootste probleem in het hele project onthuld. Als iemand het zich herinnert, heeft NC een ingebouwde screensaver- "sterrenhemel". Nadat ik mijn computer een tijdje had verlaten, ontdekte ik dat de sterren op het opstartscherm om de een of andere reden vastliepen, met andere woorden, de computer bevroor. Hoewel ik begrijp dat dergelijke ongelukken niet gebeuren, wilde ik toch in een wonder geloven - dat dit een geïsoleerd incident is. Helaas, zoals altijd, gebeurde het wonder niet - na volledige reset en het herstarten van de computer loopt weer vast na een uur of zo werk. Het werd ondubbelzinnig duidelijk dat er ergens een probleem was, en heel moeilijk te vinden.

Om het zoeken zo veel mogelijk te beperken, heb ik een eenvoudige geheugentest geschreven die onmiddellijk werd uitgevoerd nadat de processor was gereset, zonder alle onnodige apparaten zoals een timer, enz. In principe nam ik de indicatie van een geheugenfout met opluchting - volgens minstens, zat het probleem duidelijk in de hardware. Het enige dat u nog hoeft te doen, is precies te begrijpen waar. En dat bleek helemaal niet gemakkelijk.
Feit is dat het schema dat betrokken is bij het geheugentestproces over het algemeen nogal primitief is. Er komt een minimum aan logica bij kijken, behalve de processor zijn er geen andere complexe programmeerbare elementen. Als gevolg hiervan kreeg ik, na enige tijd besteed te hebben aan het analyseren van het circuit, er min of meer zeker van dat het geen fundamentele fout in het circuit was, maar iets meer willekeurigs - bijvoorbeeld ruis.

Over het algemeen was alles slecht met deze kant van het circuit. Ik wist dat ik meer blokkeercondensatoren moest plaatsen, en dat lange draden nogal slecht waren. Hier hield mijn kennis op. Daarom wendde ik me opnieuw tot een van de professionele forums voor advies. Ze gaven me veel advies, soms was het moeilijk om echt verstandig advies te onderscheiden van degenen die adviseren op het principe van "Ik zal alles zeggen wat ik weet, in ieder geval een beetje over dit onderwerp." Ik zal dit hier niet allemaal beschrijven - er is te veel besproken, dus dit kan het onderwerp zijn van een apart artikel. Als resultaat van de discussies is mijn bord overgroeid met bijna twee dozijn blokkerende condensatoren en is het zijn oorspronkelijke min of meer glamoureuze uiterlijk volledig verloren.

Helaas toonde het opnieuw uitvoeren van de test aan dat het probleem aanhield. Misschien begon het zich iets minder vaak te manifesteren, maar het is moeilijk te zeggen - en eerder kon een storing optreden na 20-30 minuten, dan na een paar uur. Nu bleek in ieder geval de betaling die 's nachts in de ochtend was achtergelaten gegarandeerd te mislukken. In wanhoop keerde ik opnieuw terug naar de analyse van circuits en nog nauwkeuriger studie van de diagrammen van de processorbussen. Op één plek had ik een duidelijke gedachte, en ik ging opnieuw naar hetzelfde forum. Tijdens de bespreking van mijn idee kreeg ik weer een portie nuttig (en soms niet erg) advies, probeerde ik het een en ander uit te voeren (ten eerste gerelateerd aan een kleine vertraging in sommige stuursignalen), maar dit had geen invloed op de aanwezigheid van storingen.

Aan het einde van de weg was duidelijk een betonnen doodlopende weg te zien, dus begon ik over het algemeen gekke ideeën te testen. Is met name de geheugenchip zelf defect? Voor het testen heb ik een RAM-module rechtstreeks in de FPGA gegenereerd, die ik heb gebruikt in plaats van extern geheugen. Om eerlijk te zijn, ik hoopte niet op het resultaat - ik deed gewoon wat in me opkwam. Maar stel je mijn verbazing voor toen daarna ineens de crashes verdwenen! Over het algemeen was ik hier op de een of andere manier niet eens klaar voor, dus ik begreep niet helemaal hoe ik deze kennis moest gebruiken. Zelfs op dat moment was het moeilijk te geloven dat de geheugenmicroschakeling defect was. Er was ook bijna het volledige vertrouwen dat ik correct met deze microschakeling werkte - volgens de controlesignalen was alles zo eenvoudig als het pellen van peren. Maar het feit bleef - met de microschakeling was er gegarandeerd een storing uiterlijk na een paar uur van de test, met het interne geheugen werkte alles enkele dagen zonder storingen totdat ik het beu was.

Om mijn geweten te zuiveren besloot ik toch het geheugen te testen met een heel andere schakeling, zonder mijn processorbord te gebruiken. Terwijl ik nadacht hoe ik dit het beste kon doen, kwam er plotseling een gedachte bij me op: ik realiseerde me het enige significante verschil tussen het gebruik van intern en extern geheugen. Het feit is dat het externe geheugen asynchroon was en het interne geheugen gedeeltelijk synchroon, en er was bovendien een signaal nodig waarmee het adres van de cel waarnaar werd verwezen, werd vergrendeld in de interne buffer.
Ik begreep helemaal niet hoe dit verband kon houden met het probleem van willekeurige storingen - uit alle diagrammen was het absoluut duidelijk dat mijn adres veel langer vasthield dan het minimum dat nodig is voor geheugen, daarom zou dit theoretisch niet de reden kunnen zijn. Desalniettemin heb ik onmiddellijk een ander register in Quartus getekend, er een adres aan toegevoegd en het vergrendeld met hetzelfde signaal dat werd gebruikt voor het interne geheugen. De registeruitgang werd natuurlijk toegepast op de adreslijnen van het externe geheugen. Ik realiseerde me dat ik complete onzin deed en deed de test. En de test werkte met succes totdat ik hem de volgende dag uitschakelde. Daarna nog een paar keer met en zonder register - het was duidelijk te zien dat de aanwezigheid van een register de storingen volledig opheft.

Het was volkomen onverklaarbaar - zelfs op een oscilloscoop zag ik dat de adressignalen langer aanhielden dan in principe nodig zou kunnen zijn, maar het feit bleef een feit. Na een heel weekend van krachtmeting, spuugde ik erop en besloot het te verdragen, als een gegeven ...

Dus DOS werd geladen, veel programma's die geen grafische modus nodig hadden, werden gelanceerd en het was mogelijk om verder te gaan. Natuurlijk was er de wens om een ​​soort speelgoed te lanceren. Maar voor speelgoed zijn in de regel afbeeldingen vereist en die had ik nog niet. En als het voor een tekstvideo-adapter mogelijk was om met een beetje bloed rond te komen door de bestaande te herwerken, dan was het voor grafische afbeeldingen niet zo eenvoudig.

Het ging niet eens om het ontbreken van pasklare oplossingen. Het probleem was dat ik op hardwareniveau bijna volledige compatibiliteit met een standaard videoadapter nodig had - alle games werken immers met grafische afbeeldingen rechtstreeks van de hardware, zonder het BIOS te gebruiken. Ik realiseerde me dat het gemakkelijker is om een ​​video-adapter "van de grond af" te maken dan om te proberen een kant-en-klare versie opnieuw te maken. En natuurlijk was het veel interessanter om het zelf te doen.

Dus we schrijven onze eigen CGA-adapter - zelfs de EGA is een paar ordes van grootte ingewikkelder, dus voorlopig zullen we er niet naar streven. In principe heb ik om te beginnen een beetje bespioneerd - ik vond eigenlijk de schetsen van de VGA-scangeneratiemodule. Maar het was een dozijn en een half regels, en nog steeds niet volledig werken. Dus eigenlijk werden ze gebruikt als een sjabloon om te beginnen met schrijven - op die manier was het moreel gemakkelijker.

Ik heb natuurlijk geen CGA-monitor en was ook niet gepland, dus het idee was om de VGA 640x400-modus te gebruiken, waarin de CGA 320x200-modus uitstekend was door simpelweg punten zowel horizontaal als verticaal te dupliceren.
Over het algemeen bleek mijn grafische adapter onverwacht eenvoudig te zijn - op dat moment leerden mijn hersenen plotseling om in VHDL-categorieën te denken, plus een beetje begrip van wat van VHDL kan worden geëist en wat niet. Over het algemeen besteedde ik het grootste deel van mijn tijd aan het opsporen van fouten in verband met de cijfercapaciteit van getallen (twee van dergelijke problemen overlapten elkaar en gaven een erg grappige versie). Voor de rest begon ik te genieten van hoe de regels in de editor veranderen in bijna echte "hardware" in de FPGA en precies doen wat ik wil.

Helemaal in het begin bleek de adapter natuurlijk verre van perfect en compatibel, maar Checkit kon hem herkennen en zelfs de eerste testfoto weergeven:

Checkit bleek trouwens een nogal handig programma te zijn - het definieerde veel dingen op nogal lastige manieren, waardoor het hele ontwerp steeds meer pc-compatibel werd. En aangezien Checkit alle nodes en componenten kon controleren, werd ook de compatibiliteit getest voor alle onderdelen van het systeem.

Na het corrigeren van de meest voor de hand liggende blunders (zoals het dubbele punt van de vorige byte zichtbaar in de vorige foto), was het met enige moeite mogelijk om een ​​spel te vinden dat zelfs leek te werken:

De kleuren op deze foto komen niet overeen met de originele - op dat moment was het wisselen van het palet nog niet gedaan en waren de kleuren zelf helemaal niet aangepast.

Pogingen om werkende spellen te vinden hebben aangetoond dat spelprogramma's, die in de meeste gevallen rechtstreeks met hardware werken, veel veeleisender zijn op het gebied van compatibiliteit dan welke NC of zelfs QuickBasic dan ook. Gelukkig bood FPGA bijna onbeperkte mogelijkheden voor het identificeren van de feiten van programmatoegang tot interessante poorten, geheugenadressen, enz. Vooral omdat ik het BIOS ook naar eigen goeddunken kon veranderen, leverde dit een uitstekend debugging-mechanisme op. Trouwens, op een gegeven moment (ik weet niet meer precies wanneer) begon Turbo Debugger te werken, wat ook het arsenaal aan debugging-tools uitbreidde.

Het werd meteen duidelijk dat in ieder geval de minimale timer 8253 moest worden gedaan.Bovendien probeerden de programma's de timer niet alleen voor geluiden te gebruiken (kanaal 2), maar ook om actief kanaal 0 te herprogrammeren, waardoor de frequentie van onderbrekingen van de timer veranderde, en gebruikte dit kanaal ook voor het bepalen van tijdparameters.

Na het lezen van de documentatie voor 8253 voelde ik me een beetje melancholiek. Er was veel te doen en niet erg interessant. Ik besloot dit later te doen, op dat moment klom ik gewoon op dezelfde opencores en stal een paar timermodules. Een op Verilog, en een zeer vereenvoudigde, de tweede - schijnbaar extreem geavanceerd, en zelfs op VHDL. Helaas was de VHDL-timer aangesloten via de Wishbone-bus - dit is open standaard voor FPGA-ontwikkeling. Ik was Wishbone nog nooit eerder tegengekomen, dus besloot ik de module op Verilog te gaan gebruiken, die er qua interface eenvoudiger uitzag.

Nadat ik de timer vrij pijnloos op mijn systeem had aangesloten, deed ik enkele eenvoudige tests en zorgde ervoor dat de module leek te werken. Bovendien, na nog een kleine wijziging van het systeem in het deel van de interface met de luidspreker, werden de eerste, maar redelijk correcte geluiden van het werkende speelgoed gehoord. Terwijl de timer af zou kunnen zijn, en verder gaan.

Toen moest ik een beslissende beslissing nemen. Tot nu toe schreef ik zelf INT 10h. In tekstmodus was het nog steeds mogelijk om dit te verdragen, maar de noodzaak om deze functies in grafische modi te ondersteunen, stoorde me. Aangezien op dit moment de passie voor programmeren in assembler praktisch bevredigd was (tenslotte, het feit dat het ooit al nodig was om het in industriële volumes te doen), handelde ik volgens het principe "Als de berg niet naar Mohammed, dan stuurt hij het nafig". Ik besloot namelijk om mijn CGA-adapter zo hardware-compatibel te maken dat het originele BIOS ermee zou kunnen werken.

In principe was er geen bijzondere moeilijkheid - er zijn niet veel registers, hun functionaliteit is uiterst eenvoudig. Van de impliciete dingen - ik moest het statusregister nabootsen, dat de tekens bevat van de omgekeerde beweging van het frame en de lijnscanbundel. Het bleek vrij logisch dat veel programma's (inclusief BIOS) dit register actief gebruiken om "sneeuw" te vermijden wanneer ze proberen tegelijkertijd toegang te krijgen tot het videogeheugen van de processor en de adapter.

Om de een of andere reden leek het proces van het opruimen van de videoadapter me erg spannend, en uiteindelijk bleek dit knooppunt het meest uitgebreid te zijn in termen van compatibiliteit met het originele apparaat. Onderweg werden ontbrekende dingen toegevoegd, zoals schakelbare paletten, 640x200-modus, enz. Trouwens, voor het testen van de 640x200-modus bleek het vrij moeilijk om een ​​programma te vinden dat dit ondersteunt deze modus... Het enige dat is opgegraven is schaken:

Volgens mij ziet het er best mooi uit...

De originele INT 10h-handler was erg vriendelijk voor zo'n adapter, en ik zuchtte van opluchting omdat ik geen dingen hoefde te schrijven zoals het herkennen van een personage dat op een bepaalde plaats op het scherm in grafische modus is afgedrukt.

Het laatste obstakel voor acceptabele pc-compatibiliteit was, vreemd genoeg, het toetsenbord. Hoewel dit bijna het eerste was dat ik aan het project vastschroefde, heeft het paard vanuit het oogpunt van compatibiliteit helemaal niet rondgeslingerd. Het grootste probleem was dat alle normale programma's werken met de eerste set scancodes, die terug in de IBM-pc werd gebruikt. Maar alle toetsenborden, te beginnen met PC AT, geven ten minste de tweede set scancodes uit, die heel anders is dan de eerste. Alleen de toetsenbordcontroller in de computer converteert deze codes naar het origineel, de eerste set, en dat is alles. reguliere programma's ermee werken (zelfs als deze programma's rechtstreeks toegang lijken te hebben tot het toetsenbord, zonder het BIOS te gebruiken). Ik had natuurlijk geen controller (trouwens, in PC AT en zelfs in latere PC XT's werd hiervoor een aparte microcontroller op basis van 8051 gebruikt). De INT 09/16-functies waren geïmplementeerd in mijn zeer minimale versie, en er was geen sprake van directe bediening van programma's met het toetsenbord in het algemeen - ze (programma's) zouden gewoon geen enkele scancode begrijpen.

Tegen die tijd voelde ik plotseling de euforie van het bezit van VHDL - het leek me dat ik de waarheid al had begrepen en ik alles kon doen. Daarom werd er zonder vertraging een elegante (zoals het mij leek) module in VHDL geschreven, die de transcodering van scancodes uitvoerde. Alles in deze module was erg mooi en goed, behalve een klein detail - het werkte niet. Bovendien kon ik de reden voor de onbruikbaarheid niet begrijpen, die van streek was en verbijstering veroorzaakte - er waren slechts een dozijn regels.

Nogmaals, ik wendde me tot het forum voor experts en kreeg behoorlijk wat echt verstandig advies. Bovendien is mijn begrip van het concept van VHDL opnieuw bijna radicaal veranderd (inclusief enige teleurstelling). Het belangrijkste is dat er geen wonderen zijn. VHDL (evenals alle andere HDL's) zal niet iets doen dat niet op de gebruikelijke manier kan worden gedaan met de beschikbare hardwarebronnen. Als ik een regel schrijf die vanuit het oogpunt van de syntaxis van de taal correct lijkt, maar ik tegelijkertijd geen idee heb hoe dit in hardware kan worden geïmplementeerd, dan zal het hoogstwaarschijnlijk niet worden geïmplementeerd tijdens het compileren. Het zal in ieder geval niet doen wat er van wordt verlangd. Het is ook erg belangrijk om sjablonen te gebruiken. Het blijkt dat veel taalconstructies alleen in correcte hardwareknooppunten veranderen als de compiler het juiste patroon herkent. Er is natuurlijk enige flexibiliteit, maar je moet nog steeds altijd onthouden welke stijlen worden aanbevolen voor het beschrijven van bepaalde knooppunten.

Ik denk dat het na deze confrontaties was dat ik de essentie van VHDL op zijn minst een beetje begon te begrijpen (en op dat moment was Verilog ook niet meer volledig onbegrijpelijk). Op een magische manier werden leerboeken over deze talen plotseling logisch en achter de woorden werd de essentie van de beschreven dingen duidelijk.

Kortom, nadat ik de convertermodule iets minder mooi had gemaakt, maar veel correcter, kreeg ik de codes in de eerste set aan de uitgang. Dan rest het nog om deze codes door te voeren naar de originele INT 09h handler, en de juistheid van toetsaanslagherkenning te controleren met dezelfde Checkit. Het toetsenbord was dus ook bijna 100% hardware-compatibel.

Op dit punt begon ik steeds meer ongemak te voelen dat het schematische ontwerp nog steeds het hoogste niveau van het project was. De laatste impuls die ons ertoe bracht een volledige overstap naar VHDL te ondernemen, was de verandering van thuiscomputer. Ik had een iMac Retina op mijn bureau met geïnstalleerde Windows... Helaas behoorde Quartus tot de programma's die totaal onvoorbereid bleken om met deze schermresolutie te werken. Het schematische ontwerp werd volledig onleesbaar en geen van mijn pogingen om iets aan te passen bracht echte verbeteringen aan. Omdat ik nergens heen kon, beet ik op mijn tanden en pakte mijn teksteditor.

Vreemd genoeg verliep alles meer dan soepel. Nu weet ik niet eens meer of het nodig was om op zijn minst iets te debuggen, of dat alles werkte direct na het herwerken. Ernstige hiaten waren er in ieder geval niet, maar het werken werd meteen een stuk handiger en efficiënter. Ik herinnerde me meteen het advies van een aantal deskundige mensen die sterk aanraadden om vanaf het begin het circuitontwerp te vergeten en onmiddellijk met VHDL / Verilog te beginnen. Trouwens, met betrekking tot VHDL versus Verilog - ga alsjeblieft niet in discussie over wat beter/slechter is en waarom ik voor VHDL heb gekozen. Laten we aannemen dat ik het gewoon wilde, en dit is praktisch waar. Ik zal dit onderwerp niet meer bespreken...

Met de overgang naar VHDL werd ook de laatste module op het circuitontwerp, de SPI-interface, volledig vernieuwd. Als je het je herinnert, zorgde hij voor hardware-ontvangst / verzending van slechts één byte, en daarom was het noodzakelijk om een ​​aantal voorbereidende stappen uit te voeren. In combinatie met een trage processor (en lui geschreven INT 13h), gaf dit slechts ongeveer 35% van de oorspronkelijke prestaties. harde schijf PC XT (volgens Checkit). Omdat ik me bijna een VHDL-goeroe en digitale elektronica in het algemeen voelde, besloot ik meteen om geen kopie van de bestaande interface te schrijven, maar een module die pakkettransmissie mogelijk maakt.

Toegegeven, ik besloot me niet bezig te houden met DMA (of, zoals ze in Rusland zeggen, RAP) - er was nog geen DMA-controller en ik wilde niet twee nieuwe modules tegelijk gebruiken, dan kom je er niet uit precies waar het probleem zit. Het debuggen van de module ging niet helemaal soepel - ik moest een beetje sleutelen, inclusief actief gebruik digitale kanalen oscilloscoop als protocolanalysator. Trouwens, om de een of andere reden ben ik tijdens het hele proces praktisch vergeten dat Quartus een ingebouwde digitale analysator SignalTap bevat, wat waarschijnlijk nog handiger zou zijn. Misschien zullen mijn handen hem in de toekomst bereiken (ik heb het nog nooit gebruikt), maar tot nu toe gebruik ik hier heel graag een apart stuk ijzer voor.

Waarschijnlijk, rekening houdend met de nieuwe module, zou INT 13h serieuzer herschreven kunnen worden, maar ik was lui en kwam er met slechts de minimaal noodzakelijke wijziging van af. Als gevolg hiervan kregen we een niet erg mooie en volledig ineffectieve stapeling, maar toch nam de snelheid met de nieuwe module bijna 5 keer toe:

Toen kwam het deels vervelende, deels fascinerende proces van het starten van verschillende programma's (voornamelijk gamen) om erachter te komen waarom ze niet werken (of liever, dat mijn computer niet compatibel genoeg is). Over het zoeken naar redenen kun je een apart groot artikel schrijven, ik zal maar een paar voorbeelden geven:
- Ik heb geen DMA. Het bleek dat DMA-kanaal nul (gebruikt om geheugen op originele pc's te regenereren) ook door sommige programma's wordt gebruikt als teller om korte tijdsintervallen te bepalen. Ik moest het overeenkomstige deel van de DMA-controllertellers emuleren
- meestal (maar niet altijd) bij het lezen van een niet-bestaand geheugengebied of I / O-poort, wordt een FF-byte gelezen. Voor mij werd het andersom gelezen - 00. Dit was niet prettig voor het programma, dat op deze manier (en niets anders) de aanwezigheid van de joystick controleerde, waarna het besloot dat het er was, en dat alle knoppen werden ingedrukt
- het meest op een originele manier Om de aanwezigheid van de CGA-adapter te bepalen, werd een programma gebruikt dat een bepaalde waarde naar het cursorlocatieregister schreef, vervolgens de waarde las en controleerde met wat het schreef (en vervolgens de oorspronkelijke waarde herstelde). Volgens de documentatie die ik heb, zou dit register alleen voor schrijven moeten lijken, maar het is gewijzigd om te lezen / schrijven, waarna het programma tot rust kwam
- niet verbonden met mijn computer - veel tijd besteed aan het uitzoeken van de redenen voor het vastlopen van het eenvoudigste oude spel Paratrooper. Het bleek dat hoewel het spel oud is, het bestand dat ik had gecomprimeerd was met een zelfuitpakkende com / exe-bestandsarchiver. Dus het deel dat later verantwoordelijk was voor het uitpakken van het programma bij het opstarten, bevatte een commando dat pas verscheen vanaf de 286-processor. Het probleem was dat dit commando niet veel invloed had op het uitpakproces en slechts enkele bytes corrumpeerde (minder dan één op de duizend). Misschien heb ik de meeste tijd besteed aan deze confrontaties.

Dus, beetje bij beetje, bijna alle games die ik was begonnen en zonder problemen te werken, heb ik zelfs geprobeerd een aantal van hen te spelen:

Tijdens de lancering van talloze games bleek dat de timermodule die ik had verre van perfect was - in de meeste gevallen waren de geluiden niet helemaal correct. Omdat ik had besloten dat ik nog steeds met de Wishbone-bus wilde omgaan, besloot ik de timer op VHDL te schroeven, die ik eerder noemde. Om te beginnen las ik de Wishbone-beschrijving en stelde ik zoiets samen als een adapter tussen de Wishbone-interface en de 8088-bus - niets ingewikkelds. Helaas werkte de timer niet. Ik moest de oscilloscoop er weer uithalen en kijken wat daar gebeurde (ten eerste of de Wishbone-signalen correct waren gevormd).

Wie had gedacht dat op dit moment een grote ontdekking op me zou wachten ... Weet je nog hoe ik leed aan geheugenstoringen en een tussentijds register moest invoeren, waarvan ik de noodzaak in principe niet zag? Dus op het scherm van de oscilloscoop kreeg ik de volgende afbeelding:

Het eerste dat me opviel was natuurlijk het vreselijke rinkelen van signaal 2. Bovendien ging dit rinkelen van een kwantitatieve parameter naar een kwalitatieve. Signaal 6 wordt gevormd door een één-bits teller, aan de ingang waarvan signaal 2. In feite wordt op elke stijgende flank van signaal 2 signaal 6 geïnverteerd. Maar het oscillogram laat zien dat signaal 6 eenmaal niet alleen op de normale rand van signaal 2 is geschakeld, maar op de rand van het sterkste "rinkelen"! Die. in mijn circuit was het rinkelen op sommige lijnen van zo'n amplitude dat het valse schakeling van de logica kon veroorzaken. Zeggen dat ik gek ben, is niets zeggen. Ik kon niet eens geloven dat ik met dit alles erin slaagde om een ​​​​stabiele werking van het circuit te bereiken ...

Verder werd het mij na een kleine analyse van het circuit, rekening houdend met de nieuwe gegevens, volkomen duidelijk waar de oude storingen precies ontstonden en waarom dat register ze genas. Desalniettemin was het nodig om iets te doen, aangezien het signaal 2 was dat ik met de nieuwe timermodule moest werken. En weer de traditionele aantrekkingskracht op kenners. Uit verschillende tips op het forum is gekozen voor een optie om de baan af te knippen en daar een weerstand te solderen. Het resultaat was verre van ideaal, maar ik heb niet meer valse schakelaars van het rinkelen geregistreerd tijdens het testen van enkele uren:

Helaas had dit geen invloed op de prestaties van de VHDL-timermodule - het was stil. Na nog een tijdje te hebben gesleuteld, werd de reden ontdekt op een nogal onverwachte plek - in de module zelf. Bovendien was het nogal prozaïsch (en werd het vaak gevonden bij het programmeren) - de module verwerkte een van de extreme waarden verkeerd, namelijk met een deler van 0, in plaats van te delen door de maximale waarde (65536), deed het niets. Ik controleerde de hele tijd precies de initialisatie van kanaal 0, die is geïnitialiseerd met de maximale deler om een ​​frequentie van 18,2 Hz te krijgen. Toen ik de FFFF-deler voor het experiment gebruikte, werkte alles.

Ik heb zelfs contact opgenomen met de auteur van de module, die (de auteur) al vergeten was dat hij deze module geschreven had. De auteur heeft me echter geholpen een specifieke plaats te vinden waar de fout is gemaakt, en ik heb zelfs geprobeerd het op de een of andere manier te herstellen. Het was dit probleem dat werd opgelost, maar er werden andere ontdekt, dus voorlopig koos ik voor de eerste versie van de module, op Verilog.

Op dit punt was de gereedheid van mijn ontwerp zodanig dat ik rijp was voor het hoofdexperiment. Het feit is dat ik in 86 een artikel las uit het tijdschrift "In the world of science", een Russische vertaling van het Amerikaanse tijdschrift "Scientific American", dat vertelde over het nieuwste product Microsoft- namelijk over het spel MS Flight Simulator. Aangezien ik in die tijd al een fan was van computers, maar tegelijkertijd vastbesloten was om piloot te worden, kun je begrijpen welke emoties er toen in mijn hoofd (en ook in andere delen van mijn lichaam) borrelden.

En nu, bijna 30 jaar later, heb ik een onverzadigbare wens om precies die historische Flight Simulator op mijn computer te draaien. De belangstelling werd ook aangewakkerd door het feit dat in die tijd twee programma's bijna officieel werden gebruikt voor compatibiliteitstests - de Flight Simulator zelf, evenals Lotus 1-2-3. Er werd gezegd dat ze de hardwarefuncties van de computer zo nauwlettend gebruikten dat als deze programma's zouden werken, al het andere nog beter zou werken.

Over het algemeen had ik wat twijfels - ik kende niettemin enkele valkuilen in mijn ontwerp, maar besloot toch een risico te nemen (vooral gezien het feit dat ik natuurlijk niets riskeerde). Resultaat op het scherm:

Trouwens, de mysterieuze korreligheid van het beeld wekte aanvankelijk mijn argwaan - ik begon meteen na te denken over een heel slimme manier van werken met de videoadapter, die niet door mij wordt ondersteund. In feite, zoals later bleek, zoals Microsoft-afbeelding probeerde te krijgen Complementaire kleuren door stippen uit de beschikbare kleuren te combineren. Ik moet er rekening mee houden dat, gezien de resolutie van 320x200, het resultaat op zijn zachtst gezegd dubieus was.

Ook bij de lancering van Lotus 1-2-3 waren er geen problemen, zodat het experiment als voorbij kon worden beschouwd. Desalniettemin heb ik een aantal kleine tweaks en tweaks uitgevoerd, waarna alle programma's die ik op dit moment heb begonnen te starten en absoluut normaal te werken. De enige nieuwe functie die ik daarna heb toegevoegd was EMS. Ik spookte gewoon door dat er meer dan een megabyte beschikbaar geheugen verloren was gegaan (om eerlijk te zijn, ik wilde gewoon iets anders doen), dus ik vond een beschrijving van het EMS-bord met een stuurprogramma en schreef een module die de werking hiervan emuleert bord. De bestuurder heeft het geheugen met succes herkend:

De laatste hand was het herwerken van het processorbord zelf. Ik hield helemaal niet van de golfvorm-nachtmerrie, en ik wilde ook weer met de Eagle oefenen. Als resultaat, een 4-laags printplaat, waarbij een van de binnenlagen ondergronds was toegewezen, de tweede - voor beide voedingsspanningen. Bovendien was het belangrijkste punt de eliminatie van lussen - de connectoren zijn zo geïnstalleerd dat mijn bord rechtstreeks wordt aangesloten op het FPGA-foutopsporingsbord (om precies te zijn, op het GPIO-poortuitbreidingsbord van het FPGA-foutopsporingsbord - dat is een nestpop):

Er waren ook enkele circuitwijzigingen - de 8284-klokvolgordegenerator was volledig verwijderd (ik besloot dat het mogelijk was om deze zonder problemen in de FPGA te verwijderen, zonder de minste schade aan de compatibiliteit van de bussignalen te veroorzaken) en het vergrendelingsregister op de adres-/databus (ook verwijderd in de FPGA). Controleer snel de golfvorm voor: nieuw bestuur toonde aan dat de signalen bijna perfect werden:

Dus het pad van een knipperende LED op een soldeerloze breadboard naar een volledig normale computer werd in een paar maanden voltooid, met enorm veel plezier, evenals kennis op een aantal gebieden. Het resultaat was een computer met een redelijk goede compatibiliteit met de IBM PC, waarop alle programma's waar ik niet te lui voor was aan de slag konden zonder enige opmerkingen, incl. en degenen die als extreem veeleisend worden beschouwd op het gebied van hardwarecompatibiliteit. De computer gebruikt bijna volledig BIOS versie 3 van de IBM PC (met uitzondering van de INT 13h-handler).

Over de projectbegroting is bijna niets met zekerheid te zeggen. Om te beginnen, wat moet daar worden opgenomen - slechts een paar microschakelingen (wat betekent dat de installatie kan worden gedaan door MGTF, het FPGA-bord en de apparaten voor afstemming zijn er al), of alles, te beginnen met de extra dringende fabricage van borden, het kopen een FPGA debug board speciaal voor dit project en eindigend met niet de goedkoopste oscilloscoop?

Ik heb de specifieke soorten microschakelingen en al het andere in het artikel een beetje aangegeven, zodat iedereen die dat wil in zijn versie kan zien wat dit allemaal gaat kosten. Het is natuurlijk niet nodig om precies DE2-115 te gebruiken, voor een referentie noem ik de benodigde FPGA-bronnen:

Opgemerkt moet worden dat er hier nog steeds een heleboel artefacten worden gebruikt voor debuggen en dat de code zelf nauwelijks is geoptimaliseerd.

Wat te doen met dit alles (en of er überhaupt iets te doen) is niet helemaal zeker. Tijdens het proces werd opnieuw duidelijk dat hoewel enthousiasme en eruditie ook iets kunnen bereiken, formele kennis van de basis het mogelijk zou maken om alles te versnellen, veel harken te vermijden en vooral, meer te concentreren op creativiteit, in plaats van het uitvinden van een fiets met vierkante wielen. Daarom, hoewel er een grote wens is om een ​​soort van uitdrukkelijke methode op te vullen, de hiaten (of liever, gapende gaten) in de kennis van zowel alleen de basis van elektronica en circuits in het algemeen, als VHDL in het bijzonder. Hoeveel dit zal opleveren, zullen we zien - er is altijd een probleem in motivatie en de beschikbaarheid van vrije tijd.