Jaki 32-bitowy kontroler wybrać do projektu karty PC z EEPROM i DMA?

Projekt karty - jaki kontroler?





Poprzedni Następny
Wiadomość
Spis treści
From: Michal Zalewski <lcamtuf_at_nospam_dione.ids.pl>
Subject: Projekt karty - jaki kontroler?
Date: Wed, 11 Oct 2000 00:03:35 +0200



Witam,

Zastanawiam sie nad projektem karty PC (zapewne ISA? chyba ze ktos mnie od
tego odwiedzie...), ktora mialaby spelniac nastepujace zalozenia:

dzialajacym - poza operacjami I/O - w sposob niezalezny od reszty
systemu; oprogramowanie karty powinno znalezc sie w EEPROMie, zas
jesli chodzi o koszt - chcielibysmy zamknac sie w kilkuset zlotych.
Funkcjonalnosc to:

komunikuje sie z systemem, odbierajac z wykorzystaniem DMA porcje
danych, musi wiec istniec wygodna metoda organizacji takiej komunikacji,

widziana bylaby niewielka pamiec podreczna kontrolera (1-16 kB),

generalnie rzecz biorac, prowadzona jest symulacja pewnego
hipotetycznego procesora, co akurat nie jest istotne - w kazdym
razie ze wzgledu na charakter danych optymalnym rozwiazaniem bedzie
kontroler 32-bitowy; byloby dobrze, choc nie jest to wymagane, gdyby
uklad posiadal chocby minimalne wsparcie operacji zmiennoprzecinkowych,

sie na karcie pamieci RAM, o rozmiarze ok. 4-16 MB; istotna jest
mozliwosc liniowego adresowania tego obszaru oraz latwego dolaczenia
pamieci zewnetrznej do kontrolera.

Moje pytanie to: jak to zrobic :) Czy moze inaczej - wybor jakiego
mikroprocesora / mikrokontrolera polecilibyscie do wdrozenia takiego
rozwiazania? Myslalem o jednym z 32-bitowych mikrokontrolerow Motoroli
(typu np. 68376), aczkolwiek boje sie, ze nie sa to rozwiazania stworzone
do takich zastosowan - nie znam ich, wiec mozliwe iz wlasnie palnalem
jakas glupote. Aha, jesli sugerowany chip bedzie wymagal do spelnienia w/w
wymogow dodatkowych ukladow na karcie, lub jesli widzicie jakies problemy
/ bledy w moim toku rozumowania, bylbym rowniez wdzieczny za informacje :)

O ile to mozliwe, prosze o odpowiedzi na priv (nie czytuje grupy
regularnie, choc z drugiej strony nie chce ustawiac FUTa),

Pozdrawiam i dziekuje,
_____________________________________________________
Michal Zalewski [lcamtuf_at_nospam_tpi.pl] [tp.internet/security]
[http://lcamtuf.na.export.pl] <=--=> bash$ :(){ :|:&};:
=-----=> God is real, unless declared integer. <=-----=


Poprzedni Następny
Wiadomość
Spis treści
From: "peters" <peters_at_nospam_poczta.onet.pl>
Subject: Re: Projekt karty - jaki kontroler?
Date: Wed, 11 Oct 2000 19:27:18 +0200


Zastanawiam sie nad projektem karty PC (zapewne ISA? chyba ze ktos mnie od
tego odwiedzie...), ktora mialaby spelniac nastepujace zalozenia:

Zastanow sie dobrze nad tym, czy ma to byc ISA. W nowych plytach glownych
juz jej nie ma. :(
W mojej firmie sami mamy taki problem, dwa lata temu zaprojektowalismy karte
ISA i niestety
juz wkrotce stanie sie bezuzyteczna. A co z driverami? To ma dzialac pod
Windows?

Piotr



Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: Projekt karty - jaki kontroler?
Date: Wed, 11 Oct 2000 23:17:25 GMT


On Wed, 11 Oct 2000 00:03:35 +0200, Michal Zalewski wrote:
Zastanawiam sie nad projektem karty PC (zapewne ISA? chyba ze ktos mnie od
tego odwiedzie...), ktora mialaby spelniac nastepujace zalozenia:

Oceniajac stopien skomplikowania to do PCI juz niedaleko ..

- rozwiazanie musi byc mozliwie tanim i nieskomplikowanym sprzetem
dzialajacym - poza operacjami I/O - w sposob niezalezny od reszty
systemu; oprogramowanie karty powinno znalezc sie w EEPROMie, zas
jesli chodzi o koszt - chcielibysmy zamknac sie w kilkuset zlotych.

A ile tych kart ma byc? Bo proponujesz nietrywialny problem, i koszta
projektu beda spore ... Ktos bedzie musial nad tym spedzic pare
miesiecy na pol etatu..

- w pewnej sytuacji (odpowiednie dane na porcie), kontroler karty
komunikuje sie z systemem, odbierajac z wykorzystaniem DMA porcje
danych, musi wiec istniec wygodna metoda organizacji takiej komunikacji,
- czesc danych musi byc udostepniana bardzo szybko, dlatego mile
widziana bylaby niewielka pamiec podreczna kontrolera (1-16 kB),

To mowiac szczerze najprosciej byloby uzyc jej do komunikacji zamiast
tego DMA. Po co ci klopot z dodatkowymi funkcjami DMA lub BusMaster ?
Inna sprawa ze jesli tych danych wiecej to procesor sporo sie naczeka
na waitstate na ISA - z drugiej strony DMA chyba sie da zaprogramowac
do kopiowania danych..

- nastepnie, zgodnie z zalozeniami programisty, dane te sa obrabiane -
generalnie rzecz biorac, prowadzona jest symulacja pewnego
hipotetycznego procesora, co akurat nie jest istotne - w kazdym
razie ze wzgledu na charakter danych optymalnym rozwiazaniem bedzie
kontroler 32-bitowy; byloby dobrze, choc nie jest to wymagane, gdyby
uklad posiadal chocby minimalne wsparcie operacji zmiennoprzecinkowych,

A czemu nie chcecie tego procesu zrobic na glownym procesorze ?
Pentium jest dosc szybkie, 32bit, FPU, pelno pamieci i cache ..

Sa tez gotowe karty z 80860 [Pentium juz chyba szybsze], transputerami
[juz nie produkowane], DSP ..

- w pewnych przypadkach, konieczne bedzie korzystanie ze znajdujacej
sie na karcie pamieci RAM, o rozmiarze ok. 4-16 MB; istotna jest
mozliwosc liniowego adresowania tego obszaru oraz latwego dolaczenia
pamieci zewnetrznej do kontrolera.

Nastepna komplikacja. Ciekawe ile bedzie kosztowala sama plytka do
tego. Bo na 4 warstwach moze sie nie zmiescic :-)

Moje pytanie to: jak to zrobic :) Czy moze inaczej - wybor jakiego
mikroprocesora / mikrokontrolera polecilibyscie do wdrozenia takiego
rozwiazania?

Zdecydowanie Pentrumny na plycie glownej. Ewentualnie plyty
dwuprocesorowej, lub dwoch komputerow polaczonych Fast Ethernetem,
Gigabit Ethernetem itp ..


J.


Poprzedni Następny
Wiadomość
Spis treści
From: Michal Zalewski <lcamtuf_at_nospam_dione.ids.pl>
Subject: Re: Projekt karty - jaki kontroler?
Date: Thu, 12 Oct 2000 02:59:00 +0200


On Wed, 11 Oct 2000, J.F. wrote:

A ile tych kart ma byc? Bo proponujesz nietrywialny problem, i koszta
projektu beda spore ... Ktos bedzie musial nad tym spedzic pare
miesiecy na pol etatu..

Nie wiadomo - chcemy (przynajmniej takie mamy zapedy) stworzyc
przynajmniej jedna. Mysle, ze najwiekszym problemem bedzie niezawodne
oprogramowanie po obu stronach, a nie sama konstrukcja...

A czemu nie chcecie tego procesu zrobic na glownym procesorze ?
Pentium jest dosc szybkie, 32bit, FPU, pelno pamieci i cache ..

Hmm, chodzi po pierwsze o pelne oddzielenie przetwarzania danych, po
drugie - o to, by karta mogla pracowac nawet w przypadku problemow z
systemem jako "czarna skrzynka". Po trzecie, Pentium nie jest chyba
idealnym rozwiazaniem, jesli chodzi o stosunek mozliwosci/cena - CISCowe
nalecialosci, mikrokod... i mnostwo zbednych rzeczy :>

Tak naprawde przetwarzanie danych bedzie dosc prostym zabiegiem
polegajacym na, jak mowilem, interpretowaniu pewnego wirtualnego
kodu. Potrzeba do tego mozliwie wielu rejestrow i absolutnie minimalnego
zestawu polecen.

Cos czuje, ze karta bazujaca na wartej $25 Motoroli, o ktorej wspomnialem,
wyjdzie taniej, niz oparta o Pentium.

Nastepna komplikacja. Ciekawe ile bedzie kosztowala sama plytka do
tego. Bo na 4 warstwach moze sie nie zmiescic :-)

Masz dar przekonywania ;>

Zdecydowanie Pentrumny na plycie glownej. Ewentualnie plyty
dwuprocesorowej, lub dwoch komputerow polaczonych Fast Ethernetem,
Gigabit Ethernetem itp ..

