INTRODUCERE IN LIMBAJUL DE PROGRAMARE HARDWARE AHPL.
( AHPL - A Hardware Programming Language ).
In functie de scopul urmarit, un calculator numeric poate fi descris folosind diverse mijloace.
Astfel, la nivelul etapei de proiectare, se folosesc adesea diagrame bloc, organigrame, limbaje
specializate, tabele de cablaj etc.
In cadrul acestei lucrari calculatorul numeric este descris in termenii unor secvente de
transferuri ale datelor intre diferitele primitive functionale ale calculatorului, in vederea implementarii
unui algoritm dat. Se considera ca, dupa terminarea acestei etape de proiectare,
elaborarea schemelor logice si a schemelor de cablaj reprezinta operatii mecanice, de rutina, care
se pot automatiza cu usurinta.
Sistemele numerice de calcul prelucreaza in principal date structurate sub forma de vectori
binari, stocati in registre sau memorii organizate sub forma de matrici, cu acces la linii.
In acest context apare evidenta utilitatea unui limbaj prevazut cu facilitati pentru manipularea
vectorilor si matricilor.
Un asemenea limbaj a fost propus de K.E. Iverson in anul 1960 sub numele APL
(A Programming Language ). Limbajul APL cunoaste o larga raspindire, ca limbaj
conversational in sistemele cu multiacces IBM 360/370 si chiar in cadrul calculatoarelor
personale IBM-PC compatibile. Trebuie mentionata, de asemenea, si implementarea realizata in
tara noastra pe sistemele FELIX C-266/512.
APL este un limbaj foarte puternic. El permite descrierea concisa a algoritmilor si verificarea lor
prin executie, pe calculator. Pentru scopurile urmarite de proiectare, limbajul APL trebuie
completat cu instructiuni si alte constructii, care permit o implementare directa in hardware.
Un asemenea limbaj AHPL ( A Hardware Programming Language ) a fost propus de catre
F. Hill si G. Peterson in 1974, fiind apoi perfectionat pe parcurs ( 1978, 1983 ). AHPL, ca limbaj
de descriere a transferurilor intre registre, asigura o corespondenta directa intre notatia folosita
si implementarea ei in hardware.
AHPL foloseste, pe linga constructiile proprii, si un subset de constructii din APL, care isi
gasesc un corespondent in hardware. Frecvent, in scopul facilitarii comunicarii si documenarii, in
programele AHPL se mai utilizeaza unele notatii APL, care descriu algoritmul de operare al unui
calculator numeric.
In momentul traducerii in hardware a descrierii AHPL a modulului numeric dat, aceste notatii
nu sunt luate in consideratie.
Autorii limbajului AHPL au elaborat si un compliator pentru hardware, care are ca intrare
descrierea AHPL a sistemului numeric, iar ca iesire - schema sistemului, la nivel de diagrame.
Indiferent de implementarea unui algoritm, este o buna practica aceea de a descrie mai intai
algoritmul in APL si de a-l executa pe un calculator, prevazut cu un compliator de APL.
In continuare algoritmul descris in APL poate fi implementat in hardware, firmware
(microprogram) sau poate fi executat direct, fiind implementat in software.
Conventii privind operanzii folositi in AHPL.
Operanzii manipulati in limbajul AHPL reprezinta marimi constante sau variabile.
Constantele sunt date numerice sau alfanumerice. Ele se reprezinta prin numere standard,
respectiv - prin litere standard sau numere cuprinse intre semnele apostrof.
Variabilele pot fi scalari, vectori, matrici.
Este important de facut distinctie intre variabile si valori.In limbajele conventionale de
programare o variabila reprezinta un nume prin care se face o referire la un operand; o valoare
reprezinta marimea pe care o ia efectiv operandul. In AHPL, prin variabila se intelege numele
unui registru al carui continut este manipulat printr-o instructiune a programului, iar prin valoare
- data care se plaseaza in registru.
Tipurile de operanzi in AHPL se vor deosebi prin conventii tipografice: litere mici pentru
scalari, majuscule pentru vectori si majuscule ingrosate pentru matrici.
Transferul unei constante ( binare - in cazul de fata ) intr-un registru AC se noteaza astfel:
AC 0,1,1,1,1,0,1,0
Transferul continutului unui registru RD, intr-un registru AC, fara a se modifica continutul lui
RD se reprezinta prin instructiunea:
AC <- RD
Pentru a descărca acest document,
trebuie să te autentifici in contul tău.