William Kahan, winner of the Association for Computing Machinery's A.M. Turing Award, describes his work as a consultant to Intel to design a new floating po...
Najpierw zostałem zgwałcony umysłowo przez haluny AI. Jestem bardzo zawiedziony.
Nie znam się zbyt dobrze na kodzie maszynowym x86 i na protokole magistrali 8086. Staram się tego nauczyć. Napisz sprostowanie jak by co.
8086 ma wyprowadzenia które pozwalają określić jaki rodzaj danych pobrał przez magistralę (Sn). Ma też takie które pozwalają określić co jest w jego wewnętrznej kolejce (QSn). Ma też sygnały które pozwalają przejąc magistralę przez zewnętrzny układ (RQ/GTn).
(Mocno uproszczone)
8087 wie kiedy 8086 pobiera opcode. Sprawdza jaki jest jego kod. Jeśli jego kod to jeden z zarezerwowanych rozkazów ESC (0xD8…0xDF), to znaczy, że jest to rozkaz dla FPU. CPU traktuje je jak NOP. Tych opkodów jest 8 więc można łatwo je wykryć.
(Wiedza niepotwierdzona)
8087 wie o ModR/M. Kiedy rozkaz (ESC) ma argument adresu, procesor pobiera pierwszy bajt (do niczego go nie wykorzystuje). FPU kopiuje adres tego bajtu, przejmuje magistralę i sam pobiera resztę bajtów/słów w zależności od typu.
Czego jeszcze nie rozumiem:
ModR/M (nie wiem jak to współpracuje z opcodami, czy jest opcjonalne czy co?)
Nie mogę znaleźć schematu IBN (#PDK) 5150 na którym jest pokazana podstawka pod FPU. Chciałbym zobaczyć jak sygnały są podłączone w rzeczywistości. Szczególnie QSn i Sn.
Sygnały Sn wskazują jaki rodzaj danych pobiera procesor. Wydaje się, że FPU z nich nie korzysta. Są chyba wykorzystywane do arbitrażu współdzielonej magistrali.
Sygnały QSn przedstawiają stan kolejki procesora i FPU z nich korzysta i chyba określa za ich pomocą czy na magistrali jest opcode. Przynajmniej tak mi się wydaje, bo są podłączone bezpośrednio między CPU i FPU.
Czego jeszcze chciałbym się dowiedzieć:
Podobno FPU Wietek miały jakieś ulepszenia. Podobno dostęp do kolejki rejestrów FPU był obszarem w pamięci lub i/o.
Postanowiłem zbadać temat.
Najpierw zostałem zgwałcony umysłowo przez haluny AI. Jestem bardzo zawiedziony.
Nie znam się zbyt dobrze na kodzie maszynowym x86 i na protokole magistrali 8086. Staram się tego nauczyć. Napisz sprostowanie jak by co.
8086 ma wyprowadzenia które pozwalają określić jaki rodzaj danych pobrał przez magistralę (Sn). Ma też takie które pozwalają określić co jest w jego wewnętrznej kolejce (QSn). Ma też sygnały które pozwalają przejąc magistralę przez zewnętrzny układ (RQ/GTn).
(Mocno uproszczone)
8087 wie kiedy 8086 pobiera opcode. Sprawdza jaki jest jego kod. Jeśli jego kod to jeden z zarezerwowanych rozkazów ESC (0xD8…0xDF), to znaczy, że jest to rozkaz dla FPU. CPU traktuje je jak NOP. Tych opkodów jest 8 więc można łatwo je wykryć.
(Wiedza niepotwierdzona)
8087 wie o ModR/M. Kiedy rozkaz (ESC) ma argument adresu, procesor pobiera pierwszy bajt (do niczego go nie wykorzystuje). FPU kopiuje adres tego bajtu, przejmuje magistralę i sam pobiera resztę bajtów/słów w zależności od typu.
Czego jeszcze nie rozumiem:
Czego jeszcze chciałbym się dowiedzieć: