ISA



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: ISA
Date: Fri, 29 Oct 1999 01:03:41 GMT


Czesc,

Pewnie zadaje pytanie retoryczne ale moze ktos jednak wie :-)
Pytania dotycza magistrali ISA.

1. Jaki skutek wywola wystawienie IOCHRDY# w chwili gdy na ISA-ie pojawia
sie adres ale jeszcze nie ma wystawionego SMEMWR# lub SMEMRD# ?

2. A jaka bedzie roznica jesli wystawie IOCHRDY# w trakcie trwania SMEMRD#
czy SMEMWR# ?

Czy obie operacje sa dozwolone i czy daja ten sam skutek i czy wystawienie
IOCHRDY# zbyt wczesnie nie spowoduje niechcianych zachowan kontrolera
magistrali ?


Juliusz




Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: "Artur Miller" <armi_at_nospam_iol-antares.co.za>
Subject: Re: ISA
Date: Fri, 29 Oct 1999 08:35:42 +0200



Juliusz wrote in message ...
Czesc,

1. Jaki skutek wywola wystawienie IOCHRDY# w chwili gdy na ISA-ie pojawia
sie adres ale jeszcze nie ma wystawionego SMEMWR# lub SMEMRD# ?

2. A jaka bedzie roznica jesli wystawie IOCHRDY# w trakcie trwania SMEMRD#
czy SMEMWR# ?

Czy obie operacje sa dozwolone i czy daja ten sam skutek i czy wystawienie
IOCHRDY# zbyt wczesnie nie spowoduje niechcianych zachowan kontrolera
magistrali ?


Podpowiedz: A kiedy kontroler magistrali w ogole zwraca uwage na wspomniany
przez Ciebie sygnal ?

Konkretnej odpowiedzi nie znam, niestety, ale celem odswiezenia sobie
pamieci (kiedys troszke sie bawilem w peryferia :)) mozemy razem pogrzebac
... moze cos wymyslimy :)

_at_nospam_


Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: "Pawel Michocki" <pawelm_at_nospam_sim.com.pl>
Subject: Re: ISA
Date: Fri, 29 Oct 1999 14:32:04 +0200


Użytkownik Wojciech Werwinski <wwer_at_nospam_winuel.com.pl> w wiadomo¶ci do grup
dyskusyjnych napisał:381970DC.3D99A3DA_at_nospam_winuel.com.pl...
Czy obie operacje sa dozwolone i czy daja ten sam skutek i czy
wystawienie
IOCHRDY# zbyt wczesnie nie spowoduje niechcianych zachowan kontrolera
magistrali ?

Juliusz

Sygnal IOCHRDY wymusza na magistrali dodatkowy czas na ustalenie stanow
itp . W zasadzie urzadzenie ktore taki sygnal generuje musi miec troche
czasu na stwierdzenie ze to ono jest obslugiwane. Standardowo sygnal
IOCHRDY jest nieaktywny (niektore kontrolery IDE w ogole tego syganlu
nie podaja na szyne z dyskow). Dlatego ww sygnal moze pojawic sie
dopiero po wybraniu adresu (pkt.1) co do (pkt.2) to sam nie wiem.

Zobacz taka ksiazka "Anatomia PC" (o ile jeszcze nie spojrzales).

Wojciech Werwinski

Z moich do¶wiadczeń (działa dla IO) - można wystawiać IOCHRDY po
zdekodowaniu adresu. Zresztą według specyfikacji ISA sygnał IOCHRDY jest i
tak próbkowany dopiero cyt.: "after the COMMAND signal line becomes active".
Co do pkt.2 - ważne jest szybkie wystawienie sygnału, tzn. pomiędzy
narastającym a opadającym zboczem BCLK (podpowiem, że "command" signal line)
wystawiana jest narastającym zboczem) - czyli trafienie w "initial sampling
window". Jak zgłosisz (formalnie nie-zgłosisz - inactive) go zbyt późno - to
ci go oleje.
Pozdr.,
Paweł

PS
zajrzyj do "AT BUS DESIGN", autor: Edward Solari - stare, ale jare - jest w
bibliotece Politechniki War. Inst.Telekomunikacji




Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: ISA
Date: Fri, 29 Oct 1999 13:02:51 GMT



Pawel Michocki <pawelm_at_nospam_sim.com.pl> wrote in message
news:7vc3tt$2t5$1_at_nospam_helios.man.lublin.pl...
Z moich do¶wiadczeń (działa dla IO) - można wystawiać IOCHRDY po
zdekodowaniu adresu. Zresztą według specyfikacji ISA sygnał IOCHRDY jest i
tak próbkowany dopiero cyt.: "after the COMMAND signal line becomes
active".
Co do pkt.2 - ważne jest szybkie wystawienie sygnału, tzn. pomiędzy
narastającym a opadającym zboczem BCLK (podpowiem, że "command" signal
line)
wystawiana jest narastającym zboczem) - czyli trafienie w "initial
sampling
window". Jak zgłosisz (formalnie nie-zgłosisz - inactive) go zbyt późno -
to
ci go oleje.
Pozdr.,
Paweł


Wlasnie to chcialem wiedziec :-)

Bo robie taki numer teraz:

process (clk, reset)
begin
if reset='1' then
iochrdy_out <= 'Z';
elsif clk'event and clk='1' then
if frame='1' then
case state is
when IDLE => iochrdy_out <= '1';
when PHASE1 => iochrdy_out <= '0';
when PHASE2 => iochrdy_out <= '0';
when PHASE3 => iochrdy_out <= '1';
when PHAZE4 => iochrdy_out <= '1';

( ... ble ble - duzo wiecej innych rzeczy)

when others => iochrdy_out <= '1';
end case;
else
iochrdy_out <= 'Z';
end if;
end if;
end process;


Zobacz co robie - dla pierwszych 2 cykli zegara magistrali po wybraniu karty
(sygnal frame z dekodera adresow na tym samym CPLD) Wszystko jest
wpakowane w jedna kosc CPLD 256 makrocel..

Jesli dekoder adresu wybral karte (dekoder zglasza frame='1' )to wstawiam
IOCHRDY low na dwa cykle, przeciagajac wystawienie na magistrali dla
wolniejszego scalaka, gdzie jego recovery time wynosi mniej niz 1/ (5MHz).

To urzadzenie jest o wiele bardziej zawile tyle, ze czasem dalo sie
obserwowac timeout na linii SMEMR# wynoszacy 5ms i wlasnie mialem cos
namotane z IOCHRDY. IOCHRDY dziala nie tylko na I/O ale i na pamiec,
przynajmniej ta A0000 - EE000.



Juliusz




Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: "Pawel Michocki" <pawelm_at_nospam_sim.com.pl>
Subject: Re: ISA
Date: Fri, 29 Oct 1999 15:31:13 +0200


Użytkownik Juliusz <juliusz_at_nospam_multi-ip.com.pl> w wiadomo¶ci do grup
dyskusyjnych napisał:%VgS3.1244$b4.21766_at_nospam_news.tpnet.pl...

Pawel Michocki <pawelm_at_nospam_sim.com.pl> wrote in message
news:7vc3tt$2t5$1_at_nospam_helios.man.lublin.pl...
Z moich do¶wiadczeń (działa dla IO) - można wystawiać IOCHRDY po
zdekodowaniu adresu. Zresztą według specyfikacji ISA sygnał IOCHRDY jest
i
tak próbkowany dopiero cyt.: "after the COMMAND signal line becomes
active".
Co do pkt.2 - ważne jest szybkie wystawienie sygnału, tzn. pomiędzy
narastającym a opadającym zboczem BCLK (podpowiem, że "command" signal
line)
wystawiana jest narastającym zboczem) - czyli trafienie w "initial
sampling
window". Jak zgłosisz (formalnie nie-zgłosisz - inactive) go zbyt
późno -
to
ci go oleje.
Pozdr.,
Paweł


Wlasnie to chcialem wiedziec :-)

Bo robie taki numer teraz:

process (clk, reset)
begin
if reset='1' then
iochrdy_out <= 'Z';
elsif clk'event and clk='1' then
if frame='1' then
case state is
when IDLE => iochrdy_out <= '1';
when PHASE1 => iochrdy_out <= '0';
when PHASE2 => iochrdy_out <= '0';
when PHASE3 => iochrdy_out <= '1';
when PHAZE4 => iochrdy_out <= '1';

( ... ble ble - duzo wiecej innych rzeczy)

when others => iochrdy_out <= '1';
end case;
else
iochrdy_out <= 'Z';
end if;
end if;
end process;


Zobacz co robie - dla pierwszych 2 cykli zegara magistrali po wybraniu
karty
(sygnal frame z dekodera adresow na tym samym CPLD) Wszystko jest
wpakowane w jedna kosc CPLD 256 makrocel..

Jesli dekoder adresu wybral karte (dekoder zglasza frame='1' )to wstawiam
IOCHRDY low na dwa cykle, przeciagajac wystawienie na magistrali dla
wolniejszego scalaka, gdzie jego recovery time wynosi mniej niz 1/ (5MHz).

