Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Programarea intrarilor si a iesirilor
Aceasta metoda de controlare a operatiilor de IO implica ca toate operatiile de IO sa se execute sub controlul direct al CPU, adica fiecare op de transfer a datelor ce implica dispozitivul de IO cere executia unei instr de catre CPU. In general transferul se face intre un registru CPU (acumulator, de exemplu) si un registru buffer conectat la dispozitivul de IO. Dispozitivul de IO nu are acces direct la memoria principala. Un transfer de date de la dispozitivul de IO spre memoria principala necesita executia a doua instr de catre CPU: O instructiune INPUT pt a transmite un cuvant de date de ladispozitivul de IO la CPU si O instuctiune STORE pt a transfera un cuvant de la CPU la memoria principala. Mai pot fi necesare una sau doua instr suplimentare pt calculul adresei si pt numararea cuvintelor de date.
Adresarea IO.
in sistemele cu programarea IO, dispozitivele de IO, memoria principala, si CPU comunica intre ele printr-o magistrala comuna de tip shared (magistrala sistem). Liniile de adresa ale magistralei care sunt folosite pt a selecta adresa memoriei principale pot fi folosite si pt a selecta dispozitivele de IO. Fiecare jonctiune intre magistrala sistem si dispozitivul de IO este numita port de IO si are asignata o adresa unica. Portul de IO include un registru buffer pt date care il face putin diferit de o locatie a memoriei principale. Strategia memory-mapped IO, ce este utilizata la anumite masini ca de exemplu la seria de microprocesoare Motorola 68 000, consta in a atribui porturilor de IO o parte din spatiul de adresare al memoriei principale. O instructiune a memoriei activeaza linia de control READ M sau WRITE M si nu are efect asupra dispozitivului de IO. Instrle de IO sunt necesare pt a activa liniile READ IO sau WRITE IO care au ca efect un transfer de informatii intre portul de IO si procesor. Un dispozitiv si o locatie de memorie pot sa aiba aceeasi adresa. Aceste scheme sunt folosite pt Intel 8085 si I8086.
Instructiuni IO de baza. Programarea IO poate fi implementata cu cateva intructiuni de IO. De exemplu Intel 8085 are doua instr de IO principale. Instruciunea IN X transferul unei informatii de la portul de IO cu adresa X la registrul acumulator A, al lui I 8085. Instructiunea OUT X transfera o informatie de la acumulator la portul de IO de adresa X. Pt a preveni pierdera informatiilor este de dorit ca procesorul sa stie starea dispozitivului, astfel ca un transfer de date sa fie intr-o stare bine cunoscuta. În programrea IO de obicei procesorul este prgat pt a testa starea dispozitivului inaintea unui transfer de date.
Instructiuni de intrare-iesire suplimentare.
Programarea IO este metoda primara
de control a dispozitivelor de IO intr-un sistem de calcul; pt
imbunatatirea instructiilor IN si OUT anterior
prezentate, se pot prevedea instr de IO
suplimentare. Una dintre acestea: TSK. Testeaza fanionul de stare a
dispozitivului de IO si sare urmatoarea instructie daca
acesta este setat. Aceasta se poate implementa prin intermediul a 2 linii de control ce conecteaza CPU de dispozitivul
de IO. La decodificarea lui TSK, CPU
trimite dispozitivului de IO un semnal numit TEST STATUS. Daca flag-ul de stare al dispozitivului este setat, se trimite un impuls pe linia SKIP, care
este utilizat pt incrementarea
numaratorului prg, sarindu-se astfel peste urmatoarea
instructie. Dandu-se o instructie de acest tip, prgul de IO
poate fi modificat dupa cum urmeaza:
W A I T : T SK 1
JMP WAIT
IN 2
Copyright © 2024 - Toate drepturile rezervate