Rozwazalismy to... ale to nieestetyczne, i na dobra sprawe nie spelnia
wymagan, o ktorych wspomnialem (black box). Pewnym rozwiazaniem jest
wlasnie oddzielne pudelko z elektronika. Tylko ze pakowanie w to pudelko
calego komputera, jesli potrzebna nam jest funkcjonalnosc mikrokontrolera,
troche pamieci i operacje I/O - czyli zlozonosc na poziomie trywialnej
karty grafiki (nie twierdze, ze jest to proste, ale budujemy to z gotowych
klockow) - jest po prostu nieestetyczne, ze o wydajnosci, niezawodnosci
(od razu dochodzi chlodzenie) i cenie nie wspomne.

_____________________________________________________
Michal Zalewski [lcamtuf_at_nospam_tpi.pl] [tp.internet/security]
[http://lcamtuf.na.export.pl] <=--=> bash$ :(){ :|:&};:
=-----=> God is real, unless declared integer. <=-----=


Poprzedni Następny
Wiadomość
Spis treści
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: Projekt karty - jaki kontroler?
Date: Thu, 12 Oct 2000 04:36:26 +0200



Zastanawiam sie nad projektem karty PC (zapewne ISA? chyba ze ktos mnie od
tego odwiedzie...), ktora mialaby spelniac nastepujace zalozenia:

- rozwiazanie musi byc mozliwie tanim i nieskomplikowanym sprzetem
dzialajacym - poza operacjami I/O - w sposob niezalezny od reszty
systemu; oprogramowanie karty powinno znalezc sie w EEPROMie, zas
jesli chodzi o koszt - chcielibysmy zamknac sie w kilkuset zlotych.
Funkcjonalnosc to:

- w pewnej sytuacji (odpowiednie dane na porcie), kontroler karty
komunikuje sie z systemem, odbierajac z wykorzystaniem DMA porcje
danych, musi wiec istniec wygodna metoda organizacji takiej komunikacji,

- czesc danych musi byc udostepniana bardzo szybko, dlatego mile
widziana bylaby niewielka pamiec podreczna kontrolera (1-16 kB),


Eee to proste :-) Oceniam to na nie wiecej niz 10k bramek lub 256-384
makrocele. Procesora to ty tak prosto nie podlaczysz do isy. Zreszta to
rozmowa na inny temat, bo nie wiemy do konca co on ma tam robic.

Musisz miec maszyne, ktora zalatwi ci komunikacje z magistrala kompa, a to
na procku ci nie wyjdzie. Jedynie uklady programowalne. Moge wam to zrobic
za pieniadze :-)
Napisz maila do mnie to ci podesle scany tego co juz zrobilem, w celach
referencyjnych :-)

Za ta pamiec podreczna mozna wsadzic 32k-wego dual porta do komunikacji
miedzy duza pamiecia, a prockiem na karcie. A temu duala zeby nie
przytrzymywac isy na iochrdy. I np. w trakcie gdy isa bawi sie adresami,
bale i ta cala reszta to mozna uzyc 80MHz zegara do pompowania damych miedzy
dual portem i dramem. Tak jakby miedzy cyklami dostepu do isy. Procek jest
wolniejszy wiec sie nie wyrobi, a na dodatek nie ma synchronicznej
magistrali.

Powiedzmy procek na karcie zaprogramuje kontroler do przepisania danych z
dram do dpsram, maszyna stanow to wykona i zglosi przerwanie odpowiednio
wczesniej, przed zakonczeniem operacji. Tak, ze ty zaczniesz ssac prockiem
w 1/4 przepisywania i maszyna skonczy swoja robote i tak szybciej, zanim
procek wyssie cale dane.

Problem to wielki nie jest, robilem karty z takimi dziwnymi dma lokalnymi na
karcie gdzie strumienie danych leca z roznymi predkosciami miedzy wolnymi i
szybkimi ukladami.

Zreszta napisz co to ma byc to sie moze okaze, ze wcale nie trzeba tego
robic jak ty myslisz :-)

Juliusz




Poprzedni Następny
Wiadomość
Spis treści
From: "JS" <jar0sz_at_nospam_polbox.com>
Subject: Re: Projekt karty - jaki kontroler?
Date: Sat, 14 Oct 2000 01:35:12 +0200



Zastanawiam sie nad projektem karty PC (zapewne ISA? chyba ze ktos mnie

Pomyslalem sobie o ADSP21065:
+ 32 bity
+ do 64MB (AFAIR) SDRAMu, bez logiki laczacej
+ DMA (moze udostepniac pamiec)
+ operacje zmiennoprzecinkowe
+ wydajnosc
ale moze nie byla to najszczesliwsza mysl ;-)

--
Jaroslaw Szynal