To urzadzenie jest o wiele bardziej zawile tyle, ze czasem dalo sie
obserwowac timeout na linii SMEMR# wynoszacy 5ms i wlasnie mialem cos
namotane z IOCHRDY. IOCHRDY dziala nie tylko na I/O ale i na pamiec,
przynajmniej ta A0000 - EE000.



Juliusz

Tia - 5ms to już chyba system padł - według mądrej książki czas transferu
można przedłużać do max. 15.6us, a według specyfikacji IBM to "tylko" do 2.5
(bo jak dłużej to data może być unknown).
Paweł
PS
Może wiesz jaki musi być minimalny odstęp pomiedzy przerwaniami na ISA
(wiem - zależy to od konkretnego sterownika) - tak "z do¶wiadczenia", tzn.
ile minimalnie muszę dać niskiego stanu na linii IRQ, żeby mi przyjęło
następne narastające zbocze ?



Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: ISA
Date: Fri, 29 Oct 1999 15:18:14 GMT



Tia - 5ms to już chyba system padł - według mądrej książki czas
transferu
można przedłużać do max. 15.6us, a według specyfikacji IBM to "tylko" do
2.5
(bo jak dłużej to data może być unknown).

No wlasnie - wszedzie sie pisze, ze max to 15us ale tez gdzies wyczytalem,
ze nie mniej niz ilestam ale nie pamietam gdzie to bylo.

Te 5ms to timeout timera zeby nie powiesic systemu i tak sie wlasnie dzialo
jak mialem IOCHRDY zle generowane. Dotykam oscyloskopem, a tu sie okazuje,
ze czytanie trwa te 5ms, a pomiedzy normalne impulsy refreshingu, takie same
jak na linii /REF

Moglem wrecz zabraniac refreshingu pamieci :-)

Teraz chodzi to swietnie i gdyby nie scalak, na ktory musze poczekac az
polknie czy wypluje dane to bym sobie IOCHRDY glowy nie zawracal dla tego
przypadku.

Paweł
PS
Może wiesz jaki musi być minimalny odstęp pomiedzy przerwaniami na ISA
(wiem - zależy to od konkretnego sterownika) - tak "z do¶wiadczenia", tzn.
ile minimalnie muszę dać niskiego stanu na linii IRQ, żeby mi przyjęło
następne narastające zbocze ?


Wiesz co - nie zastanawialem sie nad tym :-) U mnie przerwania sa niezbyt
czesto, wlasciwie co minimum kilkaset cykli magistrali do kilkunastu
tysiecy. Czas trawania impulsu to kilkanascie i nie zastanawialem sie co by
bylo gdybym potrzebowal szybciej. Nie ma to chyba sensu, lepiej zrob
buforowanie i generuj przerwanie spokojnie i wolniutko.
Musze poczytac, bo wlasnie sam sie nad tym zaczalem zastanawiac :-) Mimo to
dziala, bo przerwanie generuje mi inny scalak, a ja je tylko bramkuje gdy
potrzeba i odwracam w stylu isa_irq <= not scalak_irq; plus jeden maly
procesik do tego. Decyduje on czy przerwanie ma byc czy nie.

Wszystko co bylo mozliwe to podlaczylem do CPLD wiec teraz bez stresu moge
zmieniac cala zasade dzialania, a robilem juz to 3 razy :-)

---------
A wlasnie - jesli wystawie IOCHRDY zaraz po zdekodowaniu adresu to czy RD/WR
pojawia sie i tak i beda tylko dluzej staly (razem z adresem oczywiscie) czy
przeciagam tylko wystawiony adres , a nastepnie zwalniajac IOCHRDY wyskakuje
mi dopiero WR/RD ? O tym IOCHRDY jest niewiele napisane gdziekolwiek. Ponoc
sa roznice pomiedzy XT i AT jakies i jeszcze gdy ISA jest bridge'owana z PCI
w Pentiawkach++ to jeszcze jakies nowe zarty doszly ?




Juliusz




Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: ISA
Date: Fri, 29 Oct 1999 21:18:18 GMT


On Fri, 29 Oct 1999 01:03:41 GMT, Juliusz wrote:
Pewnie zadaje pytanie retoryczne ale moze ktos jednak wie :-)
Pytania dotycza magistrali ISA.
1. Jaki skutek wywola wystawienie IOCHRDY# w chwili gdy na ISA-ie pojawia
sie adres ale jeszcze nie ma wystawionego SMEMWR# lub SMEMRD# ?

Glupi, bo to moze adres I/O jest wystawiony.

J.


Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: "Juliusz" <juliusz_at_nospam_multi-ip.com.pl>
Subject: Re: ISA
Date: Sun, 31 Oct 1999 20:35:43 GMT



J.F. <jfox_at_nospam_friko6.onet.pl> wrote in message
news:382efc16.96579674_at_nospam_news.ict.pwr.wroc.pl...
On Fri, 29 Oct 1999 01:03:41 GMT, Juliusz wrote:
Pewnie zadaje pytanie retoryczne ale moze ktos jednak wie :-)
Pytania dotycza magistrali ISA.
1. Jaki skutek wywola wystawienie IOCHRDY# w chwili gdy na ISA-ie pojawia
sie adres ale jeszcze nie ma wystawionego SMEMWR# lub SMEMRD# ?

Glupi, bo to moze adres I/O jest wystawiony.

Wlasnie doszedlem do tego samego wniosku z tym, ze jesli sadzam karte w
przestrzeni adresowej dowolnej i nie wazne czy I/O czy MEM to skoro karta
dekoduje wlasny adres (zanim sygnaly zapisu/odczytu sie pojawia i to
niewazne jakie czy IOR IOW SMER SMEMW), to skoro karta zdekodowala adres
powiedzmy D0000 to na 200% nie bedzie to adres I/O !!!! W koncu panujesz nad
tym wkladajac jakiekolwiek karty do kompa i wiesz co gdzie ustawiles i co za
adres.

Teras jeszcze raz jest watpliwosc. Skoro ISA bez aktuwnego 0WS na magistrali
dekoduje najpierw adres. 0WS ma sie niby pojawic dopiero jako odpowiedz na
IOR, IOW, SMEMW, SMEMR czy pozostale dwa do wyzszego obszaru. Czyli ilosc
cykli magistrali jes rozciagana lub nie dopiero od momentu pojawienia sie
sygnalu czytania lub zapisu. Majac pierwotnie sam adres nic jeszcze nie
wiemy co bedzie dalej. Dopiero zygnaly zapisu/odczytu aktywuja nam
wystawianie (lub nie) 0WS.

Teraz pytanie dalej o to IOCHRDY :-)

Co sie stanie jesli wystawimy to wczesniej niz pojawienie sie zapis/odczyt
jesli juz adres jest ustabilizowany i zdekodowany ale przed malejacym
zboczem zapis/odczyt ? Czy pojawia sie one tak jakby nic sie nie stalo i
dalej zostana rozciagniete razem z adresem czy beda jakies niechciane efekty
?
Poprawic mozna w kazdej chwili, bo to w VHDL-u jest napisane.

Zauwazylem, ze nie ma zadnej roznicy ale moze tego nie widze? Sprawa jest
prosta. Glowna maszyna stanow po wykryciu adresu zaczyna liczyc stany od 1
do 5 i wraca na poczatek. Kazdemu stanowi odpowiada 1 tik zegara magistrali
od chwili zdekodowania - na narastajacym zboczu.
Oczywiscie ilosc stanow zalezy od adresu, ktory akurat obrabiam. Teraz na
podstawie numeru stanu wystawiam IOCHRDY i odpowiednie cykle CS, WR, RD i
inne do wolniejszego scalaka. ..

Juliusz

PS. Ma ktos moze PDF-a z ISA i IOCHRDY - moze akurat nie mam takiego :-)
Sypnijcie mi prosze na e-mail bez krepowania sie o miejsce :-)



Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
Date: Fri, 29 Oct 1999 12:03:08 +0200
From: Wojciech Werwinski <wwer_at_nospam_winuel.com.pl>
Subject: Re: ISA


Czy obie operacje sa dozwolone i czy daja ten sam skutek i czy wystawienie
IOCHRDY# zbyt wczesnie nie spowoduje niechcianych zachowan kontrolera
magistrali ?

Juliusz

Sygnal IOCHRDY wymusza na magistrali dodatkowy czas na ustalenie stanow
itp . W zasadzie urzadzenie ktore taki sygnal generuje musi miec troche
czasu na stwierdzenie ze to ono jest obslugiwane. Standardowo sygnal
IOCHRDY jest nieaktywny (niektore kontrolery IDE w ogole tego syganlu
nie podaja na szyne z dyskow). Dlatego ww sygnal moze pojawic sie
dopiero po wybraniu adresu (pkt.1) co do (pkt.2) to sam nie wiem.

Zobacz taka ksiazka "Anatomia PC" (o ile jeszcze nie spojrzales).

Wojciech Werwinski